]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon: implement a simpler sync
authorSage Weil <sage@inktank.com>
Tue, 9 Jul 2013 01:13:31 +0000 (18:13 -0700)
committerSage Weil <sage@inktank.com>
Tue, 9 Jul 2013 18:05:47 +0000 (11:05 -0700)
commitda0aff28ab478bcc3136715f92bc1af8d4b403c1
treeb35ee7592808204938c1a0389a6691e7d3a56226
parentf326c4dcefb5fa8f2b8c4e29be4ad4c148d6e3d4
mon: implement a simpler sync

The previous sync implementation was highly stateful and very complex.
This made it very hard to understand and to debug, and there were bugs
still lurking in the timeout code (at least).

Replace it with something much simpler:

 - sync providers are almost stateless.  they keep an iterator, identified
   by a unique cookie, that times out in a simple way.
 - sync requesters sync from whomever they fancy.  namely anyone with newer
   committed paxos state.

There are a few extra fields that might allow sync continuation later, but
this is complex and not necessary at this point.

Signed-off-by: Sage Weil <sage@inktank.com>
src/common/config_opts.h
src/messages/MMonSync.h
src/mon/Monitor.cc
src/mon/Monitor.h
src/mon/MonitorDBStore.h
src/mon/Paxos.cc
src/mon/Paxos.h