choosing a file system

Rob Mueller robm at
Sat Jan 3 23:07:48 EST 2009

> Ext4, I never tried.  Nor reiser3.  I may have to, we will build a brand 
> new
> Cyrus spool (small, just 5K users) next month, and the XFS unlink
> [lack of] performance worries me.

>From what I can tell, all filesystems seem to have relatively poor unlink 
performance and unlinks often cause excessive contention and IO for what you 
think they should be doing. And it's not just filesystems. SQL deletes in 
MySQL InnoDB are way slower than you'd expect as well. Maybe deletes in 
general are just not as optimised a path, or there's something tricky about 
making atomic deletes work, I admit I've never really looked into it.

Anyway, that's part of the reason we sponsored Ken to create the "delayed 
expunge" mode code for cyrus, which allows us to delay unlinks to the 
weekends when IO load due to other things is the lowest.

Added support for "delayed" expunge, in which messages are
removed from the mailbox index at the time of the EXPUNGE (hiding them
from the client), but the message files and cache entries are left
behind, to be purged at a later time by <tt>cyr_expire</tt>.  This
reduces the amount of I/O that takes place at the time of EXPUNGE and
should result in greater responsiveness for the client, especially
when expunging a large number of messages.  The new <tt>expunge_mode</tt>
option in <tt>imapd.conf</tt> controls whether expunges are
"immediate" or "delayed".  <i>Development sponsored by FastMail</i>.


More information about the Info-cyrus mailing list