Earlier quoted context omitted.
Once you're planning work arounds for the "assume half your servers fail" scenario, I think it's time to admit that eventually, something is going to go down that is not automatically recoverable.
The problem is that half the servers failing is indistinguishable from a switch connecting two racks being flaky, or anything else which can lead to half the servers being temporarily disconnected from the others.
A More Flexible Paxos
11–20 of 23 posts
Re: A More Flexible Paxos
#12This proposal is a generalization of the core Paxos algorithm. It's therefore orthogonal to all customizations and adaptations. I believe that they can all benefit from it, including RAFT.
If you read the thread on raft-dev, you'll see that Heidi Howard has independently come up with the same idea, and is working on a proof for it.
Re: A More Flexible Paxos
#13Earlier quoted context omitted.
The problem is that half the servers failing is indistinguishable from a switch connecting two racks being flaky, or anything else which can lead to half the servers being temporarily disconnected from the others.
Why wouldn't you use redundant switches rather than n(2) servers?
Especially since a flaky switch isn't the only issue. Power loss could bring down even redundant backbone switches, but leave communication within the rack going. You could accidentally push a bad routing config and blackhole traffic to a bunch of hosts. You could send out a bad push that intermittently breaks connectivity to some hosts. And so on.
Re: A More Flexible Paxos
#14Paxos: Agree on a value.
Multipaxos: Agree on a Leader, who will coordinate a set of values.
Hierarchical Multipaxos: Agree on a Leader, who will coordinate a set of Leaders, who will each coordinate a set of values.
If you squint hard enough, this looks almost like a B-Tree.
Re: A More Flexible Paxos
#15There's no theoretical reason why multipaxos can't be implemented hierarchically in order to increase throughput or expand the key space beyond what a small number of machines can handle. But paxos itself is complicated enough to deter almost all implementers, so add two additional levels of complexity? I don't think I'm surprised no one has tried. Paxos: Agree on a value. Multipaxos: Agree on a Leader, who will coor…
Re: A More Flexible Paxos
#16There's no theoretical reason why multipaxos can't be implemented hierarchically in order to increase throughput or expand the key space beyond what a small number of machines can handle. But paxos itself is complicated enough to deter almost all implementers, so add two additional levels of complexity? I don't think I'm surprised no one has tried. Paxos: Agree on a value. Multipaxos: Agree on a Leader, who will coor…
riak_ensemble is a hierarchical multi-paxos shaped system. It's what Riak Strong Consistency buckets are built on, but it's also a stand-alone consumable framework by itself.
Re: A More Flexible Paxos
#17"With systems getting more and more distributed, the Paxos algorithm has been gaining popularity." Has it though? I feel like many of the new distributed systems I read about are Raft based consensus.
> Has it though? AFAICT, Yes. > I feel like many of the new distributed systems I read about are Raft based consensus. Sure, and Raft has probably been gaining popularity even more than Paxos has. With more and more distributed systems and more attention on guarantees for such systems, its possible for both Paxos and Raft (and perhaps other techniques) to be getting more popular.
Re: A More Flexible Paxos
#18"With systems getting more and more distributed, the Paxos algorithm has been gaining popularity." Has it though? I feel like many of the new distributed systems I read about are Raft based consensus.
As for Paxos I think Amazon, Google (Spanner), Microsoft? have all implemented Paxos based systems are built and in production for a while. Basho has made it part of their Riak database etc.
I mean, sure if popular is just number of times it appeared on HN recently, yes, raft wins hands down. But otherwise, I think Paxos still seems like the workhorse of distributed consensus.
Re: A More Flexible Paxos
#19Earlier quoted context omitted.
Once you're planning work arounds for the "assume half your servers fail" scenario, I think it's time to admit that eventually, something is going to go down that is not automatically recoverable.
The problem is that half the servers failing is indistinguishable from a switch connecting two racks being flaky, or anything else which can lead to half the servers being temporarily disconnected from the others.
Re: A More Flexible Paxos
#20Earlier quoted context omitted.
The split-brain scenarios you mention cannot occur, since all the proposals have to go through the leader before they are agreed to by any processes. Moreover, the leaders are lease-based in the author's proposal, so I believe that what he describes correctly solves consensus. However, his proposal doesn't really give much of a resilience improvement over the original Paxos, since the system, in the worst case, toler…
So I'm pretty a similar problem could exist. If to accept a proposal we only need 3 nodes, not a majority, and we manipulate network latency in arbitrarily bad ways, a similar split brain could occur. Basically, you could commit the same transaction twice under different proposal numbers.