On Tue 06 Feb 2007 at 08:38PM, Timo Sirainen wrote:
On Tue, 2007-02-06 at 19:29 +0100, Benjamin Dabelow wrote:
I think it's only available in CVS HEAD. Timo announced backporting it to 1.0 branch in http://dovecot.org/list/dovecot/2007-January/018953.html but obviously has not done so yet.
And since it looks like it doesn't matter all that much with non-XFS, I don't think I'll bother.
Actually it'll make a big difference for users of ZFS.
Because ZFS gathers writes into transaction groups and schedules them for asynchronous write to the platter, we often see very large mailboxes complete their writes very fast (example: 0.3 seconds for 128MB mailbox fully rewritten). When dovecot calls fsync on the mailbox, ZFS is forced to commit all of those changes to the platter right then and there, and forces the application to wait. (ZFS will make sure all the changes get to the platter in the next 10 seconds or so anyway).
So yes, I think we'd really, really like to see this. In fact, I was going to prepare you a patch in which dovecot would detect that it's running on ZFS, and disable fsync. I can still do that if you'd like.
In the meantime, we're in conversation with the ZFS team about whether fsync performance could be improved.
-dp
-- Daniel Price - Solaris Kernel Engineering - dp@eng.sun.com - blogs.sun.com/dp