Since you are using traditional UNIX mailbox format, you can definitely improve performance by switching to another format. However, a cautionary note is needed in that you can not use NFS access with other mailbox formats (as you may have noted from other threads in this mailing list).

I do NOT recommend use of mh or mx formats. mh is provided only for legacy users, and it only has the most basic support (no permanent flags, no sticky UIDs, no keywords, etc.). mx was an experiment which was abandoned years ago due to disappointing performance results.

Some other formats are also legacy: mmdf, tenex, mtx.

This leaves two formats to consider: mbx and mix.

mbx has been around for 11 years, and has substantial deployment. Like traditional UNIX format, mbx is a flat file format. Unlike traditional UNIX format, mbx format allows multiple client sessions to have the mailbox open read/write. mbx opens require n+1 disk reads, where n is the number of messages in the mailbox; traditional UNIX requires that every byte of the file be read. mbx is generally faster than traditional UNIX in opening a mailbox; how much faster depends upon the size of the messages in the mailbox (the larger the average sized message, the faster mbx will be). mbx stores texts in Internet CRLF form, so it doesn't have to do the newline conversion that traditional UNIX format is obliged to do.

mix is the newest member of the supported formats in UW imapd (released just a couple of months ago), and is the result of extended R&D. mix is a directory-based format, but unlike formats such as mh, mx, and the maildir format used by qmail (UW imapd does not support maildir), mix does not require a separate file for each message. Instead, messages are collected in one or more data files. The messages are indexed in an index file; mix opens do NOT need to read any of the message data files. For further reliability, dynamic message metadata (flags and keywords) are stored in a status file and not in the index file; thus the index file is only altered when messages are added or expunged. Last, but not least, mix caches sort/thread texts so that, once a mailbox has been sorted or threaded, subsequent sorts/threads even in other sessions are almost instantaneous.

Because mix is not a flat file and messages are split into multiple data files, mix allows for much smaller incremental backups of the mail store.

At UW, we currently use mbx in production for our main servers, but our developers have switched to mix. We'll probably start a conversion project from mbx to mix on our main servers some time next year.


The bottom line is that switching to mbx format is the more conservative and tried-n-true step. It may well buy you enough breathing room, especially since you say that your big mailbox users have big attachments as opposed to many messages.

Choosing mix format is the more aggressive and longer-term strategy, if you can tolerate the risks with being on the bleeding edge. These risks will certainly become less over time.

-- 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.
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to