[Spread-users] newbie question(s)
rcaudy at gmail.com
Tue Feb 27 06:51:09 EST 2007
On 2/27/07, cgnicholas at alamedanet.net <cgnicholas at alamedanet.net> wrote:
> apologies in advance for a few questions that are no doubt answsered
> somewhere in the archives, etc, but here goes:
> I'm thinking to use spread for an app that logically might have a *vast*
> number of groups, but only a reasonably small number active at any one
> time; i.e. the naming for a spread group is essentially a 4D cube,
> according to "x_y_z_t" , i.e. groups consist of who is "nearby" in
> quantized space and time. I'm wondering:
> a) Will internal queues of unread messages eventually get cleaned up, if
> they aren't drained, and the listener that joined the various groups
> dropped its connection?
Spread doesn't implement persistent messages. Basically, each daemon holds
one global in-memory queue of messages that can't yet be delivered due to
sequence number gaps or some other condition that prevents guarantees from
being met. Additionally, each daemon holds a queue for each of its local
clients of messages that have been "delivered," but that haven't yet been
written to the mailbox (socket) for that client.
The per-client queues have a maximum size limit, after which the client will
be cut off... Spread requires that applications implement their own flow
control. Once a client disconnects, its queue is eliminated by the daemon
it was connected to.
Note that leaving a group doesn't immediately clear the queue of messages
delivered to that client because of that group... receipt of a "self-leave"
message tells the client when it has cleared the remaining messages and
officially been removed from the group with respect to the ordering
guarantees. If I recall, join and leave events are treated as AGREED
b) How long do spread groups remain "alive" on a server if nobody is
> sending or receiving?
They don't. When the last member is removed (see the above discussion of
ordering), they disappear.
c) what should I be asking that I'm not?
Good question. Lots of people ask about their particular network
configuration (how many daemons, overall scalability issues). You might
want to ask about the performance implications of having huge numbers of
groups active at once, if this is a potential scenario for you application.
I recommend that you use the very latest version of Spread, as it has a lot
of enhancements to this code, although it's been further improved since I
took performance measurements. Maybe one of the Spread Concepts guys could
help with this, if you need details.
thanks in advance!
> Spread-users mailing list
> Spread-users at lists.spread.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Spread-users