caspaxos
caspaxos copied to clipboard
CASPaxos: Replicated State Machines without logs
CASPaxos
CASPaxos is a wait-free, linearizable, multi-writer multi-reader register in unreliable, asynchronous networks supporting arbitrary update operations including compare-and-set (CAS). The register acts as a replicated state machine providing an interface for changing its value by applying an arbitrary user-provided function (a command). Unlike Multi-Paxos and Raft which replicate the log of commands, CASPaxos replicates state, thus avoiding associated complexity, reducing write amplification, increasing concurrency of disk operations and hardware utilization.
The paper describes CASPaxos, proves its safety properties and evaluates the characteristics of a CASPaxos-based prototype of key-value storage.
Paper
https://github.com/rystsov/caspaxos/blob/master/latex/caspaxos.pdf
Implementations
The algorithm is new so most implementations are actively being developed.
- https://github.com/gryadka/js
- https://github.com/peterbourgon/caspaxos
- https://github.com/spacejam/sled/tree/master/crates/paxos
- https://github.com/ericentin/caspax
- https://github.com/ReubenBond/orleans/tree/poc-caspaxos
- https://github.com/komuw/kshaka