7 ms·
I have a bit of a man-crush on Leslie Lamport (and have (unsuccessfully) tried to get TLA+ to be used at every job I've had for the last five years), and I have
by tombert 5y ago
I have a bit of a man-crush on Leslie Lamport (and have (unsuccessfully) tried to get TLA+ to be used at every job I've had for the last five years), and I have read through both the original Paxos paper in addition to the Paxos Made Simple paper, and I'm just going to say that I still found it about five times harder to grok than Raft. Honestly the TLA+ specification of Paxos made it click more than the papers for me, but that could just be because of the repeated readings before.
It's a beautiful algorithm, but Raft has the advantage of being a lot simpler.
- deleted 5y ago[deleted]
- loquor 5y ago> I have a bit of a man-crush on Leslie Lamport +1 - I really admire him too. I wonder, what makes people like him and Edsger Dijkstra so charismatic in this sense?
- tombert 5y agoI think a lot of it has to do with the fact that he's a very prolific writer and speaker, in addition to contributing to a fairly diverse set of Computer Science fields. I usually enjoy Lamport's speeches, and I have said before that his book Specifying Systems should be mandatory reading for nearly anyone interested in CS, due to how approachable it is, and yet how deep it goes.
- User23 5y agoDijkstra was and Lamport is very good at writing clearly and distinctly. Many people with that level of raw brainpower don't make that effort, so the ones that do are easy to admire and be grateful to.
- uvdn7 5y agoIt's interesting that you mentioned Dijkstra because Lamport in one interview said that the original Paxos paper (The Part-time Parliment) was written in the way it was exactly because he was inspired by Dijkstra in his famous examples such as Sleeping barber, etc.
- uvdn7 5y agoI am also a huge fan of Lamport. Paxos is so concise and of such beauty that once you understand it, all other consensus protocols seem just different ways of phrasing Paxos with additional features (e.g. membership changes, make it into a log, etc.). Paxos is the smallest, most elegant consensus building block that I have seen so far. Raft's protocol covers a much bigger area than just consensus (it gives you a log, supports reconfiguration, etc.). Paxos' entire protocol fits a single slide. Period. I wrote a few posts about how to understand paxos, and this is my personal favorite – https://blog.the-pans.com/understanding-paxos/ https://blog.the-pans.com/understanding-paxos/. Lamport did comment on it (via email) saying that understanding Paxos is less important than proving it works (via TLA+).
- camgunz 5y agoTheir slide [1] looks like just a reworded version of yours [2]? [1]: https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html#FlowOfTheProtocol https://martinfowler.com/articles/patterns-of-distributed-sy... [2]: https://blog.the-pans.com/paxos-explained/#paxos https://blog.the-pans.com/paxos-explained/#paxos
- tombert 5y ago> Lamport did comment on it (via email) saying that understanding Paxos is less important than proving it works (via TLA+). I suppose that's not wrong; if I know for a fact that something is going to behave how I expect it too, I don't generally care how it works. I can treat the algorithm as a black box and just go from there. That said, I dont' completely agree. If I am implementing Paxos in NewLangOfTheMonth, it's likely that a straight one-to-one port of another version will not fully work due to tiny differences in the language semantics. If I don't understand Paxos, then it's unlikely I'll be able to correct any mistakes in the implementation.
- skrtskrt 5y agoAgreed, being able to trust it is probably what I want in order to use it at my job to get shit done - being able to understand it/implement it is what I want to do on my own time. Unless you're one of the rare group who gets paid to implement it in x language/library/technology, it's more of a mental exercise than anything, something nice to go "ahhh cool!" when you understand it, then move on.
- solidangle 5y agoYou might be interested in this paper [1] which presents Paxos in the same way as Raft is presented in the Raft paper. In my view it really illustrates that most of the simplicity of Raft comes from its excellent presentation and not necessarily from its algorithmic simplicity. [1]https://arxiv.org/pdf/2004.05074 https://arxiv.org/pdf/2004.05074