[Spread-users] Adding info to Transitional EVS messages
nrivera at cs.jhu.edu
Sun Aug 28 18:18:49 EDT 2005
I wonder if something like this could be added for checking messages
delivered on a transitional membership:
Message that, on a per-group-basis, is in-order and for which "I know
that everybody knows". But there is a total-order hole and I cannot
deliver it on a Regular Membership to follow EVS at the system level.
Consider the following scenario:
1. Clients X and Y (Cx and Cy) are members of groups A and B, each
running on its own daemon.
2. Cx sends a safe message Ma to group A, followed by another safe
message Mb to group B.
3. Cy receives Mb, followed by a partition which leaves him alone.
4. Cy established "I know that everybody knows" for Mb before the
partition. (may not be the case in Spread)
5. Cy delivers Mb in a transitional membership because it does not have Ma..
First, can (4) above happen in Spread?....If not, is it implementation
dependent (a vector or fined-grained-token could do it)?.
Here is the reason: If group A and B are independent state machines,
then group B gets penalized for a message unrelated to his state (cannot
apply Mb). However, Mb could have been safely applied if we know that is
in order and everyone in the group received it. We have such a case
where an application is a member of hundreds of groups with a few
independent state machines. I guess each state machine could use a
different spread network to solve the above, but is not possible as some
events are sent to multiple state machines.
More information about the Spread-users