On Tue, Nov 11, 2008 at 9:20 PM, Roman Shaposhnik <[EMAIL PROTECTED]> wrote:
> On Nov 11, 2008, at 8:58 PM, ron minnich wrote:

>> They're utterly different, at every level. Yes, they give you a
>> similar service, but ...
>
> Whoa! That's a pretty strong claim. Care to substantiate?
>
> The way I see it: if you look past stalessness (taken care of
> in WebNFS and NFS4) eagerness to do proper caching and
> on-the-wire messages there are, actually, quite a few similarities
> between the two:
>  FH is a moral equivalent of a Qid
>  ACCESS is a moral equivalent of open
>  SETATTR/GETATTR is like stat/wstat
>  LOOKUP is like walk (especially so in WebNFS)
>  READ/WRITE/CREATE/REMOVE is there in both
>

yes, from the top they look superficially similar. From where I stand,
they could not be more different. This difference is the cause of
major performance issues.
- sunrpc
- xdr
- fhandles are a nightmare (security and otherwise)

The whole layering of nfs/sunrpc is very computer-sciency and 1970s.
It's antiquated. It's also how everyone does it even now. It's a hog.
It's also interesting to see differences

sunrpc gets service variation via program number/version; 9p gets it
by what server you talk to.
Result: FOUR different protocols to make nfs work (portmap, nfs,
lockd, mountd); one protocol to make 9p file servers work

in essence, sunrpc externalizes service variation by creating lots of
protocols (program numbers and versons) over sunrpc; 9p gets it the
right way, by changing the server, but not the protocol.
In a way, 9p cleanly squashes together nfs and sunrpc, and dispenses
with the wasteful xdr code completely. In my ancient 10-year-old TR to
DARPA I point out that we could use 9p for all four nfs services and
save some work.

That's just a taste. They're really very very different.

ron

Reply via email to