On 11 Jul 2003 at 23:26, Cyrus Daboo wrote:

> | I'm sorry to be the bearer of bad news on this.  The good news is that
> if | you implement THREAD=REFERENCES and do so correctly (unlike Courier
> which | does not), users of clients that use it will bless you since you
> will | greatly speed up their performance.
> 
> Unfortunately I have of late been running more and more into the
> problem of users wanting to THREAD very large mailboxes and
> complaining when it takes a long time. They are not keen on restricting
> the input message set to e.g. just unseen or messages sent within a
> recent period of time. I would strongly urge server implementers to
> look beyond merely caching references headers, and to come up with
> smart caching of the actual thread tree structure itself. Failing that
> clients will have to drop back to doing client-side caching of all the
> data in order to make handling large mailboxes an acceptable experience
> for the user - that kind of defeats the purpose of THREAD in the first
> place. 

As Mark pointed out in his reply to me, the addition of a single message 
to the store can completely invalidate such a cache; for many message 
stores, I suspect that the process of detecting the messages that have 
been added to a mailbox since the cache was created is probably an 
NlogN problem as well, and that's leaving aside the logistical issues of 
dealing with the situation where a non-IMAP client manipulates the 
message store between sessions.

This isn't to say that Cyrus's comment isn't valid - it clearly raises an 
important issue; it's just to highlight that solving it entails working with 
problems that don't necessarily have obvious solutions.

Cheers!

-- David --

------------------ David Harris -+- Pegasus Mail ----------------------
  Box 5451, Dunedin, New Zealand | e-mail: [EMAIL PROTECTED]
           Phone: +64 3 453-6880 | Fax: +64 3 453-6612

On the menu in a Tokyo restaurant:
   "Butered saucepans and fried hormones."



Reply via email to