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 vs. Raft: Have we reached consensus on distributed consensus?

183 pointsby yagizdegirmencialmost 4 years ago

10 comments

josh2600almost 4 years ago
Ok so having worked on distributed consensus a bunch here are a couple thoughts in no particular order:<p>* In the real world, servers misbehave, like, a lot, so you have to deal with that fact. All assumptions about network robustness in particular will be proven wrong on a long enough timeline.<p>* Leader election in a world without a robust network is an exercise in managing acceptable failure tolerances. Every application has a notion of acceptable failure rates or acceptable downtime. Discovering that is a non-trivial effort.<p>Jeff Dean and others at Google famously came to the conclusion that it was ok for some parts of the Gmail service to be down for limited periods of time. Accepting that all self-healing&#x2F;robust systems will eventually degrade and have to be restored is the first step in building something manageable. The AXD301 is the most robust system ever built by humans to my knowledge (I think it did 20 years of uptime in production). Most other systems will fail long before that. Managing systems as they fail is an art, particularly as all systems operate in a degraded state.<p>In short, in a lab environment networks function really well. In the real world, it&#x27;s a jungle. Plan accordingly.
评论 #27862324 未加载
评论 #27861761 未加载
benlivengoodalmost 4 years ago
Since the article mentions Google as the outlier preferring Paxos, I may be able to shed some light from a few years ago.<p>The Paxos, paxosdb, and related libraries (despite the name, all are multi-paxos) are solid and integrated directly into a number of products (Borg, Chubby, CFS, Spanner, etc.). There are years of engineering effort and unit tests behind the core Paxos library and so it makes sense to keep using and improving it instead of going off to Raft. As far as I am aware the Google Paxos implementation predates Raft by quite a while.<p>I think in general if most other people use Raft it&#x27;s better for the community to have single, stable, and well-tested shared implementations for much the same reason it&#x27;s good for Google to stick with Paxos.
评论 #27860464 未加载
评论 #27862356 未加载
jiryualmost 4 years ago
I gave the presentation in the linked article, here&#x27;s a written version of the presentation: <a href="https:&#x2F;&#x2F;emptysqua.re&#x2F;blog&#x2F;paxos-vs-raft&#x2F;" rel="nofollow">https:&#x2F;&#x2F;emptysqua.re&#x2F;blog&#x2F;paxos-vs-raft&#x2F;</a><p>I hope that the &quot;Paxos vs Raft&quot; debate can die down, now that engineers are learning TLA+ and distributed systems more thoroughly. These days we can design new protocols and prove their correctness, instead of always relying on academics. For example, at MongoDB we considered adopting the reconfiguration protocol from Raft, but instead we designed our own and checked it with TLA+. See &quot;Design and Verification of a Logless Dynamic Reconfiguration Protocol in MongoDB Replication&quot; for details: <a href="https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2102.11960.pdf" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2102.11960.pdf</a>
littlestymaaralmost 4 years ago
Heidi Howard, the first author of this paper did two videos about her paper:<p>- A 10&#x27; short intro <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=JQss0uQUc6o" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=JQss0uQUc6o</a><p>- A more in depth one : <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=0K6kt39wyH0" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=0K6kt39wyH0</a>
brickbrdalmost 4 years ago
In practice, for the systems where I built a replication system from the ground up, once you factor in all the performance, scale, storage layer and networking implications, this Paxos vs. Raft thing is largely a theoretical discussion.<p>Basic paxos, is well, too basic and people mostly run modifications of this to get higher throughput and better latencies. After those modifications, it does not look very different from Raft with modifications applied for storage integration and so on.
评论 #27859631 未加载
评论 #27859516 未加载
butterisgoodalmost 4 years ago
VR for the win... (no not that VR) <a href="http:&#x2F;&#x2F;pmg.csail.mit.edu&#x2F;papers&#x2F;vr-revisited.pdf" rel="nofollow">http:&#x2F;&#x2F;pmg.csail.mit.edu&#x2F;papers&#x2F;vr-revisited.pdf</a><p>Ok, maybe not for the win, but it&#x27;s worth a look. I&#x27;m actually fairly certain one of the Paxos implementations I&#x27;ve worked with and used is really more of a VR bend to Paxos anyway.
评论 #27862529 未加载
hutrdvnjalmost 4 years ago
Can someone provide a short description of the differences between Paxos and Raft?
评论 #27859976 未加载
评论 #27860020 未加载
lowbloodsugaralmost 4 years ago
Problem: &quot;Raft protocol described and analyzed in English has problems.&quot; Solution: &quot;Here is a modification to the protocol, described in English, that does not have such a problem.&quot;<p>Seems like there is a common failure mode of &quot;describing distributed protocols in plain english and thinking this is a proof&quot;?<p>The actual problem here is not &quot;There was a problem in the Raft protocol, and I figured it out and provided a work around&quot;. The actual problem here is &quot;Reasonably experienced software engineers reviewed the specification and didn&#x27;t see any problems.&quot; This actual problem has not been addressed by the article.
评论 #27859289 未加载
tschellenbachalmost 4 years ago
Stream&#x27;s consensus algorithms are all Raft based, the Go Raft ecosystem is very solid. We did end up forking some of the libraries, but nothing major.
aneutronalmost 4 years ago
It&#x27;s not possible do to so, since it would be done asynchronously.<p>I&#x27;m sorry, I&#x27;ll see myself out.
评论 #27861174 未加载