beobal commented on code in PR #3967:
URL: https://github.com/apache/cassandra/pull/3967#discussion_r1993339745
##########
src/java/org/apache/cassandra/schema/SchemaKeyspace.java:
##########
@@ -140,6 +140,7 @@ private SchemaKeyspace()
+ "clustering_order text,"
+ "column_name_bytes blob,"
+ "kind text,"
+ + "unique_id int,"
Review Comment:
The CMS doesn't apply transformations and distribute the results, it asserts
that a transformation can be applied to the current ClusterMetadata. If so, it
attempts to insert it into the log at `current epoch + 1`. If that insert
fails, because another log entry took it, the CMS updates it's current
ClusterMetadata and retries. If/when it succeeds, the log entries are
replicated and each peer applies the transformations locally.
If a node doesn't witness the specific log entry (i.e. epoch) in which some
transformation occurs because it catches up from metadata snapshot, it will
still witness the effects of that transformation in that snapshot.
What I'm suggesting about the listener is that its action would be to submit
a transformation to the CMS, not to allocate the uids itself. That way the act
of allocation is linearized just like any other metadata operation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]