At Wed, 23 May 2012 14:12:14 -0400, Christoph Hellwig wrote: > > Currently the post-join even handler tries to contact one or more sheep > to get the current vdi inuse bitmap. In addition to adding network round > trips this has the problem that we need to properly block all vdi lookups > until this work has completed, which doesn't work properly, as well as > writing to the vdi bitmap both from the event worker thread as well as > the main thread. > > The simples fix (so simple that it removes 90 lines of code) is add the vdi > inuse bitmap to the join message, and simply use the bitmap from the join > message in any newly joining node. The downside is that this increases the > size of the join message by a large amount, which I'm requires increasing > the size of the event buffer. > > So far I've only tested this with the local driver as my test cluster is > busy, but I'd love to get some feedback on this design. IIRC, the maximum size of data corosync can multicast is less than 1 MB. I think it's worth a try to support sending a large join message with multiple corosync multicasts in the cluster driver. The other cluster driver would work with the design, I think. Thanks, Kazutaka |