[pnfs] Should v4.1 callbacks share NFS server code?
Trond Myklebust
Trond.Myklebust at netapp.com
Thu Nov 8 17:16:42 EST 2007
On Thu, 2007-11-08 at 13:53 -0800, Ricardo Labiaga wrote:
> I've been looking at how we could reuse some or most of the server's
> nfssvc.c:svc_process() and friends in the processing of v4.1 callbacks
> in the client. This seems to require non-trivial changes to the
> transport access and locking mechanisms in the client and/or server.
>
> Are there any plans or has there been any talk about providing a common
> layer/ API to the server and client to access the transport through a
> common mechanism?
I haven't seen any serious proposals for it yet. I wouldn't be against
sharing more code between the client and server in this area, but do
realise that the current differences in design reflect the differences
in the priorities of the tasks they have to perform.
In essence, the goal of the client is to act as an asynchronous i/o
module. It attempts to shovel as much data to the socket from the NFS
layer and then shovel the reply back as fast as possible. Hence the
emphasis is on never blocking, and on being able to switch to handling
another RPC call if ever we need to block.
OTOH, the server is more concerned with being able to guarantee service.
It won't even process a request until it knows that it has enough send
buffer space on that particular socket in order to be able to return a
reply.
Trond
More information about the pNFS
mailing list