>Is there a documented pros/cons discussion of MH mailstore vs Maildir. >They do have similar structures in that a Maildir stores individual >messages in individual files. I've often wondered what I might gain from >switching to Maildir (it's benefits are clear with respect to locking >and crash prevention).
Here are my thoughts: In the MH mailstore, the filename IS the message identifier. This is a kind of double-edged sword; this means you don't need to maintain a mapping from message identifiers to filenames. This means there are no issues with caching; it's all maintained by the filesystem. This is very simple and leverages the Unix filesystem very nicely. But ... with a few exceptions, it is NOT safe to run two MH programs at the same time. Because no one ever expected that to happen, no one ever sat down and specified exactly how you are supposed to add a message to a MH folder, so third-party implementations aren't guaranteed to do it the same way. And in stock MH (and for a long time in nmh) you could get sequence file corruption, because no one ever did locking on sequence files (we fixed that). In Maildir, the filenames mostly only have the property that they have to be unique. The filenames do have a little bit of optional metadata in them that some programs use (see Dovecot for a richer example). So you have to maintain a mapping from message identifiers to filenames. But, it's well defined how to add messages to those mailboxes, so as long as you maintain your own mapping namespace you can use multiple tools without problems. So, which one is better? Well, what do you want, exactly? Oh, regarding a previous discussion ... here's why I was leaning towards Maildir being more of a mail drop than a mail box. From: http://www.qmail.org/qmail-manual-html/man5/maildir.html INTRODUCTION maildir is a structure for directories of incoming mail mes- sages. It solves the reliability problems that plague mbox files and mh folders. It just says "structure for directories of incoming mail messages". However, that document is incorrect; if you are using rcvstore(1) to deliver a message to a MH folder from your MTA directly, it first writes it into a tmp file and then uses link() to hard link it to the "correct" name (and if two files try to use the same name, whomever loses the race will end up with the next highest message number, so no mail will be lost nor should there ever be corruption). --Ken -- Nmh-workers https://lists.nongnu.org/mailman/listinfo/nmh-workers