[sheepdog] [PATCH 3/3] sheep: split notification messages into two queues

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Thu Aug 30 05:20:23 CEST 2012


At Thu, 30 Aug 2012 10:55:26 +0800,
Liu Yuan wrote:
> 
> On 08/30/2012 08:36 AM, MORITA Kazutaka wrote:
> > Currently, the corosync driver uses two queues, confchg_list and
> > notify_list.  However, this causes problems because some messages
> > (e.g. format, shutdown, cluster snapshot, ...) needs to be ordered
> > with confchg events.
> > 
> > This patch splits multicast messages into two queues, block_list and
> > nonblock_list.  All block messages (e.g. vdi creation, etc) are linked
> > into block_list queue, and other notification messages and confchg
> > events are linked into nonblock_list.
> 
> I think the complete fix is to add {format, shutdown, cluster snapshot}
> messages to confchg list, how do you think of it?

With your approach, we need to let the cluster driver know which
messages must be ordered with confchg events.  Adding all notified
messages to confchg (nonblocking) list looks simpler and easier to
understand to me.  The reason we introduced two queues is that
blocking messages which have process_work() block all cluster events,
so I think this patch also works correctly.

Thanks,

Kazutaka



More information about the sheepdog mailing list