[Spread-users] Re: [Spread-users]: Max time delivery?
yairamir at cnds.jhu.edu
Wed May 22 09:10:54 EDT 2002
Spread is a message bus. In almost all cases, it will either deliver the message
within a few (milli)seconds or less, or there is a connectivity problem (and you
get a membership change).
After Spread delivers the message to the application, the application
can take its time and not read it for a while. In that case, the
application will process the message only after sometime. At THAT time
the message was already delivered to other members in the group. Therefore,
there is no way really to "take it back" if it was not read by some process
within a specific time. So the semantics you propose is not really well
The issue is not how to add a timeout to the interface but a deeper one of precise guarantees.
:) Yair. http://www.cs.jhu.edu/~yairamir
>>As for having this feature in spread: I guess I can see the advantage
>>of doing this in the daemon, because the user doesn't need to get the
>>message and then discard it, but aside from that it is trivial to
>>implement this at the application level.
Datoh> I don't think it's so trivial because if one node receive the message
Datoh> after the max time, all the node must discard the message so you have
Datoh> to add a ack protocol over spread that i think is not a good solution.
Datoh> I believe that a solution is to add a timeout property to a message:
Datoh> (java API)
Datoh> message = new SpreadMessage();
Datoh> message.setTimeout(true); // Activate the timeout
Datoh> message.setTimeOutValue(200); // set timeout to 200ms
Datoh> Spread-users mailing list
Datoh> Spread-users at lists.spread.org
More information about the Spread-users