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

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Mon Apr 8 18:12:46 CEST 2013


At Mon,  8 Apr 2013 10:47:00 +0900,
Hitoshi Mitake wrote:
> 
> 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

This sereis has had enough iterations.  Let's switch to more
incremental development. :) I've applied to the master branch.

Thanks,

Kazutaka



More information about the sheepdog mailing list