[Twisted-web] [Athena] Is ReliableMessageDelivery really necessary?

Paul Thomas spongelavapaul at googlemail.com
Fri Jul 3 05:56:28 EDT 2009

On 1 Jul 2009, at 22:45, Jean-Paul Calderone wrote:

> On Wed, 1 Jul 2009 11:15:35 +0100, Paul Thomas <spongelavapaul at googlemail.com 
> > 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,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-web/attachments/20090703/d0565aae/attachment.htm 

More information about the Twisted-web mailing list