
\begin{rant} James Harper wrote:
I have a SATA disk in my laptop with 4G of SSD onboard as a cache. It can stay spun down for a while even if writes are done - no need to spin it up again until the cache is nearly full. I'd be focussing more on your storage medium than your filesystem.
"My hardware doesn't exhibit this issue" is not a solution. Due to the... idiosyncratic nature of one of my sites, their only nonvolatile storage is (still) 3.5" floppies. "Everybody has SSD-backed HDDs these days" is not going to help them when an application starts fsyncing at random in the hope of forcing data onto the disks ASAP.
The problem with omitting the fsync in the case of an application is that you are violating your contract with the user. If I save a document then when the application says that the save is complete my document had damn well better be on my memory stick.
That is why there is a manual umount, instead of just "unplug and hope". It is not the application's responsibility to attempt to ensure bits hit non-volatile storage. Users that expect to be able to just unplug a stick and walk away at any time DESERVE to have that expectation violated.
OTOH, sticking fsyncs everywhere in your code just because it seems like a good idea is to be frowned upon...
No argument there. \end{rant}