[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,
paul.
-------------- 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