This patchset adds sheepkeeper: a new cluster manager specialized for sheepdog. The 3rd patch actually adds sheepkeeper, the 1st and 2nd do trivial preparation for it. It is far stabilized than v3. It can pass most of the tests. But sometimes dies with undeterministic bugs. The unpassed tests are: 008 (long), 015, 043, and 044 (long). # long means the test takes more than 30 seconds. I believe current version can satisfy least quality for applying. I'm grad if I can hear your opinions. changelog: v2 * lots of cleaning and bug fix * sane command line option handling * a little bit improvement of leave handling * not call sd_join_handler() in sheepkeeper_join() * add new option --enable-sheepkeeper to configure script for enable/disable building sheepkeeper v3 * lots of cleaning and bug fix * suppress some compiler warnings * handle leave of sheeps in saner way. this also reduces the problem of odd handling of return values from xread/xwrite * default log of sheepkeeper is /var/log/sheepkeeper.c, and users can specify custom location with -l option v4 * tons of cleaning and bug fix * documentation: https://github.com/mitake/sheepdog/wiki/sheepkeeper-design-note * stabilizing. The unpassed tests are: 008 (long), 015, 043, and 044 (long). Hitoshi Mitake (3): move node_to_str() and str_to_node() from sheep/cluster.h to include/internal_proto.h move enum cluster_join_result from sheep/cluster.h to include/internal_proto.h sheepkeeper: a new cluster manager specialized for sheepdog .gitignore | 1 + Makefile.am | 2 +- configure.ac | 3 +- include/Makefile.am | 3 +- include/internal_proto.h | 51 +++ include/net.h | 1 + include/sheepkeeper.h | 78 ++++ include/sheepkeeper_msg.def | 17 + lib/net.c | 17 + sheep/Makefile.am | 3 +- sheep/cluster.h | 50 --- sheep/cluster/sheepkeeper.c | 713 +++++++++++++++++++++++++++++++++ sheepkeeper/Makefile.am | 44 ++ sheepkeeper/sheepkeeper.c | 923 +++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 1852 insertions(+), 54 deletions(-) create mode 100644 include/sheepkeeper.h create mode 100644 include/sheepkeeper_msg.def create mode 100644 sheep/cluster/sheepkeeper.c create mode 100644 sheepkeeper/Makefile.am create mode 100644 sheepkeeper/sheepkeeper.c -- 1.7.5.1 |