[sheepdog] [PATCH v10 0/7] shepherd: a new cluster manager specialized for sheepdog

Hitoshi Mitake mitake.hitoshi at lab.ntt.co.jp
Mon Apr 8 03:47:00 CEST 2013


This patchset adds shepherd: a new cluster manager specialized for
sheepdog. The 6th and 7th patches actually adds shepherd and its
driver, 1 - 5th do preparations for it.

Now shepherd can pass all tests. And valgrind doesn't report memory
errors. I believe current version can satisfy least quality for
applying. I'm grad if I can hear your opinions.

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).

v5
 * rename sheepkeeper -> shepherd
 * a little bit cleaning
 * new document: https://github.com/mitake/sheepdog/wiki/shepherd-design-note

v6
 * fix problems of coding style pointed by Liu Yuan

v7
 * all tests can be passed

v8
 * cleaning coding style and some removing some bugs
 * all tests can be passed with valgrind
 * add event prioritizing mechanism for shepherd

v9
 * all tests can be passed with valgrind, take 2
 ** CAUTION: this patchset depends on the patch Yuan posted which is titled,
             sheep: don't panic on reading broken epoch file

v10
 * rebase on latest master

Hitoshi Mitake (7):
  include: move node_to_str() and str_to_node() from sheep/cluster.h to
    include/sheep.h
  include: move enum cluster_join_result from sheep/cluster.h to
    include/internal_proto.h
  lib: sockaddr_in_to_str(), convert sockaddr_in to string
    representation
  lib: add wrappers do_writev2() and writev2() for typical usage of
    writev()
  lib: add a mechanism for prioritizing events
  shepherd: a new cluster manager specialized for sheepdog
  sheep: add a cluster driver for shepherd

 .gitignore               |    1 +
 Makefile.am              |    2 +-
 configure.ac             |    3 +-
 include/Makefile.am      |    5 +-
 include/event.h          |   14 +-
 include/internal_proto.h |   20 +
 include/net.h            |    6 +
 include/sheep.h          |   38 ++
 include/shepherd.h       |  132 +++++++
 lib/event.c              |   61 +++-
 lib/net.c                |   34 ++
 sheep/Makefile.am        |    3 +-
 sheep/cluster.h          |   53 ---
 sheep/cluster/shepherd.c |  689 ++++++++++++++++++++++++++++++++++++
 shepherd/Makefile.am     |   44 +++
 shepherd/shepherd.c      |  869 ++++++++++++++++++++++++++++++++++++++++++++++
 16 files changed, 1907 insertions(+), 67 deletions(-)
 create mode 100644 include/shepherd.h
 create mode 100644 sheep/cluster/shepherd.c
 create mode 100644 shepherd/Makefile.am
 create mode 100644 shepherd/shepherd.c

-- 
1.7.2.5



More information about the sheepdog mailing list