Live data from Hacker News

Why use Paxos instead of Raft?

neon.tech

1–10 of 46 posts

Re: Why use Paxos instead of Raft?

#3
Interesting reasoning! I had a similar thought about why raft doesn’t allow observers the other day.

I used observers with Gluster previously and went from annoying split brain scenarios to flawless clusters just by adding a few, and their resource usage was basically nothing.

Re: Why use Paxos instead of Raft?

#5
Is there a difference between "observer" and "witness"? I'm used to the witness terminology from old literature and also from the Megastore paper, in which a witness votes in the Paxos election and stores the only the WAL.

Re: Why use Paxos instead of Raft?

#6
I used to work in the orbit of a distinguished eng at AWS who was famous for saying something to the effect of, "At the bottom of any scaled distributed system is either Paxos, or a bug."

Re: Why use Paxos instead of Raft?

#7
post #5

Is there a difference between "observer" and "witness"? I'm used to the witness terminology from old literature and also from the Megastore paper, in which a witness votes in the Paxos election and stores the only the WAL.

"Witness" comes from Frugal Paxos [1] (AFAIK, and not cited in the Megastore paper directly from what I saw while skimming it a few minutes ago) and indeed means an acceptor who does not contain a state machine replica, but does store the log and participate in elections.

"Observer" is not as well specified of a term [2], but from what I can find observer means non-voting replica which stores the log and a state machine replica.

Both of these make sense depending on the goals of the system. Observers make it easier to add new replicas without changing the size of the quorum, and witnesses make it cheaper to increase fault tolerance.

[1]: https://lamport.azurewebsites.net/pubs/web-dsn-submission.pd... [2]: https://cse.buffalo.edu/tech-reports/2016-02.orig.pdf

Re: Why use Paxos instead of Raft?

#8
post #4

The author is here, happy to answer questions if any.

Do you attempt to guarantee linearizability of read-only operations? The scenario I'm concerned about is when a partitioned compute node is processing a read-only transaction from a partitioned client, and neither has noticed the partitioned compute node has been replaced in a later term. Do you use a lease system for this that relies on the partitioned compute nodes to be able to accurately measure the passaged of time (not wall clock time), or do you have the compute nodes contact a quorum of acceptors before replying to read-only queries as well?

Re: Why use Paxos instead of Raft?

#9
post #7
post #5

Is there a difference between "observer" and "witness"? I'm used to the witness terminology from old literature and also from the Megastore paper, in which a witness votes in the Paxos election and stores the only the WAL.

"Witness" comes from Frugal Paxos [1] (AFAIK, and not cited in the Megastore paper directly from what I saw while skimming it a few minutes ago) and indeed means an acceptor who does not contain a state machine replica, but does store the log and participate in elections. "Observer" is not as well specified of a term [2], but from what I can find observer means non-voting replica which stores the log and a state mach…

Thanks! I believe the place I originally saw the term was "Voting with Witnesses" http://www2.cs.uh.edu/~paris/MYPAPERS/Icdcs86.pdf

Re: Why use Paxos instead of Raft?

#10
post #9
post #7

Earlier quoted context omitted.

"Witness" comes from Frugal Paxos [1] (AFAIK, and not cited in the Megastore paper directly from what I saw while skimming it a few minutes ago) and indeed means an acceptor who does not contain a state machine replica, but does store the log and participate in elections. "Observer" is not as well specified of a term [2], but from what I can find observer means non-voting replica which stores the log and a state mach…

Thanks! I believe the place I originally saw the term was "Voting with Witnesses" http://www2.cs.uh.edu/~paris/MYPAPERS/Icdcs86.pdf

I'm not as familiar with the literature on replication for file systems as I am with state machine replication, so perhaps the usage of those terms have diverged since then. Regardless, I think my analysis is correct for state machine replication. Thanks for the link!
Post reply on HN