]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon: slurp latest state from active monitors before joining quorum
authorSage Weil <sage.weil@dreamhost.com>
Tue, 8 Nov 2011 06:46:09 +0000 (22:46 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Tue, 8 Nov 2011 06:46:09 +0000 (22:46 -0800)
commit2523b70ee174a0a172a018966bf7c7565e1c2614
tree9daf4342fc41fd29fd6a4b4553ce3a24f090dbca
parent100fba8ecbe931ae4184c4ea414e5cbd08295a2f
mon: slurp latest state from active monitors before joining quorum

If a monitor has been down and is behind, and joins the quorum, the
other nodes will try to send it all of the needed state, which can
bring the cluster to a halt.

Instead, implement a new bootstrap() procedure:

 - probe the cluster nodes
 - if there is an existing quorum,
   - and it is not too far ahead of me, join it (call an election)
   - otherwise, slurp down all the newer state and then restart (bootstrap)
 - if we see enough online nodes that are not part of the quorum, call
   an election.

We still need to add some timeouts.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/common/config_opts.h
src/messages/MMonProbe.h [new file with mode: 0644]
src/mon/Monitor.cc
src/mon/Monitor.h
src/mon/Paxos.cc
src/mon/Paxos.h
src/msg/Message.cc
src/msg/Message.h