]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon/Paxos: share state and verify contiguity early in collect phase
authorSage Weil <sage@redhat.com>
Wed, 13 Aug 2014 23:17:02 +0000 (16:17 -0700)
committerSage Weil <sage@redhat.com>
Thu, 16 Oct 2014 00:17:35 +0000 (17:17 -0700)
commit1f4aaf648f4aa6f6056d0e8ce629eeea05c5424d
treea313302d8c72fcc844641af5c365807e12e8d130
parent6c5b9a666fcd94e175a8b9771368b55246957efe
mon/Paxos: share state and verify contiguity early in collect phase

We verify peons are contiguous and share new paxos states to catch peons
up at the end of the round.  Do this each time we (potentially) get new
states via a collect message.  This will allow peons to be pulled forward
and remain contiguous when they otherwise would not have been able to.
For example, if

  mon.0 (leader)  20..30
  mon.1 (peon)    15..25
  mon.2 (peon)    28..40

If we got mon.1 first and then mon.2 second, we would store the new txns
and then boot mon.1 out at the end because 15..25 is not contiguous with
28..40.  However, with this change, we share 26..30 to mon.1 when we get
the collect, and then 31..40 when we get mon.2's collect, pulling them
both into the final quorum.

It also breaks the 'catch-up' work into smaller pieces, which ought to
smooth out latency a bit.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit c54f1e4d66b22bad715ac17e9baa72ab93e48c46)
src/mon/Paxos.cc