From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <13426df10811120947g8b6c82kd8a65a50e12bae0d@mail.gmail.com> Date: Wed, 12 Nov 2008 09:47:43 -0800 From: "ron minnich" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> In-Reply-To: <886E16CF-8F8F-455E-A556-7770EADC77CB@sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1226365206.17713.390.camel@goose.sun.com> <29302f743a99f05c1d9ac196b0245f81@9netics.com> <5d375e920811110830k1c91a401y5e6f39f1737d4240@mail.gmail.com> <140e7ec30811110954u44f8f9aeg788dc34b7d35ac69@mail.gmail.com> <140e7ec30811111811i15f2e2bp3761d477e6c90aed@mail.gmail.com> <13426df10811112058q5f54d697x80152b170524a296@mail.gmail.com> <886E16CF-8F8F-455E-A556-7770EADC77CB@sun.com> Subject: Re: [9fans] Do we have a catalog of 9P servers? Topicbox-Message-UUID: 3f50d02c-ead4-11e9-9d60-3106f5b1d025 On Tue, Nov 11, 2008 at 9:20 PM, Roman Shaposhnik 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