[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MORG] Why IMAP extensions are (not) used
On Wed, 8 Apr 2009, Barry Leiba wrote:
If you have (say) a DB2 back-end to your mail store, a search of 350
mailboxes might be very efficient.
At some other costs... ;-)
If you have (say) a set of Unix mailboxes as the back-end to your mail
store, a search of 350 mailboxes might be pretty much the same,
whether you do it in one command or 700, apart from the protocol
overhead.
Note that to do IMAP SEARCH right, you have to be cognizant of the MIME
structure, select only the textual parts, and search the textual data
using the i;unicode-casemap algorithm. "Just grep through the mailboxes"
doesn't cut it any more. grep doesn't know about a string that may be in
a non-UTF8 charset within BASE64 encoded content, or about text vs. image
MIME parts.
Either you do the necessary computations on the fly at demand, or do the
calculations in advance and store the results separate from the message
data, or do something in between.
No database can somehow make this choice go away. The form may change,
but not the function.
Nor is it as easy as saying "we have lots of disk space, just precompute
and store everything". The more you store, the more complexity that you
have to deal with. Also, delivery time is a really bad time to be doing
anything time-consuming.
Whatever the decision, Mark's point, which is correct, is that you
can't make assumptions. A client that wants to let a user search 350
mailboxes will do it, one way or another. But it might or might not
perform badly with or without the extension, and you can't know in
advance which it'll be.
There's more than that. A server may decide that the client that searches
350 mailboxes is abuse, and will "implement" the multimailbox search to
block the abuse. Only it won't really search.
Don't think for one minute that this isn't going on now.
For better or worse, most servers are designed with one goal, and only one
goal, in mind: to implement synchronization with Outlook. Everything
else, and I do mean EVERYTHING else, is secondary.
-- Mark --
http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.