On Wed 22/Mar/2017 18:47:10 +0100 Sam Varshavchik wrote:
> Alessandro Vesely writes:
>> Some IMAP servers use indexed files too.  Courier does not.  What is the
>> rationale behind that design choice?
> I expected – as I said – for clients to handle their own caching and indexing.
> Indexing adds complexity. More code, more opportunities for bugs. Furthermore,
> there is no preset recipe for indexing. IMAP allows the client to request, and
> search, on any mail header, and on anything in the body of the email. There's
> nothing obvious to index. One could take the approach of indexing common mail
> headers; only to discover that one's own mail client doesn't search or request
> them. One could take the approach of indexing all headers only to get a client
> that caches everything itself, and thus never requests the same message twice;
> so now you're doing a lot of work creating an index that will never be used.

Yes.  AFAIK, databases are not yet so smart as to cache required indexes on
demand.  They require well designed schemata to work with.

> Another factor that the fact that maildirs are open to anyone. Anyone can come
> in and add or remove messages from a maildir. Allowing for this immediately
> increases the complexity of any indexing solution. It's one thing for an IMAP
> server that maintains its own private mail store, and all access to the mail
> has to go through the IMAP server. That makes it much easier to implement some
> kind of indexing. It's no longer as straightforward when anyone can come in 
> and
> simply delete the message, that you previously indexed. This means that even 
> if
> you have an index, you still have to go and check that the message still
> exists, before returning search results to the client. That, pretty much, 
> takes
> back a good chunk one expected to gain, from indexing.

That factor sounds questionable considering IMAP keyword implementation.  A
full-fledged addition of messages to a maildir had better depend on a proper 

Their deficiencies notwithstanding (e.g. FAMPending: timeout), file systems are
way more mature than DBMS.  Even writing in PHP or Python at times requires to
consider the brand of the underlying database, let alone C/C++.  And DBs make
automating installation even harder than programming, IME.  How much does that
state of affairs condition current development?


Attachment: signature.asc
Description: OpenPGP digital signature

Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
courier-users mailing list
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to