Open seancribbs opened 11 years ago
This project looks to be abandoned, but I don't really think its as complicated as described above to do dynamic membership. Since multi-paxos can concurrently have multiple instances of paxos happening concurrently (multiple slots being decided at once), we would have to cap the number of concurrent instances. We can call that number beta. So if the proposal value for slot 7 is a membership change, we would have to wait for slot 7+beta in order to make that change active. This means that every replica would have to see the membership change. Of course we can pass a bunch of noop proposals to make this change happen in a timely fashion.
This was the beginnings of a prototype. riak_ensemble is probably a better implementation.
Update this thread for those who find it by googling "paxos membership change".
It's possible to apply an idea of Raft's joint consensus to change membership in the middle of reaching agreement on an individual state-machine command (on single decree paxos level). The result is very similar to the Vertical Paxos, please see the details in the post on changing membership in Paxos with Raft's joint consensus.
This approached was used in the TreodeDB.