« November 2009
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today
XML

Neat blogs

Navigation

Editing

Powered by Roller Weblogger.

statcounter.com

clustrmaps.com

Locations of visitors to this page

technorati.com

20090403 Friday April 03, 2009
Hearty discussion of server-side copy offload I-D

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.


Originally posted on Kool Aid Served Daily
Copyright (C) 2009, Kool Aid Served Daily

Trackback URL: http://blogs.sun.com/tdh/entry/hearty_discussion_of_server_side
Comments:

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 #

Post a Comment:

Name:
E-Mail:
URL:

Your Comment:

HTML Syntax: NOT allowed