On 2017-04-15 09:40, Per Jessen wrote:
Carlos E. R. wrote:
No, the connection is with maildir. The only filesystem I know that is really happy in that usage is reiserfs.
Like I said, JFS works very well too. I would also expect XFS to do a good job, I just don't have any reason to experiment. For hosted email, I think we have some 500Gb for mail storage, each user has a quota of up to 5Gb.
XFS is the second best, of those provided by openSUSE. It creates the equivalent of inodes dynamically. However, reiserfs can cope with a really huge number of small files at full speed; XFS eventually gets full (but much later than ext4). I did a comparison of some years ago of all the available filesystems with millions of small files. Btrfs crashed, but I think that was solved. However, it became very slow as the number of files grew. JFS I haven't tested.
We use maildirs on JFS in other contexts too - email quarantine and archiving, both with a lot more storage. The only issue I can recall was about a year ago, when we had to do a complete fsck on the quarantine on one system, that took a loooooong time.
There are other mailbox formats, though, that stress less the filesystem, hybrids between maildir and mbox: storing several mails on the same file, but up to a file size limit, perhaps 1 MB, when it switches to a new file.
Does dovecot and postfix work with those? Might be interesting to investigate.
The problem is that those new formats are not standard, and only supported by one application, in this case, dovecot. You have to do the delivery calling the dovecot tool for that. I wanted to try them, but the idea of support by only one tool deters me. The documentation for dovecot talks about those formats available. Alpine also supports its own idea. I haven't tried. Its original late developer was creating an improvement to his uw imap implementation with such a format, but that is now stalled, obviously.
I also maintain a large database of various graphics. Some 5-6million files, stored as individual files in multiple directories, but quite a lot per directory. I thought it would be interesting to load them into mysql instead (as blobs), but that totally failed. It basically slowed down everything on that database machine :-)
The reiserfs project wanted to create databases using the filesystem as engine, instead of creating their own structure. Version 4 was going that road. Thus, each record could be a directory, and each field would be a file. -- Cheers / Saludos, Carlos E. R. (from 42.2 x86_64 "Malachite" at Telcontar)