An alternative to Paxos, the RAFT consensus algorithm

By kellabyte  //  Distributed Systems, Firehose  //  2 Comments

Hoop Somuah pointed me at the new RAFT consensus algorithm

a couple days ago. The paper is titled "In Search of an Understandable Consensus Algorithm" which I think is a fitting name.

The paper points out that the literature on Paxos has been known to be hard to understand and difficult to apply in actual code. There are a lot of Paxos implementations in the wild but it’s hard to gauge what the quality and reliability of these are. It seems the goal with RAFT was to design an alternative that was easier to describe and in turn easier to understand and implement.

I’ve read the Paxos papers several times and after reading the RAFT paper once I feel I understand more after my first reading than I did in my first reading of Paxos.

I plan to give this paper a few more reads.

There’s also an excellent video that describes how Raft works.

Here are some presentation slides

from Ben Johnson (@benbjohnson) explaining Raft.

  • Edward Ribeiro

    Hi Kelly,

    Disclaimer: I didn’t read the paper back to back it, just a glimpse.

    At the first look, I had on this paper it was possible to draw some parallels of their algorithm with the only implemented by ZooKeeper (the explicit use of a distinguished leader, for example), so it would be nice to compare it with ZAB (ZooKeeper Atomic Broadcast) protocol in addition to classic Paxos/Multipaxos. I may have been misguided but just this aspect tough. ;o)

    Random Musing:

    I agree that “Paxos Made Live” paper structure — based on state of consecutive theorems — make it pretty hard to read and understand, but once you grasp the concept (it took me some readings of other papers besides the original one, note taking, and drawing) then Paxos, as described by Leslie Lamport is in fact pretty simple to *describe*, but hard as hell to implement, of course. The main problem is that Paxos is in fact a *family of algorithms* and not a single production implementation will ever be ‘as-is’ Leslie Lamport’s description. By the way, production quality implementation of Paxos like Chubby (Google), e.g., is usually the MultiPaxos variant.

  • Jerome

    Interesting. I am keeping track of Paxos