I have had this on going issue. I run my own mail server on a Redhat 9.0 Linux box. Redhat uses UW imap. By default UW uses flat sequential files for storing messages. What that means that in order to download the new messages in a mailbox the server has to read through the whole mailbox in order to get to them. For a 30 meg mailbox that takes around 10 seconds, since my server is a blade and therefore is using a slow 2.5 inch hard drive.
The conventional solution that is given for this problem is to move to Cyrus imap. The problem for me is that the migration path is not pleasant, and building it on my system was also not entirely fun. Once I got the thing built I was not entirely sure I could migrate everything in a satisfactory manner. So I went looking for other options, and I found one
It turns out UW imap supports several formats, and they recommend a binary file format that includes some indexing and tables, and results in much higher performance. Redhat does not use it. Now this where the trouble starts. UW has a set of migration tools, and a local mailer that supports their format so that you can deliver mail in the new format through sendmail. Except Redhat does not include any of those binaries. It turns out they are part of the UW imap-utils release.
So I go to see if Redhat has a package, and I find this bug. So I decide what the heck, I will build it. UW imap-utils has this kind of incestuous build process where it needs to use static intermediary objects and headers built as part of the UW imap build. Which means I have to build a copy of UW imap. Its build process is pretty much a circa '92 style multiplatform Makefile, but not to bad. I build it, I turn off sendmail, a convert everything, I change my local mailer in my sendmail.mc, I rebuild my sendmail.cf, I start the server back up, and everything works, a whole lot faster. Sure cyrus would have netted me a slightly higher performance server, but given the fact that my server only vends imap for one user, this was definitely the least disruptive, and thus best option.
I would like to say this is the first time I have seen anything from Redhat that I thought was really stupid/amateurish. They ship a low performance, non-scalable imap solution, and despite the fact that the server has options to deal with it they do not include the extra tools because they don't like the devel process. Well quite frankly, end users don't give a Rat's Ass about the devel process. They should either go all the way include the imap-utils so UW imap is usable, or migrate to another server.
Posted by louis at March 5, 2004 02:28 AM | TrackBackI'm going thru the same thing and found your blog while searching for info. Thanks for the heads up - it's so true! I think I am going to try cyrus... I may be hating life shortly...
Posted by: moodboom at March 8, 2004 09:45 AM