Raft consensus algorithm
E467805
Raft consensus algorithm is a distributed consensus protocol designed to be more understandable and easier to implement than Paxos while providing equivalent fault-tolerant guarantees.
Statements (50)
| Predicate | Object |
|---|---|
| instanceOf |
distributed consensus algorithm
ⓘ
fault-tolerant consensus protocol ⓘ |
| assumes |
non-Byzantine failures
ⓘ
reliable message delivery with retries ⓘ |
| designedBy |
Diego Ongaro
NERFINISHED
ⓘ
John Ousterhout NERFINISHED ⓘ |
| ensures |
linearizability
ⓘ
strong consistency ⓘ |
| guarantees |
at most one leader per term
ⓘ
log entries are applied in order ⓘ no committed entry is lost ⓘ |
| hasGoal |
be more understandable than Paxos
ⓘ
provide equivalent fault-tolerant guarantees to Paxos ⓘ |
| hasOpenSourceImplementation |
HashiCorp Raft library
NERFINISHED
ⓘ
etcd/raft NERFINISHED ⓘ |
| hasPhase |
leader election
ⓘ
log replication ⓘ membership changes ⓘ safety ⓘ |
| hasProperty |
deterministic behavior given same inputs
ⓘ
understandability emphasized over minimality ⓘ |
| hasWebsite | https://raft.github.io/ ⓘ |
| influenced | design of modern distributed databases ⓘ |
| introducedInPaper | In Search of an Understandable Consensus Algorithm NERFINISHED ⓘ |
| isComparedTo | Paxos NERFINISHED ⓘ |
| operatesIn | asynchronous distributed systems ⓘ |
| provides | replicated state machine ⓘ |
| publicationYear | 2014 ⓘ |
| requires |
majority of nodes to be available
ⓘ
persistent storage for logs and terms ⓘ |
| supports |
cluster reconfiguration
ⓘ
joint consensus for membership changes ⓘ |
| tolerates | crash failures ⓘ |
| usedIn |
CockroachDB
NERFINISHED
ⓘ
Consul NERFINISHED ⓘ LogCabin NERFINISHED ⓘ RethinkDB NERFINISHED ⓘ TiKV NERFINISHED ⓘ etcd NERFINISHED ⓘ |
| uses | leader-based replication ⓘ |
| usesConcept |
candidate
ⓘ
commit index ⓘ follower ⓘ leader ⓘ log index ⓘ term ⓘ |
| usesMechanism |
heartbeats
ⓘ
leader completeness property ⓘ log matching property ⓘ randomized election timeouts ⓘ |
Referenced by (3)
Full triples — surface form annotated when it differs from this entity's canonical label.
subject surface form:
The Part-Time Parliament