<story><title>The No-Order File System (2012)</title><url>http://pages.cs.wisc.edu/~vijayc/nofs.htm</url></story><parent_chain></parent_chain><comment><author>Animats</author><text>That&amp;#x27;s progress.&lt;p&gt;I&amp;#x27;ve previously suggested that operating systems should have stronger file integrity guarantees. &amp;quot;Unit&amp;quot; files (rewriting replaces the whole file atomically, no reader ever sees a partially written file). That&amp;#x27;s the default. &amp;quot;Log&amp;quot; files (always end at a clean end point, don&amp;#x27;t tail off into junk). &amp;quot;Temp&amp;quot; files (disappear on reboot). And, for databases, &amp;quot;Managed&amp;quot; files.&lt;p&gt;Managed files have more I&amp;#x2F;O functions. In particular, you get two completion events on writes - &amp;quot;copy complete&amp;quot; (the caller can reuse the buffer) and &amp;quot;safely stored&amp;quot; (the data has reached its final resting place, all links are complete, etc.). Programs like databases would use that. Those are the semantics databases want, and struggle to get by flushing, waiting, and various workarounds.&lt;p&gt;When I mention this, what usually happens is that people get lost in complicated workarounds for simulating unit files. Different approaches are needed for Linux, Windows, NTFS, and various VM systems. This should Just Work.&lt;p&gt;This isn&amp;#x27;t my invention; it&amp;#x27;s from Popek&amp;#x27;s kernel in 1985 at UCLA, later seen as UCLA-Locus and as an IBM product. They had explicit commit and revert functions for file systems. I&amp;#x27;d suggest having the default be commit on normal close or normal program exit, but if the program aborts or crashes or is killed, unit files don&amp;#x27;t commit and remain unchanged.</text></comment>
<story><title>The No-Order File System (2012)</title><url>http://pages.cs.wisc.edu/~vijayc/nofs.htm</url></story><parent_chain></parent_chain><comment><author>pwinnski</author><text>It&amp;#x27;s a fascinating concept, but nothing seems to have happened in the eight years since.&lt;p&gt;This seems like it might gain a bit of performance in exchange for slightly-higher filesystem overhead, though it&amp;#x27;s not clear there are any stats on either. It&amp;#x27;s also not clear how exactly performance increases would surface: are reads slower but writes faster?</text></comment>