belliottsmith commented on code in PR #150:
URL: https://github.com/apache/cassandra-accord/pull/150#discussion_r1885079169


##########
accord-core/src/main/java/accord/local/RedundantStatus.java:
##########
@@ -80,6 +92,26 @@ public enum RedundantStatus
      */
     LOCALLY_REDUNDANT,
 
+    /**
+     * The relevant owned ranges are all shard-redundant AND (pre-bootstrap or 
stale), meaning any intersecting transaction

Review Comment:
   The main thing is making sure we can distinguish between locally redundant, 
shard redundant and no longer owned, plus cases where this is completely the 
case or only partially the case. But in different cases we care about different 
facets, e.g. when cleaning up locally we care about fully shard redundant (plus 
variations thereof for lost ownership), but when we are executing we care about 
locally partially redundant (plus variations thereof for lost ownership), and 
when we are fetching data from remote replicas that have erased their state we 
care only about _partial_ local redundancy (which means the transaction must 
have executed locally if it executes, so if we don't know it we can invalidate 
it). This is further complicated by bootstrap, where the distinction between 
whether it is fully or partially pre-bootstrap (and fully or partially shard 
redundant) matter. 
   
   I hope to formalise the GC state machine once we're otherwise broadly where 
we want to be.
   
   I did look at encoding each dimension independently but the refactor looked 
too big and didn't clearly simplify things - and would no doubt have introduced 
new problems to diagnose.



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