[Sheepdog] [RFC PATCH 0/3] add a blocking callback to cluster notification

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Mon Oct 10 07:46:17 CEST 2011


The current sheep/group.c is too complex.  I think the reasons are as
follows:

 1. Sheepdog vdi operations are processed in two phase multicasting
    (the caller multicasts the request and the master multicasts the
    response), and we cannot allow any other vdi operations and
    membership changes during the two phase.

 2. Sheepdog join process is also done in two phase multicasting.

 3. Sheepdog manages two node memberships, sd_node_list and
    cpg_node_list.  The former is used for consistent hashing and seen
    from users.  The latter is used for the cluster driver and
    notified in join_handler/leave_handler.

This patchset adds a blocking mechanism to the cluster driver and
solves the first one.  I'll send a patch to solve the second and third
problem later today.


MORITA Kazutaka (3):
  cluster/corosync: link corosync events to list before dispatching
    them
  cluster: add blocking mechanism to notification
  sheep: use block_cb for vdi operations

 sheep/cluster.h          |   10 ++-
 sheep/cluster/corosync.c |  277 ++++++++++++++++++++++++++++++++++++++++++----
 sheep/group.c            |   97 ++++-------------
 3 files changed, 283 insertions(+), 101 deletions(-)

-- 
1.7.2.5




More information about the sheepdog mailing list