Given: On ext3, fsync() of any file on a partition commits all
outstanding transactions on that partition to the log.
Given: data=ordered forces pending data writes for a file to happen
before related transactions are committed to the log.
Therefore: With data=ordered, fsync() of any file on a partition
syncs the outstanding writes of EVERY file on that
partition.
Is this argument correct? If so, it suggests that data=ordered is
actually the *worst* possible journalling mode for a mail spool.
One other thing. I think this statement is misleading:
IF your server is stable and not prone to crashing, and/or you
have the write cache on your hard drives battery backed, you
should strongly consider using the writeback journaling mode of
Ext3 versus ordered.
This makes it sound like data=writeback is somehow unsafe when
machines crash. I do not think this is true. If your application
(e.g., Postfix) is written correctly (which it is), so it calls
fsync() when it is supposed to, then data=writeback is *exactly* as
safe as any other journalling mode. "Battery backed caches" and the
like have nothing to do with it. And if your application is written
incorrectly, then other journalling modes will reduce but not
eliminate the chances for things to break catastrophically on a crash.
So if the partition is dedicated to correct applications, like a mail
spool is, then data=writeback is perfectly safe. If it is faster,
too, then it really is a no-brainer.
- Pat
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/