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]