[comp.protocols.nfs] NeFS -- extension mechanism

db@witzend.East.Sun.COM (David Brownell) (07/14/90)

In article <2510@sequent.cs.qmw.ac.uk>
	liam@cs.qmw.ac.uk (William Roberts) writes:

> I still think that in terms of having a better NFS in the next
> year or so, you would be better implementing a named extensions
> mechanism similar to that used by X. This has the advantage
> that small extensions can be tried and ractical experiences
> folded into the grand NeFS redesign, rather than having to get
> all of the NeFS design right first time.

In effect, this mechanism exists today.  The RPC portmapper is the
mechanism for naming the extensions, and querying whether they exist.
It's immaterial that it names other protocols, as well as the
NFS-friendly ones.

The NFS protocol in essence consists of four subprotocols:  Mount, NFS,
Lock Manager, and Status Monitor.  The last two don't get much press of
late, but if you try writing a DOS client (for example) you'll require
them else you can't host DOS file systems.  (OSF has in essence said
that the PC-NFS daemon runs a fifth subprotocol; it's in OSF/1.)

One serious problem with this kind of mechanism is that if this is the
only way to extend your system, you quickly run into some interesting
compatibility problems on Real Networks (tm).  Those five subprotocols
come in three groups (core, LockMgr/StatMon, PC-NFSd) and just how is a
site supposed to cope with Vendor X only supplying the core?  Much
better to solve this particular software distribution problem by
eliminating it; it can only get worse if more extensions get defined.

By the way, the X community is hitting situations where this mechanism
doesn't really hit the spot -- for the same configuration management
reasons.  If an application relies on the SHAPE extension, and the
server doesn't support it, the application can't run.  The customer
who bought the application loses.

I dislike postscript programming as much as the next guy; I'd rather
NeFS used a language like Scheme, which is easily compiled and allows
lots more error checking.  But as someone who's had to deal with
upgrading distributed systems, I really like the idea of low level
system support for it that NeFS proposes.

#include <std/disclaimer.h>

David Brownell			db@east.sun.com.

"What's the network equivalent of 'the rough section of town'?"