Check out the new USENIX Web site.

Optimistic Lookup of Whole NFS Paths in a Single Operation


Dan Duchamp
Columbia University

Abstract

VFS lookup code examines and translates path names one component at a time, checking for special cases such as mount points and symlinks. VFS calls the NFS lookup operation as necessary. NFS employs caching to reduce the number of lookup operations that go to the server. However, when part or all of a path is not cached, NFS lookup operations go back to the server. Although NFS's caching is effective, component-by-component translation of an uncached path is inefficient, enough so that lookup is typically the operation most commonly processed by servers. We study the effect of augmenting the VFS lookup algorithm and the NFS protocol so that a client can ask a server to translate an entire path in a single operation. The preconditions for a successful request are usually but not always satisfied, so the algorithm is optimistic. This small change can deliver substantial improvements in client latency and server load.


Download the full text of this paper in ASCII (34,656 bytes) and POSTSCRIPT (179,873 bytes) form.

To Become a USENIX Member, please see our Membership Information.