I am trying to compare mail server software to decide which to use at the ISP where I work. I'm confused mainly about which storage backend is better for such use (again, at an ISP, i.e expected large number of users and possible heavy load).

My question is: What are the advantages/disadvantages of each of the two main storage backends?

  • Filesystem: generally speaking, since I think formats don't make significant differences, correct me if I'm wrong please.

  • Database: generally speaking, regardless of the engine.

I tried to search with many search terms without success, any explanation would be much appreciated.

  • 5
    As regards file system: Formats make a huge difference. Maildir uses one file per mail, works fine over e.g. NFS or other shared file systems. Mailbox - one file per mailbox, file locking a problem. – Jenny D Apr 22 '14 at 17:31
  • 2
    I don't get why this question is considered to be OT. It is not an end-user or enthusiast question. – Andrew Schulman Apr 22 '14 at 17:56
  • 1
    Too wide of a scope. Filesystem storage types: mbox, maildir, qmail, cyrus,... then there's the filesystem itself. ZFS? ext4? UFS? Some filesystems are databases. – MikeyB Apr 22 '14 at 19:35
  • 1
    I disagree with the close REASON, but I agree with @MikeyB - if the OP wants to narrow down the question more with regards to specifics between 2 specific mail server choices and how they store mail it might be on-topic. – TheCleaner Apr 22 '14 at 19:40
  • 1
    BTW, Database: generally speaking, regardless of the engine. is hard to do...since the engine itself often defines how the database is setup/performs/options/characteristics/advantages etc. – TheCleaner Apr 22 '14 at 20:01

With mail server software, as with all software, you need to take a look under the hood and learn how the software works.

For example Cyrus IMAPd uses Maildir format (at least by default), but in addition to that it has cyrus.{header,index,cache} files which it uses for improving performance. Thanks to those data files, it can return mail headers and other common stuff to mail client without scanning through every mail file, which improves performance quite a lot.

With database based software, you need to find out which database server works best with your mail server, and you probably need a competent DBA to keep everything running smoothly. Also make sure that the mail server software choice of yours does generate sensible SQL queries.

If you want to sleep your nights peacefully, this is just a start. You also need to take into account the scalability of your system (for example, with Cyrus you can use Cyrus Murder or put Perdition in front of Cyrus to scale up to multiple servers), availability of your system (does it matter if one server node goes down or not), and of course maintainability of your system. How easy it would be to recover a single mailbox? Or the whole system? How to backup a potentially huge amount of mail? How to manage user accounts?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.