[sheepdog] [PATCH 00/13] zookeeper driver cleanup and rework

Liu Yuan namei.unix at gmail.com
Tue Dec 18 06:37:48 CET 2012

From: Liu Yuan <tailai.ly at taobao.com>

Current zookeeper driver won't work with master. Even simple following commands

collie cluster format;
collie vdi create test 1G;

on a newly created cluster will cause hang for ever.

This patchset is try the first round to make it work with master code and also
do a heavy cleanups/refactory.

Compared to old driver:
 - Put all the events into the zk_queue and result in a totally ordered event
 - Block/unblock events are linked into a dedicated list to implement blocking
   semantics as corosync
 - better master choosing method to allow concurrent start of multile nodes.
 - add an option to control sesstion timeout at sheep start-up command

After this set gets merged, the next round is integrate zookeeper driver into
test frame and stable it a bit more.

Liu Yuan (13):
  zookeeper: rework zoo helpers
  zookeeper: fix clientid when sesstion changes
  zookeeper: refactor event handling
  zookeeper: use PRId32_t to print queue_pos
  zookeeper: cleanup paramter passing
  zookeeper: refactor zk_queue_push_back()
  zookeeper: use rbtree instead of glib's binary tree
  zookeeper: refactor zk_member_init()
  zookeeper: further reduce the parameters of zoo_xxx helpers
  zookeeper: remove field 'join' of zk_node
  zookeeper: remove clientid from zk_node
  zookeeper: rework block/unblock and leave event handling
  zookeeper: add an option to control heartbeat timeout

 sheep/cluster/zookeeper.c |  925 ++++++++++++++++++++-------------------------
 1 file changed, 402 insertions(+), 523 deletions(-)


More information about the sheepdog mailing list