[sheepdog] [PATCH v3 00/11] raise max node number

MORITA Kazutaka morita.kazutaka at gmail.com
Tue Sep 24 03:01:04 CEST 2013


At Sun, 22 Sep 2013 00:12:17 +0800,
Liu Yuan wrote:
> 
> v3:
>  - add comments why we remove epoch check in cluster_join_check()
>  - reserve local_idx in sd_rsp
>  - move the comments at SD_MAX_NODE
> 
> v2:
>  - make struct rb_node aligned to 64 bits.
>  - raise the max node number from 1024 to 6144.
>  - drop "sheep: remove bug_on for struct sd_node"
> 
> This is the second round of patch set that aims to raise the max node limit.
> 
> With this patch set, we can support up to 6144 nodes with zookeeper driver.
> The real limit is actually determined by the cluster driver with the current node
> management code, that is, how much payload of broadcast message the driver can
> send determine value of SD_MAX_NODES.
> 
> No algorithm nor functionality changes, but involes a lot of api changes that
> assume a static array of sd_nodes.
> 
> With this patch set, cluster driver will pass a rbtree of nodes directly to sheep
> handlers and all the way down we'll play with rbtree instead of the old static
> array.
> 
> I do not yet move static sd_nodes array in struct epoch_log and struct
> cluster_info to dynamic structures. So basically we are still limited by max
> node roof, but we are way close to get rid of it.
> 
> Liu Yuan (11):
>   rbtree: make rb_for_each_entry and rb_for_each more generic
>   sheep: remove local_idx in struct sd_rsp
>   rbtree: add rb_copy helper
>   sheep: check only joining nodes in sd_accept_handler
>   sheep: add option to disable shepherd driver
>   rbtree: make rb_node aligned to 64 bytes
>   sheep: use rbtree to manage struct sd_node
>   group: add node to sockfd_cache as early as possible
>   sheep: refactor send_join_request()
>   cluster driver: don't use SD_MAX_NODES for local and corosync
>   sheep: bump SD_MAX_NODES from 1024 to 6144
> 
>  configure.ac              |   10 ++
>  dog/dog.c                 |   14 ++-
>  dog/dog.h                 |    2 +-
>  dog/node.c                |   59 +++++++----
>  dog/vdi.c                 |   15 +--
>  include/internal_proto.h  |   18 +++-
>  include/rbtree.h          |   30 ++++--
>  include/sheep.h           |   20 +++-
>  include/sheepdog_proto.h  |    3 +-
>  include/sockfd_cache.h    |    2 +-
>  lib/sockfd_cache.c        |   10 +-
>  sheep/Makefile.am         |    6 +-
>  sheep/cluster.h           |    6 +-
>  sheep/cluster/corosync.c  |   38 +++----
>  sheep/cluster/local.c     |   50 +++++----
>  sheep/cluster/zookeeper.c |   60 +++++------
>  sheep/group.c             |  255 +++++++++++++++++++++++++--------------------
>  sheep/ops.c               |   16 +--
>  sheep/recovery.c          |   17 +--
>  sheep/sheep_priv.h        |    3 +-
>  20 files changed, 372 insertions(+), 262 deletions(-)

Applied, thanks.

Kazutaka



More information about the sheepdog mailing list