NFS: The Early Years
Of course, the first commenter &quot;willy&quot; repeats the canard that statelessness makes no sense:<p>&gt; The very notion of a stateless filesystem is ridiculous. Filesystems exist to store state.<p>It&#x27;s the <i>protocol</i> that&#x27;s stateless, not the filesystem. I thought the article made a reasonable attempt to explain that.<p>Overall the article is reasonable but it omits one of the big issues with NFSv2, which is synchronous writes. Those Sun NFS implementations were based on Sun&#x27;s RPC system; the server was required not to reply until the write had been committed to stable storage. There was a mount option to disable this, but if you enabled it, it exposed you to data corruption. Certain vendors (SGI, if I recall correctly) at some point claimed their NFS was faster than Sun&#x27;s, but it implemented asynchronous writes. This resulted in the expected arguments over protocol compliance and reliability vs. performance.<p>This phenomenon led to various hardware &quot;NFS accelerator&quot; solutions that put an NVRAM write cache in front of the disk in order to speed up synchronous writes. I believe Legato and the still-existing NetApp were based on such technology. Eventually the synchronous writes issue was resolved, possibly by NFSv3, though the details escape me.