next up previous
Next: Lookup Caching Up: Asynchronous Writing and Lookup Previous: Asynchronous Writing and Lookup

Asynchronous Writing

The Linux 2.0.x NFS client issues a synchronous remote procedure call for each write system call. This is inefficient when performing many small writes in succession. Unfortunately, numerous small sequential writes is a common situation as many programs (e.g., gcc and ld) simplify their output loops by expecting that the underlying file system will merge write requests through some kind of buffering. Not merging write requests results in unacceptable performance and is corrected in versions of the kernel since 2.1.32. Our implementation benefits from these enhancements while still providing a stable production platform by integrating the new NFS client into a stable 2.0.27 kernel. See any recent 2.1.x kernel for details of the improved asynchronous write behaviour.

Greg Badros