Subject: [nfsv4] SERVERCOPY Procedure Proposal

From: Jim Callahan <[email-masked]>
Date: Sat, 14 Mar 2009 20:58:02 -0400

I would like to propose a new NFS server procedure called SERVERCOPY 
which performs an atomic file copy on an NFS server without routing data 
through a client.   It would have the same arguments and return type as 
the existing RENAME procedure except that it would only operate on 
regular files.  Instead of renaming a file on the server it would 
instruct the server to make a new target file which is an identical copy 
of an existing source file. 

This would be equivalent in result to running the Unix "cp" command on 
an NFS client to copy a file from one location to another on a single 
server via the same NFS mount.   The advantage is that instead of 
requiring the data to be send from the server to the client via many 
READ procedures and then back to the server via many WRITE procedures, 
this new SERVERCOPY procedure would be performed internally by the NFS 
server.   No file data would need to be routed through the NFS client at 
all.   This should lead to dramatically increased performance for file 
copying when no reading or manipulation of the data involved is required 
by the client. 

NFS server vendors would be free to implement this procedure in the most 
optimal way for their particular software/hardware architecture.  For 
single host NFS servers, this would avoid sending any file data over the 
network.  For clustered implementations, there may still be some network 
transmission involved but it still would be offloaded from the NFS 
client and likely could be better optimized.

Note that this would not provide any means for copying files between 
different NFS servers or across NFS mounts.  It is entirely an 
optimization for copying data internal to a single NFS server.

-- 
Jim Callahan - President - Temerity Software <www.temerity.us>