On 1 Jul 2009, at 22:45, Jean-Paul Calderone wrote:
On Wed, 1 Jul 2009 11:15:35 +0100, Paul Thomas <[email protected]
> wrote:
Hi,
I've hit a problem as my app has got bigger (about 30-40 widgets
now, all
chattering roughly once every 2 seconds) where the reliable message
delivery mechanism is spiralling out of control. It seems that the
constant
back and forth means that large 'baskets' of messages are resent.
The more
this happens, the busier everything gets until the browser becomes
unresponsive.
If you can produce a minimal example which demonstrates this
behavior, it
would probably be very helpful in improving the situation.
I've been tasked with doing this anyway to help us evaluate other
solutions. I'm sure I can convince the boss to make it available.
There's a fix for it: [Divmod-dev] athena duplicate messages issue
but I'm
slightly concerned about the potential for lost messages - and also
confused about how this could happen. Given that HTTP is a reliable
connection-oriented transport, where is the gap that messages can
fall
through?
Actually, HTTP is not a reliable transport. The most obvious
shortcoming
it has is that there is no way for a server to know if a client
received
a response or not, but there are others. So ReliableMessageDelivery
is
necessary.
Got it.
I think I can cope with lost messages in most cases, so would it
be useful
to add a kind of 'sendRemote' that was like 'callRemote' but
didn't care
about a response? Or maybe this already exists and I've missed it?
This is an interesting idea. I haven't considered having such a
feature in
Athena before. It may be worth exploring. The first problem that
comes to
mind is that if any part of a page uses callRemote, sendRemote's
advantages
are largely lost. This would be because the messages generated by
callRemote
will still need to be sent, so whatever retransmission logic is
present in
ReliableMessageDelivery will still be invoked.
Right - and I _would_ need both in the same page. Also, as Glyph
points out, I wouldn't like out-of-order messages.
Paul.
P.S. this app is likely to get more noisy - is it likely that I'll
have to
abandon Athena for Orbited or similar? I mean, are there
architectural
differences that will prevent Athena scaling?
I certainly hope that Athena can handle whatever load you intended
to put on
it, or that we can work together to fix whatever problems it has
which would
prevent that. :)
We'll be doing an evaluation soon. Performance will play a part but we
also have to consider integration with UI toolkits (jQuery UI etc.).
If we do stick with Athena, we'll be providing patches and tests.
Thanks to you both,
paul.
_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web