[Spread-users] Spread Behavior?
John Schultz
jschultz at spreadconcepts.com
Sat Apr 8 21:05:49 EDT 2006
On Sat, 8 Apr 2006, Steve V wrote:
> Is it possible to have a cluster of spread servers for redundancy
> purposes, to basically allow a client to connect to 1 IP and not worry
> about what server they're connected to, or must a client always bind
> to a specific server?
By definition, a client always connects to some specific server as Spread
uses either a TCP/IP or IPC connection between client and server. Usually,
the client specifies exactly which server to connect to in SP_connect.
However, you *could* externally set up some mechanism where connect
attempts to a server name (IP or DNS name) will be implicitly split across
some number of actual servers. There are all sorts of solutions that do
this (e.g. - web farms).
Most Spread applications are written not to care about which daemon they
are connected to in a system. The most obvious effect (other than
connectivity) connecting to different servers has for a client application
is that the full private name of the connection will be different. For
example if I connect to server "commedia" with login name "john", then my
private name in Spread will be "#john#commedia". If I connected to server
"hops" with the same login name, then my private name would be
"#john#hops". If you write your application correctly, you can easily
deal with these issues.
> Spread can guarantee that a message makes it to all servers, correct?
> Does it also allow confirmation to the sender whether or not all
> receiving clients processed the message successfully?
Spread cannot guarantee that a message makes it to all servers, as no
communication system can a priori make that claim in all cases. It also
does not allow for automatic notification of receiver processing. The
only way that can be done in Spread is for all the receivers to explicitly
acknowledge they've processed the messages (by sending a message).
> If a Spread server dies while messages are in the queue, or still
> being distributed, are those messages gone forever, or does spread
> maintain it's own list of active messages, so that they can be
> restarted, or requeried upon restart?
At the server that died those messages are gone forever as if/when the
server restarts it does so from scratch. The other servers in the system
at the time of death will still deliver the messages to their applications
if they have the messages. There is no mechanism in Spread to restart or
query for missed messages. Spread does not do persistent messaging.
---
John Schultz
Spread Concepts
Phn: 443 838 2200
More information about the Spread-users
mailing list