*BSD News Article 60157


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!nntp.coast.net!zombie.ncsc.mil!news.mathworks.com!gatech!sdd.hp.com!hamblin.math.byu.edu!park.uvsc.edu!usenet
From: Terry Lambert <terry@lambert.org>
Newsgroups: comp.unix.bsd.netbsd.misc,comp.unix.bsd.bsdi.misc,comp.unix.solaris,comp.unix.aix
Subject: Re: ISP hardware/software choices (performance comparison)
Date: 19 Jan 1996 21:26:11 GMT
Organization: Utah Valley State College, Orem, Utah
Lines: 88
Distribution: inet
Message-ID: <4dp29j$8v8@park.uvsc.edu>
References: <4d9has$qo9@park.uvsc.edu> <4de3db$n6a@engnews2.Eng.Sun.COM> <4depms$bi5@park.uvsc.edu> <4dm8d8$30r@engnews2.Eng.Sun.COM>
NNTP-Posting-Host: hecate.artisoft.com
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.netbsd.misc:2077 comp.unix.bsd.bsdi.misc:2233 comp.unix.solaris:58005 comp.unix.aix:69318

pgt@sunlite.Eng.Sun.COM (Panos Tsirigotis) wrote:
] >Client caching prior to NFSv3 violates the protocol specification.
] 
] Please post the relevant section of RFC-1094 (NFS spec) that supports
] the above assertion.

|1. INTRODUCTION
|
|   The Sun Network Filesystem (NFS) protocol provides transparent remote
|   access to shared files across networks.
|

"transparent".

|1.3.  Stateless Servers
|
|   The NFS protocol was intended to be as stateless as possible.

This is nice and tricky; the RFC is mostly a server spec, not a
client spec.


|2.2.8.  Write to Cache
|
|           void
|           NFSPROC_WRITECACHE(void) = 7;
|
|   To be used in the next protocol revision.

Ie: not in this one.



If this isn't enough, I suggest:

        Title:          "Unix Internals, the New Frontiers"
        Author:         Uresh Vahalia
        Publisher:      Prentice Hall/Simon and Schuster
        ISBN:           0-13-101908-2


Chapter 10, Distributed File Systems
|10.7.2 Client-Side Caching
|
|If every operation on a remote file required network access, NFS
|performance would be intolerably slow.  Hence most NFS clients
|resort to caching both file blocks and file attributes.  They
|cache file blocks in the buffer cache and attributes in the rnodes.
|This caching is dangerous, since the client has no way of knowing
|if the contents of  the cache are still valid, short of querying
|the server each time they must be used.

[ ... ]

|Client-side caching is essential for acceptable performance.  The
|precautions described here [elided text above -- TRL] reduce, but
|do not eliminate, the consistency problems.  In fact, they
|introduce some new race conditions, as described in [Mack91]
|and [Jusz89]

[ ... ]

|[Mack91] Macklem, R., "Lessons Learned Tuning the $.3BSD Reno
|         Implementation of the NFS protocol," _Proceedings of
|         the Winter 1991 USENIX Technical Conference_, Jan.
|         1991, pp. 53-64

[ ... ]

|[Jusz89] Juszczak, C., "Improving the Performance and Correctness
|         of an NFS Server," _Proceedings of the Winter 1989
|         USENIX Technical Conference_, Jan. 1989, pp. 53-63


Many Usenix papers, especially those on file systems, are
available via anonymous FTP from the ftp.sage.usenix.org
server.  Most good techinical libraries have them as well.

The problem is the violation of the consistency guarantees
implicit in the standard's use of the word "transparent".


					Regards,
                                        Terry Lambert
                                        terry@cs.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.