[Spread-users] Ordering

John Schultz jschultz at spreadconcepts.com
Tue Jun 22 18:58:51 EDT 2004

P. Krishna wrote:
> So, is it correct that even if a group is not using Agreed or Safe
> delivery but using a simple basic/fifo delivery method, those pkts for
> the group still have to traverse the "logical" ring and incur the
> similar latencies of Agreed/Safe messages?
> Krishna

I think you have a slight misunderstanding of how Spread 3 works.  The 
token only contains control information (SEQ#, ARU, etc.), it does not 
contain messages inside it.  Messages are sent when a daemon holds the 
token and they are sent directly to the other daemons: multicast in the 
local segment and unicast to the representatives of the other segments, 
who then multicast it immediately in their segment.

In Spread 3 every message must wait for the token to get to its 
originating daemon before it is sent on the Spread network.  However, 
the lower levels of service do not have to satisfy the same delivery 
requirements as the higher ones.  Meaning, for example, that a RELIABLE 
message can be delivered as soon as it is received regardless of the 
state of other messages.

In Spread 3, RELIABLE msgs are delivered immediately; FIFO, CAUSAL and 
AGREED use the AGREED order rule (deliver by sequence # with no holes); 
and SAFE msgs are delivered when all daemons in the view have the message.

There are stubs in Spread 3 to optimize FIFO delivery to only require 
receiving all other messages from an originating server with no holes, 
but that is not currently implemented.

John Lane Schultz
Spread Concepts LLC
Phn: 443 838 2200

More information about the Spread-users mailing list