[Spread-users] newbie question(s)

cgnicholas at alamedanet.net cgnicholas at alamedanet.net
Thu Mar 1 00:06:20 EST 2007

> Spread doesn't implement persistent messages.

Fair enough; certain systems are optimized for performance and
scalability; i.e. the game of basketball doesn't really worry about
players visiting their lockers during a 'pick', nor the game of football
during a screen, etc. play

> 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.

*one* global queue?  at what granularity are the locks?

> 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.

(I guess not a single global, but multiple, etc locks...?) We are looking
at an http/poll case, where things might queue (and build up...) for a
while, and never get drained... At some point the spread connection (from
the client side) will get torn down

> The per-client queues have a maximum size limit, after which the client
> will be cut off... Spread requires that applications implement their own
> control.

Again, within an http case, things might accumulate for a while, and then
the connection gets  dropped.

> 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
> messages.

hmmm - are these nuances exposed via the Java interface?

>>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,

actually, it's a 'sparse' matrix: conceptually lots of groups (i.e. we
recompiled for a groupname of 32-64 characters) but practically a much
smaller subset at any one time

> I recommend that you use the very latest version of Spread

will do!

>> thanks in advance!

and thanks again!!!


More information about the Spread-users mailing list