I suppose Linus is right, or at least reading about this issue was funny: Linus Torvalds Upset over Ext3 and Ext4. So, he must be right when saying:
Doesn’t at least ext4 default to the insane model of ‘data is less important than metadata, and it doesn’t get journalled’? And ext3 with ‘data=writeback’ does the same, no? Both of which are — as far as I can tell — total brain damage. At least with ext3 it’s not the default mode.
[...] if you write your metadata earlier (say, every 5 sec) and the real data later (say, every 30 sec), you’re actually more likely to see corrupt files than if you try to write them together… This is why I absolutely detest the idiotic ext3 writeback behavior. It literally does everything the wrong way around — writing data later than the metadata that points to it. Whoever came up with that solution was a moron. No ifs, buts, or maybes about it.
If I am not wrong, both JFS and XFS only journal the metadata, not the data. Still, I normally prefer them for the sake of performance. In some regards, they might be considered even more idiotic than ext3 with “writeback”, but they’re not:
- they don’t pretend to be doing what they are not doing;
- they are consistent in behavior;
- they’re doing what they’re supposed to be doing very well;
- I take that fsync() flushes on disk exactly the specified file and not everything that’s dirty, because it was only for ext3 with “writeback” to experience serious performance issues (system freezes with Firefox 3.0 RC1), not JFS, nor XFS.
The childish quarrels around Linus Torvalds are disqualifying for the whole Linux kernel team.
No, this doesn’t mean that FreeBSD is any better: whereas Linus is calling some kernel developer a “moron”, some FreeBSD committers were calling some users (including myself) “morons”.
But I agree, it’s quite expensive to use an OS whose developers didn’t insult each other, nor the users…