The most interesting performance improvement is probably the
"CacheFS" feature introduced in SunOS 2.4, which allows NFS
clients to cache NFS-accessed files on disk, instead of in memory.
Many people have the misconception that client caching on disk is
an AFS feature that NFS cannot support; in fact, there is nothing
in the NFS protocol that indicates where clients can cache data.
Whether to store cached data in memory or on disk is an
implementation decision that has nothing to do with the format of
bits that are sent over the network.
2. NFSv3
Despite all the changes that have occurred without a protocol revision,
there are some changes that do require the protocol itself to be modified.
The driving force behind NFSv3 was the desire to handle 64-bit file sizes.
This has become important as CPU chips like the SGI (formerly MIPS) R10000,
DEC Alpha, and Sun UltraSPARC have started to support 64-bit integers.
Since the initial NFS protocol specification defined file sizes
as being 32 bits long, supporting 64-bit file sizes required
the NFS protocol revision to be updated.
Protocol revisions are rare, so it isn't sensible to make just
one change. As a result, NFSv3 includes several other
changes along with the large file size support. The most
interesting are a collection of performance improvements described
below. (For a more complete description of NFSv3, see
"NFS
Version 3 Design and Implementation," by Brian Pawlowski,
Chet Juszczak, Peter Staubach, Carl Smith, Diane Lebel, and
David Hitz, USENIX, June 1994, Boston, MA. See also RFC 1813.)
As of April 1996, the following vendors have implemented NFSv3
servers and/or clients: Cray (now part of SGI), DEC, NetApp, SGI,
and Sun. There are also numerous NFSv3 client implementations for
PCs, from companies like FTP, Hummingbird, NetManage, and others.