Answers in-lined.<br><br>Cheers,<br>Ryan<br><br><div><span class="gmail_quote">On 2/27/07, <b class="gmail_sendername"><a href="mailto:cgnicholas@alamedanet.net">cgnicholas@alamedanet.net</a></b> &lt;<a href="mailto:cgnicholas@alamedanet.net">
cgnicholas@alamedanet.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">apologies in advance for a few questions that are no doubt answsered
<br>somewhere in the archives, etc, but here goes:<br><br>I&#39;m thinking to use spread for an app that logically might have a *vast*<br>number of groups, but only a reasonably small number active at any one<br>time; i.e
. the naming for a spread group is essentially a 4D cube,<br>according to &quot;x_y_z_t&quot; , i.e. groups consist of who is &quot;nearby&quot; in<br>quantized space and time. I&#39;m wondering:<br><br>a) Will internal queues of unread messages eventually get cleaned up, if
<br>they aren&#39;t drained, and the listener that joined the various groups<br>dropped its connection?</blockquote><div><br><br>Spread doesn&#39;t implement persistent messages.&nbsp; Basically, each daemon holds one global in-memory queue of messages that can&#39;t yet be delivered due to sequence number gaps or some other condition that prevents guarantees from being met.&nbsp; Additionally, each daemon holds a queue for each of its local clients of messages that have been &quot;delivered,&quot; but that haven&#39;t yet been written to the mailbox (socket) for that client.
<br><br>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.&nbsp; Once a client disconnects, its queue is eliminated by the daemon it was connected to.
<br><br>Note that leaving a group doesn&#39;t immediately clear the queue of messages delivered to that client because of that group... receipt of a &quot;self-leave&quot; message tells the client when it has cleared the remaining messages and officially been removed from the group with respect to the ordering guarantees.&nbsp; If I recall, join and leave events are treated as AGREED messages.
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">b) How long do spread groups remain &quot;alive&quot; on a server if nobody is
<br>sending or receiving?</blockquote><div><br><br>They don&#39;t.&nbsp; When the last member is removed (see the above discussion of ordering), they disappear.<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
c) what should I be asking that I&#39;m not?</blockquote><div><br><br>Good question.&nbsp; Lots of people ask about their particular network configuration (how many daemons, overall scalability issues).&nbsp; 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.&nbsp; I recommend that you use the very latest version of Spread, as it has a lot of enhancements to this code, although it&#39;s been further improved since I took performance measurements.&nbsp; Maybe one of the Spread Concepts guys could help with this, if you need details.
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">thanks in advance!<br><br>Chris<br><br><br><br><br>_______________________________________________
<br>Spread-users mailing list<br><a href="mailto:Spread-users@lists.spread.org">Spread-users@lists.spread.org</a><br><a href="http://lists.spread.org/mailman/listinfo/spread-users">http://lists.spread.org/mailman/listinfo/spread-users
</a><br></blockquote></div><br>