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