[Spread-users] reliable?

John Schultz jschultz at d-fusion.net
Fri Apr 11 15:14:17 EDT 2003

One last note: you can often leverage the power of a SAFE msg onto lower 
service level msgs that you sent earlier.

For CAUSAL and AGREED msgs it is very simple. Say that msgs m and m' are 
both delivered at process p in view v, where m is a CAUSAL or AGREED msg 
and m' is a SAFE msg. If m' is delivered before a transitional signal, 
then m has also become safe in v and you can make all the same 
reliability assertions about m that you can about m'. If m' is delivered 
after a transitional signal at p, then m has become safe w.r.t. at least 
the members of p's transitional membership set of the following view.

Leveraging safety onto lower level msgs is much more difficult, but can 
be done. In order to do this, you begin to implement some of the 
functionality that is contained within the Flush Spread layer (the VS 

Here is an example of an algorithm that would let you leverage safety 
onto FIFO msgs:

After every view event each of your processes sends a CAUSAL (or higher 
service lvl) msg m announcing it has installed its most recent view v. 
Any FIFO msgs that your app sends later are blocked from being delivered 
anywhere in views earlier than v by this announcement msg.

Now, any FIFO msg sent by process q that is delivered in view v AFTER 
q's installation announcement about view v can be "made" safe in the 
exact same way as CAUSAL/AGREED msgs.

You could probably extend this reliability knowledge even more by 
tracking VS sets and marking FIFO msgs with the ids of the views in 
which they were sent -- but that gets complex really fast (i.e. Flush 

Please note that if you used this algorithm you would DRASTICALLY 
increase the cost of joins and leaves as every membership event would 
cause n multicasts. So, you really need to have a good reason to 
implement such a thing. However, a simple optimization to this algorithm 
would be not to "ack" a view event until the application tries to send a 

John Schultz
Co-Founder, Lead Engineer
D-Fusion, Inc. (http://www.d-fusion.net)
Phn: 443-838-2200 Fax: 707-885-1055

Cédric Coulon wrote:

> Hello,
> If a node falls during a reliable message is sent (FIFO_MESS for example),
> are the other nodes received the message after all?
> Thanks.
> ----
> Cédric Coulon                                          Tel:   02 51 12 59 63
> IRIN, 2, rue de la Houssiniere, BP 92208    Fax: 02 51 12 58 12
> 44322 NANTES cedex 3
> FRANCE                     mailto:Cedric.Coulon at irin.univ-nantes.fr

More information about the Spread-users mailing list