Benedict Elliott Smith created CASSANDRA-18057:
--------------------------------------------------

             Summary: CEP-15: (Accord) Invalidation fixes/improvements
                 Key: CASSANDRA-18057
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18057
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Benedict Elliott Smith


This patch builds upon the tracker refactor to allow Invalidations to properly 
track fast path rejections across all contacted shards, and thereby decide 
whether an invalidation is permissible or recovery should be attempted. This 
avoids callers being expected to provide unsafe cues around when invalidation 
may be permissible, and introduces a new mechanism for avoiding infinite 
invalidate/recovery loops by initiating invalidation on every shard we know of, 
but proposing the invalidation as soon as we have enough information to safely 
invalidate any one shard.

This patch also resolves an issue introduced by partial replication, where a 
transaction adopting a later {{executeAt}} may fail to be properly committed to 
all shards by the original coordinator, and a transaction that adopted a false 
dependency on its execution cannot progress because it cannot obtain a full set 
of dependencies. Since the first transaction now executes after the second, its 
coordinator does not attempt to ensure progress. This is resolved by 
introducing a new {{PreCommitted}} status that replicates only the 
{{executeAt}} without the {{partialDeps}}, so that any shard's (including, most 
importantly, the home shard's) is sufficient to ensure the progress of any 
false dependencies.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to