You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict Elliott Smith (Jira)" <ji...@apache.org> on 2022/11/17 09:53:00 UTC

[jira] [Created] (CASSANDRA-18057) CEP-15: (Accord) Invalidation fixes/improvements

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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org