]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon/Paxos: commit only after entire quorum acks
authorSage Weil <sage@inktank.com>
Mon, 17 Mar 2014 23:21:17 +0000 (16:21 -0700)
committerSage Weil <sage@inktank.com>
Mon, 7 Apr 2014 15:38:43 +0000 (08:38 -0700)
commit62d942294a54208cdc82aebf8b536d164cae5dc6
tree9fd4191d885d486e05c88426b9dcf5bfac1a7501
parent2160c72b393893896be581e89a42c4e37b79cb23
mon/Paxos: commit only after entire quorum acks

If a subset of the quorum accepts the proposal and we commit, we will start
sharing the new state.  However, the mon that didn't yet reply with the
accept may still be sharing the old and stale value.

The simplest way to prevent this is not to commit until the entire quorum
replies.  In the general case, there are no failures and this is just fine.
In the failure case, we will call a new election and have a smaller quorum
of (live) nodes and will recommit the same value.

A more performant solution would be to have a separate message invalidate
the old state and commit once we have all invalidations and a majority of
accepts.  This will lower latency a bit in the non-failure case, but not
change the failure case significantly.  Later!

Fixes: #7736
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
(cherry picked from commit fa1d957c115a440e162dba1b1002bc41fc1eac43)
src/mon/Paxos.cc