From 1984 Sun Microsystems to Modern Cloud: the Complete Nfs Timeline
NFS provides exceptional operational flexibility, but treating a network share like local NVMe flash invites severe performance degradation if workloads are misaligned. Distributed file systems introduce transport latency and synchronization overhead that local filesystems bypass entirely.
High-throughput transactional databases demonstrate this failure mode regularly. Running production PostgreSQL, MySQL, or high-write transactional datastores directly over an NFS mount often triggers acute I/O wait spikes. Because relational databases rely heavily on strict fsync() behavior to preserve write-ahead logging integrity, every commit forces a synchronous network round-trip to the storage filer. Under high concurrency, file lock contention at the NFS client layer throttles throughput, creating the dreaded Linux uninterruptible sleep (D-state) process hangs if network connectivity drops.
NFS also introduces the risk of stale file handles (ESTALE errors). If an application caches an open file reference while a secondary client deletes or moves that underlying inode on the export server, subsequent client requests will fail abruptly. When raw sub-millisecond latency and millions of random IOPS are the dominant operational criteria, raw block storage protocols, such as NVMe over Fabrics (NVMe-oF) or direct-attached non-volatile memory, remain superior choices.