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]