TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Paxos

240 pointsby joeyespoover 3 years ago

11 comments

tombertover 3 years 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&#x27;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&#x27;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.<p>It&#x27;s a beautiful algorithm, but Raft has the advantage of being a lot simpler.
评论 #29829932 未加载
评论 #29831271 未加载
评论 #29829692 未加载
评论 #29841209 未加载
daveevadover 3 years ago
My grey matter is failing me but does anyone remember a rant about 5-10 years ago about developing software in this era that had some punch line about consensus algorithms that went a little like, &quot;so, there&#x27;s this guy named Diego?&quot;<p>edit: found it<p><a href="https:&#x2F;&#x2F;circleci.com&#x2F;blog&#x2F;its-the-future&#x2F;" rel="nofollow">https:&#x2F;&#x2F;circleci.com&#x2F;blog&#x2F;its-the-future&#x2F;</a>
评论 #29834925 未加载
评论 #29843326 未加载
评论 #29830501 未加载
hardwaresoftonover 3 years ago
Shameless plug of a blog series where I try to list and summarize every paxos variant:<p><a href="https:&#x2F;&#x2F;vadosware.io&#x2F;post&#x2F;paxosmon-gotta-concensus-them-all&#x2F;" rel="nofollow">https:&#x2F;&#x2F;vadosware.io&#x2F;post&#x2F;paxosmon-gotta-concensus-them-all&#x2F;</a>
评论 #29857633 未加载
评论 #29836560 未加载
评论 #29834435 未加载
gralxover 3 years ago
Lamport has published a TLA+ spec of the Paxos consensus algorithm¹, but none I could find of the Paxos algorithm itself (aka multi-Paxos).<p>In 2016 some academics at Stony Brook University did, along with a machine-checked TLAPS proof, updated in 2019:<p><a href="https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1606.01387" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1606.01387</a><p>¹Paxos consensus refines specs for consensus and voting. See the spec and accompanying material here: <a href="https:&#x2F;&#x2F;lamport.azurewebsites.net&#x2F;tla&#x2F;paxos-algorithm.html" rel="nofollow">https:&#x2F;&#x2F;lamport.azurewebsites.net&#x2F;tla&#x2F;paxos-algorithm.html</a>
rdtscover 3 years ago
Is there a mistake on the second diagram where prepare(1,e) is sent to Byzantium? Wonder if it should be prepare(1,a), since Athens hasn&#x27;t learned the (1,e) value which only Ephesus and Delphi know about at that point?<p>Otherwise I think it&#x27;s a pretty good description of Paxos. I like that it walks through a good number of failure scenarios and mentions interesting corner cases such as a lack of an explicit commit in the original papers and that reading also needs to run the full Paxos algorithm.
评论 #29830376 未加载
arshover 3 years ago
There are huge gaps between the scientific paper and how you actually operate and scale Paxos from an engineering point of view. See &quot;Paxos Made Live - An Engineering Perspective&quot; by Tushar Chandra et.al.<p>Paxos also has drawbacks like being slow or lacking liveness guarantees. Some alternatives are discussed in <a href="https:&#x2F;&#x2F;aws.amazon.com&#x2F;builders-library&#x2F;leader-election-in-distributed-systems&#x2F;" rel="nofollow">https:&#x2F;&#x2F;aws.amazon.com&#x2F;builders-library&#x2F;leader-election-in-d...</a>
bullenover 3 years ago
I prefer a simpler approach where only 100% read uptime is guaranteed: <a href="http:&#x2F;&#x2F;talk.binarytask.com&#x2F;task?id=4662372011677848884" rel="nofollow">http:&#x2F;&#x2F;talk.binarytask.com&#x2F;task?id=4662372011677848884</a><p>The way to do this is to asynconously write to all nodes in real-time, here you can try it out: <a href="http:&#x2F;&#x2F;root.rupy.se" rel="nofollow">http:&#x2F;&#x2F;root.rupy.se</a><p>Go to <a href="http:&#x2F;&#x2F;root.rupy.se&#x2F;node?make&amp;info" rel="nofollow">http:&#x2F;&#x2F;root.rupy.se&#x2F;node?make&amp;info</a> and press Make and you&#x27;ll se the replication in real-time! (although it&#x27;s too fast so you&#x27;ll only see it as being delivered in one go, if you wireshark it you&#x27;ll see multiple HTTP chunks...)<p>The source is also here: <a href="https:&#x2F;&#x2F;github.com&#x2F;tinspin&#x2F;rupy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tinspin&#x2F;rupy</a> in Root.java
kkwtehover 3 years ago
Paxos has a reputation of being hard to understand. I was under the impression that Raft was now preferred for distributed consensus. The creators of the Raft algorithm explicitly had understandability as a goal when designing it and called out Paxos as being hard to understand.<p><a href="https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.824&#x2F;papers&#x2F;raft-extended.pdf" rel="nofollow">https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.824&#x2F;papers&#x2F;raft-extended.pdf</a>
评论 #29831147 未加载
jlduggerover 3 years ago
&gt; Unmesh Joshi<p>It feels kinda strange to see an author other than Martin Fowler blogging on martinfowler.com....
评论 #29835623 未加载
评论 #29830368 未加载
评论 #29833161 未加载
评论 #29830050 未加载
egberts1over 3 years ago
Paxos reminds me of all the TCP variants: Tahoe, Reno, Vegas, Veno, Westwood, Africa, Fast-Reno, Eifel, DOOR, Nice, YeAH, BIC, CUBIC, Illinois, Libra, Hybla, ARENO, Fusion.
throwaway984393over 3 years ago
I think a flow chart would have been easier to understand, or perhaps a video or .gif
评论 #29829967 未加载