On Tue, Aug 24, 2010 at 5:58 AM, Sidnei da Silva <[email protected]> wrote: > On Tue, Aug 10, 2010 at 7:55 PM, Robert Collins > <[email protected]> wrote: >> >From our end, I'd love that to look like this: >> - we receive a request >> - we commit the *intent*, dispatch to a queue >> - the request puts itself into long-poll mode >> - the queue processes the work >> - the queue callsback the appserver which reactivates the request >> which then delivers the users response >> >> Thats going to need some serious plumbing, a rearrangement of /all/ >> the global-request-specific-state and so on. Not on the cards for now. > > Only if implemented in the way you describe above. What we do in > Landscape goes as follows: > > - we receive a request > - we commit the *intent*, dispatch to a queue, generate a page identifier > - we deliver the response back to the user, basically a page with a spinner > - a new (XHR) request is fired, in long-poll mode, with the page identifier > - the queue processes the work > - the queue notifies that it's done, making the long-poll request > return and delivering the response
This has two characteristics that what I described does not, and both are constraints. Firstly, it adds another client round trip. Thats (optimistically) 300ms from here, and also, importantly, upwards of 200ms in Asia, where we have a lot of commercial users. Secondly, the Landscape implementation uses a new host name, which adds an SSL handshake if no TCP connection is open (common for only occasionally used services), and even key exchange if the key is out of the cache. Thirdly, you need to render long poll responses in a different appserver environment than your regular one, which adds programming and programmer friction. None of those things are desirable IMO. I admire the Landscape engineering effort to deliver what you have, but I don't think we should aim for that; we should aim high and only compromise by conscious choice. -Rob _______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp

