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]

Reply via email to