Optimistic Lookup of Whole NFS Paths in a Single Operation
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