[comp.protocols.nfs] NeFS overkill?

david@elroy.jpl.nasa.gov (David Robinson) (06/02/90)

Having read the NeFS specification I consider it an interesting
approach to creating a networked filesystem between heterogenous
operating systems.  But I wonder how useful it will be in the real
world.

Looking at the current implementations of NFS clients the vast majority
use some sort of virtual filesystem or filesystem switch to provide a
mostly transparent access to remote files with minimal changes to
user level code.  For example: Sun VFS, AT&T FSS, PC-NFS redirectors,
VMS ACPs, and others. Few actually bury network specific code into
user level applications.  If you examine each of the methods currently
used, most gain very little from using an interpreter on the server.  The
example in the draft of implementing the Unix "du" facility is a nice
elegant example of NeFS.  Unfortunately without a completely new,
high level system interface, all the underlying OS 
and NeFS are going to see is a bunch of readdir and getattr
function calls. The interpretive nature of a server gains very little
functionality.

In addressing the hetrogenous nature, PostScript dictionaries are very
nice for providing the ability to have extensible and varying attributes
between systems.  But this can almost as easily be handled with
extensible data structures without the overhead of an interpreter.

With the exception of a minority of machines such as LISP machines
there is a great lack of technology to take advantage NeFS while
preserving the transparency of user level code.  NeFS is an interesting
technology but is it appropriate to solve the problems of the existing
NFS?

	-David
-- 
David Robinson	david@elroy.jpl.nasa.gov 	{decwrl,usc,ames}!elroy!david
Disclaimer: No one listens to me anyway!
"Once a new technology rolls over you, if you're not part of the steamroller,
 you're part of the road." - Stewart Brand

brent@terra.Eng.Sun.COM (Brent Callaghan) (06/05/90)

In article <1990Jun1.231507.13779@elroy.jpl.nasa.gov>, david@elroy.jpl.nasa.gov (David Robinson) writes:
> Having read the NeFS specification I consider it an interesting
> approach to creating a networked filesystem between heterogenous
> operating systems.  But I wonder how useful it will be in the real
> world.
> 
> Looking at the current implementations of NFS clients the vast majority
> use some sort of virtual filesystem or filesystem switch to provide a
> mostly transparent access to remote files with minimal changes to
> user level code.  For example: Sun VFS, AT&T FSS, PC-NFS redirectors,
> VMS ACPs, and others. Few actually bury network specific code into
> user level applications.  If you examine each of the methods currently
> used, most gain very little from using an interpreter on the server.  The
> example in the draft of implementing the Unix "du" facility is a nice
> elegant example of NeFS.

That's all it is, just an example of what you can do with an extensible
protocol.  It's not an implication that you can do this within the
constraints of the current VFS interface.  The "du" example illustrates two
important points:

	- The server doesn't explicitly support "du".  The
	  client programmed this functionality into the server.

	- In a high-latency network (a WAN) a "du" is vastly
	  more efficient than the equivalent function translated
	  into NFS requests.

> Unfortunately without a completely new,
> high level system interface, all the underlying OS 
> and NeFS are going to see is a bunch of readdir and getattr
> function calls. The interpretive nature of a server gains very little
> functionality.

Unix VFS interfaces should not be used as a constraint in the design
of a distributed file system.  VFS interfaces are easy to modify and
extend, network protocols are not.  A network protocol must not
restrict the evolution of VFS's: Unix, OS/2, MacOS...

> In addressing the hetrogenous nature, PostScript dictionaries are very
> nice for providing the ability to have extensible and varying attributes
> between systems.  But this can almost as easily be handled with
> extensible data structures without the overhead of an interpreter.

No, you have it in reverse.  The decision was made to investigate an
interpreted protocol.  We already had the notion of "extended attributes"
as key/value pairs from NFS3.  It was natural to represent extended
attributes as a dictionary in the language of choice: PostScript.

> With the exception of a minority of machines such as LISP machines
> there is a great lack of technology to take advantage NeFS while
> preserving the transparency of user level code.  NeFS is an interesting
> technology but is it appropriate to solve the problems of the existing
> NFS?

Distributed filesystems technology still has a long way to go. NFS, RFS,
AFS are just the first examples of this technology. It's important to
design protocols that not only support current needs but can be easily
extended to support future needs.  An example: The Mac filesystem ops
do not fit well into the NFS protocol. This becomes even more true with
MacOS V7.0 which supports a "find file" operation **on the server**.
Ditto OS/2 2.0: it supports user-defined file attributes as key/value
pairs.  It's just a matter of time before Unix says "me too" and the
various VFS interfaces evolve to accomodate the new feature.
--

Made in New Zealand -->  Brent Callaghan  @ Sun Microsystems
			 uucp: sun!bcallaghan
			 phone: (415) 336 1051