[Spread-users] Spread and reliable message communication

Tim Peters tim at zope.com
Fri Aug 8 16:39:03 EDT 2003

>> ...
>> Another was to implement a recovery protocol, so that when a client
>> disconnects (for whatever reason), it can ask the server to resend
>> from the point of the last message received.

[Jim Vickroy]
> Did you intend to say: "... it can ask the **sender** to resend from
> the point of ..." rather than: "... it can ask the server to resend
> from the point of ..."?
> If not, how can the (Spread) server do this?

Sorry, I slipped into our-app-centric terminology there.  "The last message"
only makes sense here because the app imposes a total ordering on messages,
above what Spread does.  When a client starts up, it finds "the last"
message it acted on, identified by an application-level monotonically
increasing integer "id".  It then tells the application-level data server
what that was, and asks it to resend every application-level message with an
associated application-level id larger than that.  Of course Spread doesn't
know anything about this recovery protocol, and it's the application-level
data server that remembers every (application-level) message it has ever
sent (which is a lie <wink>, but harmless enough here -- it's a database
replication server, and can replay all the transactions in the database's
history for so long as the database exists, and doesn't have its history
explicitly wiped).

More information about the Spread-users mailing list