>>> On 4/9/2009 at  5:50 AM, in message
<26ef5e70904090450s40e92dcfgea0fc34826360...@mail.gmail.com>, Andrew Beekhof
<beek...@gmail.com> wrote: 
> On Thu, Apr 9, 2009 at 09:37, Chrissie Caulfield <ccaul...@redhat.com> wrote:
>> Joel Becker wrote:
>>> Steve, Dave, etc,
>>>       Someone told me a while back that a node joining a cpg group
>>> would be by its lonesome in the join message.  That is, when the node
>>> gets its first confchg, it will be the only node in the list of joins.
>>> I've been using this to detect the first joiner of the group ("I joined,
>>> and the member count is 1").
>>>       Dave's since told me that this assumption is not valid (if it
>>> ever was).  So two or more nodes can join in parallel, and each can see
>>> more than node in the list of joins for its first confchg.  I'm now
>>> trying to figure out an algorithm for "first joiner".  I have a couple
>>> of questions:
>>>
>>> 1) If I see member_count == join_count, does that mean every member has
>>> just joinded, and all the members are receiving the same join message?
>>>
>>> 2) If member_count == join_count, can leave_count be non-zero?  If it
>>> is, am I guaranteed that we're looking at "all old members left, all new
>>> members joined"?
>>>
>>>       If these both are true, I can simply isolate a "first joiner" by
>>> checking member_count == join_count and selecting the lowest node
>>> number.
>>
>>
>> I don't think you can detect a first-joiner using CPG. cman does it by
>> reading the totem confchg messages. It is quite possible for two nodes
>> to join at the same time ... during the same SYNC phase so you certainly
>> can't rely on that.
>>
>> 1) If member_count == join count, then it's a safe bet that they are all
>> new nodes, and yes , it is true that all nodes should see the same
>> confchg messages
>>
>> 2) if join_count > 0 then leave_count will always be zero. That's a
>> consequence of how CPG sends its messages really, join and leave
>> messages are always separate. Don't rely on this behaviour though!
>> Although I can't see any reason to change it, I'd rather not have it
>> burned into the defacto specification.
> 
> For added fun, a node that restarts quickly enough (think a VM) won't
> even appear to have left (or rejoined) the cluster.
> At the next totem confchg event, It will simply just be there again
> with no indication that anything happened.
> 
> At least this is true for the raw corosync/openais membership data,
> perhaps CPG can infer this some other way.

When a new node joins the group does it also create the group?
e.g. http://www.opengroup.org/RI/technologies/cords/gipc.pdf
has an epoch number with each join/leave message, the group is
created by whoever joined in epoch 0.

Hth,
Robert





_______________________________________________
Openais mailing list
Openais@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to