On Thu Feb 14 22:49:20 2008, Peter Saint-Andre wrote:
On Thu, Feb 14, 2008 at 08:39:29PM +0000, Dave Cridland wrote:
> Lots of work from mobile email (ie, Lemonade) is transferrable here. > It'd be really nice if Tony Finch was coming, since he could talk us > through QTLS and QUICKSTART - they're SMTP fast startup work he did a > while back. Very interesting, but didn't make it into the Lemonade > Profile itself.

Do you have references? At least we could read up on it so we can
discuss it intelligently at the devcon, then pester Tony with questions
afterward.


You don't need to read them, just say "Ah, yes, QTLS, hmmm", then nod sagely.

Or you could look at:

QTLS/QUICKSTART:

Two flavours; simple and full:
http://tools.ietf.org/html/draft-fanf-smtp-quickstart-a-00
http://tools.ietf.org/html/draft-fanf-smtp-quickstart-b-00

Both are really scary. I've always been a big fan of the detailed round-trip analysis at the end. I'm hoping Tony will notice this thread and do something similar for XMPP.

Then there's this evil trick of mine, which you can use in concert with Tony's insane hackery:
http://tools.ietf.org/html/draft-cridland-sasl-tls-sessions-00

Otherwise, the remaining tricks we can use are fast resynchronization from a known state point, and fast reconnection.

Fast reconnection is essentially the case where there is a short time period between the end of the last connection and the beginning of the next, such that both ends can maintain full state. XEP-0198 is basically fully addressing this - it allows for the somewhat curious case of a client noticing it's offline and reconnecting before the server has a chance to notice what's happening.

Fast resynchronization is somewhat more complex - roster optimizations is one area we need, and I think I see a clear way of doing this. Whether it's implementable by everyone I don't know. Essentially, it would be a monotonically increasing modification sequence on the roster, and whenever a roster entry is changed, increasing the sequence and stamping the roster entry with the current value. It's more efficient than ETags on the entire roster, and would then give clients a simple "tell me stuff that's changed" operation. Roster removals would still be painful, but those are rather rarer than changes and additions, I think.

This is basically lifting RFC 4551's conditional fetch and reapplying it to rosters.

Presence and PubSub resynchronization I think would need addressing for this, too, but I don't have a clear idea of what can be done there.

One thing we can do is buffer... If you can get all the initial presence splurge into a single buffer before you compress/encrypt/send, you'll get much better compression.


>> 5. Advisability of presence-only connections (no roster-get, just send
>> presence and whatever you receive is nice).
>>
> If you can optimize the roster fetch sufficiently, this really isn't > required.

Probably not.


Oh, definitely not - the only excess would be the first roster fetch - subsequent ones will yield no data in normal cases. Obviously we still need to discuss not fetching the roster carefully, since it'll be a useful tactic until we get an optimized roster thing widely deployed.

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to