If you've ever wondered how the NFS protocol is maintained, designed, discussed, etc, now is a great time to watch it happen live. James Lentini has proposed a method to allow client to initiate a file "copy" from one location to another on the same server. With the traditional method, the client has to read the file from the server and then write it back. With the COPY proposal, all of that overhead is removed.
That part is pretty pedestrian and not being debated. What is being debated is a server-to-server copy proposal. You can see the benefits here:
/
/
Existing approach / New COPY procedures
Client Source Destination / Client Source Destination
+ + + / + + +
| | | / | | |
1 |>--get FH------>| | / |>-COPY_NOTIFY-->| |
| /| | / | /| |
| / | | / | / | |
| / | | / | / | |
2 |<-----------+ | | / |<-----------+ | |
| | | / | | |
| | | / | | |
3 |>--get FH----------------->| / |>--COPY------------------->|
| | /| / | | /|
| | / | / | | / |
4 |<-----------------------+ | / |<-----------------------+ |
| | | / | | |
5 |>--read-------->| | / | |<--read--<|
| /| | / | |\ |
| / | | / | | \ |
| / | | / | | \ |
6 |<-----------+ | | / | | +----->|
| | | / | | |
7 |>--write------------------>| / | |<--read--<|
| | /| / | |\ |
| | / | / | | \ |
| | / | / | | \ |
8 |<----------------------+ | / | | +----->|
| | | / | | |
9 |>--read-------->| | / | |<--read--<|
| /| | / | |\ |
| / | | / | | \ |
| / | | / | | \ |
10 |<-----------+ | | / | | +----->|
| | | / | | |
Don't read anything into the length of a horizontal request, i.e., the read at time 5 is not twice as fast as the write at time 7. Assume that everything is just 1 network hop away.
Also, ignore that we can have multiple reads or writes in flight. In the end, you can see that we will issue almost 1/2 the number of over the wire calls if we let the servers handle the copy.
And the mailing list is full of lively discussion about how to do this - there isn't a disagreement that it is a bad thing to do. Instead the discussion is all about how to implement it.
Rather than bias you towards my view, you can go watch the action in either the thread archives or join the working group alias nfsv4 -- NFSv4 Working Group.
Finally! If you manage to get it running with FedFs we will be just happy.
Posted by Tigran Mkrtchyan on April 04, 2009 at 12:52 PM CDT #