[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