[Spread-users] Confirmation for Reliable Delivery
ermagan at gmail.com
Fri Aug 8 18:01:57 EDT 2008
I am new to spread, and I am trying to understand how the reliable delivery
works. Here is what I want to do: A client sends a message to a group of
servers (the client is not a member of the Servers group) and one member in
the Servers group will process the request based on an internal load
balancing function (mod # servers in the group). If the spread client
multicasts an AGREED message to the Servers group, the multicast will return
with a success as soon as the message is received by one spread daemon.
Then the spread daemon will multicast the message to all the members of the
group. Since AGREED service type follows causality, if any member in the
Servers group dies after client sends the message, and before Spread
delivers the message to all group members, the alive servers will receive
the membership change before receiving the client's message, and can
rearrange the load balancing function to handle all the requests. The only
time that a client's request might be lost is when all members of the
Servers group die, in which case client's multicast will still return with
success, while no server has received it. So can I assume that as long as at
least one server is alive, the client can be sure 100% that all alive
servers will always receive a client's request? or am I missing some edge
cases where the message might still get lost somewhere in the queues?
The same question for multicasting to private groups. If a client wants to
talk to another client, using a central Spread daemon, as soon as the daemon
receives the message, multicast will return success for the sender client.
the daemon then will send the message to the receiver client reliably.
Therefore the only case that the receiver might not receive the message is
when it dies before the message is delivered. So can I assume that as long
as the receiver client is alive reliable delivery is 100% ? or am I missing
some edge cases here?
I also saw some threads about Spread recognizing the membership change
(leave) with delay. does this mean that the alive members of a group might
receive the membership message after a regular message that was sent after
the actual death of a certain member? doesn't this contradict the causality?
I would be grateful if someone can explain these cases.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Spread-users