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
Co-Founder, Lead Engineer
D-Fusion, Inc. (http://www.d-fusion.net)
Phn: 443-838-2200 Fax: 707-885-1055
Cédric Coulon wrote:
> If a node falls during a reliable message is sent (FIFO_MESS for example),
> are the other nodes received the message after all?
> 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