Re: QRESYNC implementation for Camel-lite



If you are interested why QRESYNC is interesting:

o. It avoids a atomicity race condition between the client and the
   server with CONDSTORE and normal synchronisations

o. It makes a lot more cases instantly work as it has support for
   VANISHED: expunged UIDs are detected and reported. If with CONDSTORE
   any message got expunged, we can't use CONDSTORE's result reliable
   anymore. This implies having to do a full resynchronisation and
   therefore wasting a lot of both roundtrips and downstream bandwidth
   too.

   With QRESYNC we are certain that we got notified of both the flag
   changes and the expunges.

   All what remains is getting the new ones (which was not in the patch,
   but I fixed this already in my local copy).

o. It's instant upon SELECT of the folder. There is no more roundtrip
   involved so the entire response of SELECT will usually fit in one
   TCP/IP frame. This means that it's blazing fast. A normal sync
   involves several roundtrips. Note that GPRS has up to 5000ms latency
   per roundtrip ... that's not good.

o. QRESYNC is a very good way to recover the state of a lost connection.
   Once the LOGIN is finished and the new CAPABILITY received, one
   SELECT with a QRESYNC and a fetch of the new summary items, and you
   are completely synchronised and your state is recovered.

Why is it not interesting yet? It's an IMAP4 draft. This means that no
real IMAP servers have this already. With, of course, Isode's Mbox being
the sole exception (as usual with Lemonade related things).

However, as soon as Tinymail starts supporting this .. we'll have a case
for the IMAP server developers as to why they should hurry up! :-)


On Thu, 2007-10-18 at 01:41 +0200, Philip Van Hoof wrote:
> Hi there fellow hackers and other insane people, like me, who spend all
> night coding on proposed IMAP protocol enhancements.
> 
> I implemented support for QRESYNC in Tinymail's camel-lite. I never
> tested this because somehow the MBox copy that the friendly guys at
> Isode gave me, is not starting up and I know of no other IMAP server
> that already offers the QRESYNC capability.
> 
> I'll retry tomorrow after actually reading the documentation that came
> with it.
> 
> Therefore, is this implementation based on what I've found on Draft #6
> of the "IMAP4 Extensions for Quick Mailbox Resynchronization" which is
> available here:
> 
> http://www3.tools.ietf.org/html/draft-ietf-lemonade-reconnect-client-06
> 
> Especially for Dave and Alexey: you'd be my heroes if you could take a
> look at the things I'm changing in the patch. Especially those things
> that are related to the protocol.
> 
> I'm for example not sure about the VANISHED reply (and the exact meaning
> of that "earlier" parameter).
> 
> ps. I added the nice folks at Evolution in CC, as some of these code
> warriors are planning to migrate some of newer features in camel-lite to
> upstream camel.
> 
> _______________________________________________
> tinymail-devel-list mailing list
> tinymail-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/tinymail-devel-list
-- 
Philip Van Hoof, software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://www.pvanhoof.be/blog






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]