Benedict Elliott Smith created CASSANDRA-20222:
--------------------------------------------------
Summary: Accord: Fast and Medium path protocol optimisations
Key: CASSANDRA-20222
URL: https://issues.apache.org/jira/browse/CASSANDRA-20222
Project: Apache Cassandra
Issue Type: Improvement
Components: Accord
Reporter: Benedict Elliott Smith
Protocol optimisations:
- Privileged coordinator. If the coordinator is a replica we can reduce our
quorum sizes by including the coordinator's vote.
- with deps: if we include coordinator's preaccept deps we can reliably
reduce quorum size by 1, at the expense of recovery sometimes requiring
additional phases and waiting for future txns
- with only vote: if we only include the vote we can avoid any additional
recovery phases or waiting for future txns, but can reduce our quorum size for
only some configurations
- Medium path. If t=t0 at a simple majority we can take just two rounds.
- with additional phase: on recovery, earlier txns must wait for medium path
to be disabled (or committed) so we do not accidentally recover a transaction
that won't be witnessed
- with unstable deps: on slow path commit, deps not found in accept as
committed as unstable and do not affect recovery decisions for earlier
transactions
Also improve:
- Recovery of await conditions simply recalculates the rejects flag rather
than restarting to ensure faster forward progress
- refactor Command hierarchy
- tweak: don't save Writes for non-write transactions
Also fix:
- isOutOfRange when invoked from callback for some txn < Committed
- handle loadingPruned that is pre-bootstrap on update to bootstrappedAt
- journal replay can overwrite in memory state loaded for a command not yet
replayed
- subtle ordering bug in LatestDeps.mergeProposal
- fix occasional class initialisation order bug
- handle race condition on learning of topology
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]