[Spread-users] Agreed Order

Yair Amir yairamir at cnds.jhu.edu
Mon Jun 21 13:57:33 EDT 2004


David> I assume after reading the documentation that ordered delivery is supported
David> in configurations where there is one Spread daemon per node.  True?

It is supported in any configuration regardless of how many daemons
there are, and regardless of whether clients connect locally or

David> Assuming one daemon per node...

David> To summarize ordered delivery - it says that if a group contains nodes A,
David> B, and C, then if simultaneously A, B, and D (a non-member) send to the
David> group, then A, B, and C will receive the same messages in the same order.
David> Correct?

Yes. This is called open group semantics which is supported by Spread
(in any configuration).

David> Does the ordered delivery rely strictly on time being synchronized among
David> the nodes, and time stamps appended to the packets?  Or are there sequence
David> numbers used as well somehow?  Can you give me a feel for the techniques used?

The ordered delivery does not rely on synchronized clocks at all.
There are logical sequence numbers that are used. There are several
algorithms we developed but the one used in the open source is similar
in terms of ordering to the one described in my PhD thesis (although
it is much more resilient to message losses and include many other
optimizations and features).

David> What performance overhead is associated with the ordered delivery feature in
David> particular (say vs the same thing without ordered delivery)?

With the open source version, there is not much difference if there
are no message losses. If there are losses, the ordered delivery may
incur more latency compared with reliable delivery. If your network is
good, Spread's flow control will usually ensure that the loss rate will
be very low. So in such cases, Agreed order will usually not cost more
than weaker order requirements.


       :) Yair.

More information about the Spread-users mailing list