belliottsmith commented on code in PR #3967:
URL: https://github.com/apache/cassandra/pull/3967#discussion_r1993471825


##########
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:
   Perhaps I'm misunderstanding, so let's spell out the problem case so I can 
understand better. Consider some table metadata that changes its columns like 
so:
   
   Epoch 1: {"pk", "ck", "v1"}
   Epoch 2: {"pk", "ck", "v1", "v3"}
   Epoch 3: {"pk", "ck", "v1", "v2", "v3"}
   
   Let's assume the epoch on which we first issued uids has long since passed, 
and everyone witnesses Epoch 1 just fine and assigns uids to the initial 
columns consistently, but some replicas do not witness epoch 2.
   
   If some follower assigns the uids on epoch 2, and another on epoch 3, we 
would end up with 
   Epoch 2: {"pk":1, "ck":2, "v1":3, "v2":5, "v3":4}
   Epoch 3: {"pk":1, "ck":2, "v1":3, "v2":4, "v3":5} 
   
   What stops this happening, if it isn't applied by CMS? Is there some 
follower that is guaranteed to process the changes on both epochs 2 and 3, and 
assign the uid, and others are guaranteed to consume this version?



-- 
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