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