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 its action is 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]

Reply via email to