[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