[Spread-users] Adding info to Transitional EVS messages

Nilo Rivera 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:

     Is_safe_within_group (message_type)

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. 

Thanks!  Nilo

More information about the Spread-users mailing list