Systems · paper 10

In Search of an Understandable Consensus Algorithm

Ongaro, Ousterhout · 2014 · USENIX ATC · 60 min · Moderate
Summary

Raft decomposes consensus into leader election, log replication, and safety, with a strong leader that alone appends entries and a term number that orders leadership. The paper argues that understandability is a design goal and shows the algorithm is as practical as Paxos.

Key ideas
  • A single leader per term simplifies the replication story
  • Log matching keeps replicas identical up to the committed index
  • Election restrictions ensure a new leader already holds all committed entries
Why read it now

etcd, CockroachDB, and most new replicated logs implement Raft. This is the version of consensus you will actually read code for.

Question to keep in mind

Why does Raft refuse to commit entries from earlier terms by counting replicas alone, and what does it do instead?

124 online