[sheepdog] [PATCH v3 0/5] use rbtree to manage virtual node

Liu Yuan namei.unix at gmail.com
Wed Sep 11 08:24:52 CEST 2013


v3:
 - init rb_root in dog/vdi.c

v2:
 - add const for oid_to_vnodes

 This is the first round effor that tries to remove max limit of node one cluster
 can support.

 The next round is to use rbtree to manage sd_nodes, which will make node
 management fully dynamic and theoretically no limit of max node.

 Nothing else changes execept how we manage the virtual node ring.

Liu Yuan (5):
  sheep: restructure sd_vnode
  dog: use struct node_id to send requests
  sheep: use rbtree to manage vnodes hash ring
  rbtree: remove unused augment functions
  rbtree: add rb_destroy helper

 dog/cluster.c            |   18 ++--
 dog/common.c             |   21 ++---
 dog/dog.c                |   20 +++--
 dog/dog.h                |   12 ++-
 dog/farm/farm.c          |    2 +-
 dog/node.c               |   27 ++----
 dog/trace.c              |    8 +-
 dog/vdi.c                |   53 ++++++------
 include/internal_proto.h |    1 -
 include/rbtree.h         |   18 ++--
 include/sheep.h          |  216 +++++++++++++++-------------------------------
 lib/rbtree.c             |   68 ---------------
 sheep/gateway.c          |   10 +--
 sheep/group.c            |    8 +-
 sheep/plain_store.c      |    3 +-
 sheep/recovery.c         |    8 +-
 sheep/request.c          |    6 +-
 sheep/sheep_priv.h       |    2 +-
 18 files changed, 167 insertions(+), 334 deletions(-)

-- 
1.7.9.5




More information about the sheepdog mailing list