[corosync] [PATCH v2] Merge downlist and joinlist into one confchg event

Angus Salkeld asalkeld at redhat.com
Tue Nov 8 03:26:55 GMT 2011


On Mon, Nov 07, 2011 at 12:18:49PM +0800, Yunkai Zhang wrote:
> In the previous version of cpg.c, we collected downlist info by
> interchanging messages among all nodes in the cluster. In my opinion,
> this is not necessary.
> We can calculate this info according
> left_nodes(my_member_nodes-trans_nodes) and its relative
> process_infos. So I discard message interchanging and collect downlist
> info directly in cpg_leftlist_collect function.

This would need a _lot_ of testing! I strongly suggest leaving the
downlist messaging in to avoid regressions.

> 
> Although I calculate downlist information directly in local, but
> Iwon't send it until I have collected all joinlist as regular
> messagesamong all nodes in the cluster. Even if there are no one
> joinlistcontent among all nodes, this patch will also send _bare_
> joinlistincluding only the message header so that all nodes can
> receive alljoinlist message and reach synchronization finally. So I
> think itwon't deliver configuration changes to the application ahead
> of theregular messages.
> I known that merging downlist and joinlist into one confchg event
> willbreak wire compatibility, but I think it will be more reasonable,
> andmost important it reflect the truth and obey the CPG API
> description.

You break on-wire compatibility by removing the downlist not by
merging the events to the client applications
(on-wire == totem messages to other nodes not ipc message to application).

The problem with that is what happens when you are upgrading and you
have a cluster with a mix of versions - they will not aggree on the
same cpg group membership.

-Angus

> -- 
> Yunkai Zhang
> Work at Taobao


More information about the discuss mailing list