

Lessons learned from implementing Paxos (2012) - antman
http://blog.willportnoy.com/2012/06/lessons-learned-from-paxos.html

======
yodsanklai
There's a nice distributed system class at MIT
[http://nil.csail.mit.edu/6.824/2015/](http://nil.csail.mit.edu/6.824/2015/)
where one of the lab consists of implementing Paxos in Go. They provide
evaluation scripts to see if you got it right.

~~~
krenoten
code stubs and tests:

git://g.csail.mit.edu/6.824-golabs-2015

paxos assignment:
[http://nil.csail.mit.edu/6.824/2015/labs/lab-3.html](http://nil.csail.mit.edu/6.824/2015/labs/lab-3.html)

------
danpalmer
I'd like to highlight a link in that post to "Paxos Made Live", a paper from
Google about a real-world implementation of Paxos. I found the paper very
enlightening, and it gives much credence to simpler algorithms like Raft.

[http://static.googleusercontent.com/media/research.google.co...](http://static.googleusercontent.com/media/research.google.com/en//archive/paxos_made_live.pdf)

------
narrator
What benefits does Paxos have over Raft?

~~~
sseveran
Paxos is really a family of similar algorithms. You could have classic paxos,
full byzantine paxos([http://research.microsoft.com/en-
us/um/people/lamport/tla/by...](http://research.microsoft.com/en-
us/um/people/lamport/tla/byzsimple.pdf)), multi-paxos, or fast-paxos
([http://research.microsoft.com/apps/pubs/default.aspx?id=6462...](http://research.microsoft.com/apps/pubs/default.aspx?id=64624)).
So in a sense you could argue that it is more general than Raft. The issues
that arise building production systems were not as well understood 20 years
ago. Raft is similar to multi-paxos but more fully specifies things that are
left out of previous academic work like transaction log snapshotting, joining
new members of the quorum and transaction log truncation. I don't agree with
raft's authors that raft is easier to understand, I do agree that it is a more
complete spec for building a subset of real world systems.

