On Wed, 2007-05-16 at 21:21 +0300, Timo Sirainen wrote:
Dovecot CVS HEAD + cydir + fsync_disable=no: ./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0 clients=100 Logi Appe 100% 100% 5% 100 35217
In the above tests the cache file wasn't updated at all, so it's a bit unrealistic test. Lets try again with ENVELOPE headers, BODYSTRUCTURE and INTERNALDATE added into the cache file.
Dovecot CVS HEAD + cydir + fsync_disable=no: ./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0 clients=100 100 1023 100/100 0 1204 100/100 0 1109 100/100 0 1104 100/100 0 976 100/100 0 824 100/100 0 781 100/100 0 762 100/100 .. 0 306 100/100 0 369 100/100
Totals: Logi Appe 100% 100% 5% 100 18032
So, dovecot.index.cache file could work more nicely with larger mailboxes. Hmm. I can't seem to figure out easily why it's slowing down that much though. I guess I'll have to look at it more.
Oh, and cydir is pretty much the same as what Cyrus is using internally. The only differences are how our index/cache files are implemented. Here's how Cyrus 2.2.13-10+b1 (Debian) looks like:
./imaptest - append=100 seed=1 secs=30 msgs=1000000 logout=0 select=0 clients=100 Logi Appe 100% 100% 5% 100 8546
It was pretty constant at 280/sec. So Dovecot is still about twice as fast at appending, at least up to 18k mail mailboxes. Cyrus writes a bit more into its cache file, but it shouldn't give this big of a difference.