3 ms·
How heavily have you tested it? I haven't tried implementing Paxos myself, but anecdotally, it's very hard to get it completely right. And when it's being used
by iainmerrick 10y ago
How heavily have you tested it? I haven't tried implementing Paxos myself, but anecdotally, it's very hard to get it completely right. And when it's being used as key low-level infrastructure, it has to be completely right.
This blog post we're discussing agrees: "I planned to finish it in a couple of days, but the whole endeavor lasted a couple of months, the first version has consistency issues, so I had to mock the network and to introduce fault injections to catch the bugs. [...] Single Decree Paxos seems simpler than Raft and Multi-Paxos but remains complex enough to spend months of weekends in chasing consistency."
Your approach of using many small Paxos instances is very interesting, though! I'd love to see some real world performance comparisons.
- rescrv 10y agoIndeed pocdb is not intended to be a fully "ready" implementation. There are likely liveness bugs (that can be mitigated by periodically calling work_state_machine on every write outstanding), but it is unlikely to have safety bugs stemming from protocol misunderstandings (any safety bug is likely a small typo). My main projects using Paxos are Replicant[1] and Consus[2], both of which have consumed significantly more time to get Paxos correct. [1] https://github.com/rescrv/replicant https://github.com/rescrv/replicant [2] http://consus.io/ http://consus.io/