[Tickets #11590] Re: Kolab backend: IMAP cache does not get updated
bugs at horde.org
bugs at horde.org
Wed Oct 31 21:27:38 UTC 2012
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/11590
------------------------------------------------------------------------------
Ticket | 11590
Updated By | Michael Slusarz <slusarz at horde.org>
Summary | Kolab backend: IMAP cache does not get updated
Queue | Horde Framework Packages
Version | Git master
Type | Bug
State | Assigned
Priority | 3. High
Milestone |
Patch |
Owners | Gunnar Wrobel
------------------------------------------------------------------------------
Michael Slusarz <slusarz at horde.org> (2012-10-31 15:27) wrote:
>> Any reason you are not using CONDSTORE/QRESYNC if it is available?
>
> No. I planned to use these but never found the time to actually get
> into this and write the necessary code. What you write sounds
> however as if this would avoid even more IMAP calls than I expected.
> My assumption was that CONDSTORE would allow me to reduce the two
> IMAP calls in each situation to a single one.
This is not entirely correct. A bit of explanation is probably necessary.
In short, without additional IMAP calls CONDSTORE can only tell you
whether a mailbox has changed from a previous state. If caching on
the local host, it still requires two separate IMAP calls (one to
check for flag changes, one to check for deleted messages) to
determine what has changed. Further, things may have changed in the
mailbox that you don't care about (i.e. UIDs not visible), but
CONDSTORE won't provide you this information. CONDSTORE will,
however, allow you to forgo additional mailbox sync calls if the mod
sequence value hasn't changed since the last access - thus, if the
mailbox hasn't changed, you won't need to issue those 2 additional
IMAP calls.
If a client does its homework before opening a mailbox, QRESYNC
instead allows the local cache to be updated without *any* further
IMAP call (at the expense of a more involved SELECT/EXAMINE command) -
all sync information is passed as untagged responses in the
SELECT/EXAMINE return.
More information about the bugs
mailing list