Timo Sirainen wrote:
I recently saw some benchmarks (measuring system load) comparing Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I thought, Cyrus was many times faster in most tests. Dovecot with mbox was also much faster than with maildir, even though my 0.99.10 mbox code is pretty bad.
IMHO the performace issue and mainly the system load peeks are very important! what's more if cyrus faster than dovecotm, than it's hard to argue for dovecot (since cyrus is more feature rich).
0.99.10 indexes aren't too good, but I still find it a bit strange that Cyrus takes something like 10x less load. I'd think most of it has to do with maildir format itself, that it needs to rename files when flags change, and Dovecot needs to resync the whole maildir after each change in mailbox (and sometimes twice).
why should have to resync? couldn't be possible to do one atomic rename and index update step without resync? as I wrote about half a year the best solution would be a local delivery agent which can update the index files and spread the load to the arrival time instead of the mail read time.
I guess we'll need a IMAP-optimized format sometimes soon.
than you've to write local delivery agent for many MTAs...
-- Levente "Si vis pacem para bellum!"