From: "J. Bruce Fields" <bfields@fieldses.org>
To: "Myklebust, Trond" <Trond.Myklebust@netapp.com>
Cc: Ric Wheeler <rwheeler@redhat.com>,
"Schumaker, Bryan" <Bryan.Schumaker@netapp.com>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: [RFC 4/5] NFSD: Defer copying
Date: Mon, 5 Aug 2013 14:11:21 -0400 [thread overview]
Message-ID: <20130805181121.GA1583@fieldses.org> (raw)
In-Reply-To: <1375714236.7337.5.camel@leira.trondhjem.org>
On Mon, Aug 05, 2013 at 02:50:38PM +0000, Myklebust, Trond wrote:
> On Mon, 2013-08-05 at 10:41 -0400, J. Bruce Fields wrote:
> > Bryan suggested in offline discussion that one possibility might be to
> > copy, say, at most a gigabyte at a time before returning and making the
> > client continue the copy.
> >
> > Where for "a gigabyte" read, "some amount that doesn't take too long to
> > copy but is still enough to allow close to full bandwidth". Hopefully
> > that's an easy number to find.
> >
> > But based on
> > http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-19#section-14.1.2
> > the COPY operation isn't designed for that--it doesn't give the option
> > of returning bytes_copied in the successful case.
>
> The reason is that the spec writers did not want to force the server to
> copy the data in sequential order (or any other particular order for
> that matter).
Well, servers would still have the option not to return success unless
the whole copy succeeded, so I'm not sure this *forces* servers to do
sequential copies.
(Unless we also got rid of the callback.)
--b.
>
> If the copy was short, then the client can't know which bytes were
> copied; they could be at the beginning of the file, in the middle, or
> even the very end. Basically, it needs to redo the entire copy in order
> to be certain.
>
> > Maybe we should fix that in the spec, or maybe we just need to implement
> > the asynchronous case. I guess it depends on which is easier,
> >
> > a) implementing the asynchronous case (and the referring-triple
> > support to fix the COPY/callback races), or
> > b) implementing this sort of "short copy" loop in a way that gives
> > good performance.
> >
> > On the client side it's clearly a) since you're forced to handle that
> > case anyway. (Unless we argue that *all* copies should work that way,
> > and that the spec should ditch the asynchronous case.) On the server
> > side, b) looks easier.
> >
> > --b.
>
> --
> Trond Myklebust
> Linux NFS client maintainer
>
> NetApp
> Trond.Myklebust@netapp.com
> www.netapp.com
> N?????r??y????b?X??ǧv?^?){.n?+????{???"??^n?r???z?\x1a??h?????&??\x1e?G???h?\x03(?階?ݢj"??\x1a?^[m??????z?ޖ???f???h???~?m
next prev parent reply other threads:[~2013-08-05 18:11 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-19 21:03 [RFC 0/5] NFS Server Side Copy bjschuma
2013-07-19 21:03 ` [RFC 1/5] Improve on the copyfile systemcall bjschuma
2013-07-19 21:03 ` [RFC 2/5] NFSD: Implement the COPY call bjschuma
2013-07-22 18:05 ` J. Bruce Fields
2013-07-22 18:59 ` Bryan Schumaker
2013-07-19 21:03 ` [RFC 3/5] NFS: Add COPY nfs operation bjschuma
2013-07-24 14:21 ` Myklebust, Trond
2013-07-19 21:03 ` [RFC 4/5] NFSD: Defer copying bjschuma
2013-07-22 18:50 ` J. Bruce Fields
2013-07-22 19:17 ` Bryan Schumaker
2013-07-22 19:30 ` J. Bruce Fields
2013-07-22 19:37 ` Bryan Schumaker
2013-07-22 19:43 ` J. Bruce Fields
2013-07-22 19:54 ` Bryan Schumaker
2013-07-22 19:55 ` J. Bruce Fields
2013-08-05 8:38 ` Ric Wheeler
2013-08-05 14:41 ` J. Bruce Fields
2013-08-05 14:44 ` Ric Wheeler
2013-08-05 14:56 ` J. Bruce Fields
2013-08-05 14:44 ` Bryan Schumaker
2013-08-05 14:50 ` Myklebust, Trond
2013-08-05 18:11 ` J. Bruce Fields [this message]
2013-08-05 18:17 ` Chuck Lever
2013-08-05 18:24 ` Myklebust, Trond
2013-08-05 18:30 ` J. Bruce Fields
2013-07-19 21:03 ` [RFC 5/5] NFS: Change copy to support async servers bjschuma
2013-07-24 14:28 ` Myklebust, Trond
2013-07-22 18:53 ` [RFC 0/5] NFS Server Side Copy J. Bruce Fields
2013-07-22 19:38 ` Bryan Schumaker
2013-07-22 19:42 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130805181121.GA1583@fieldses.org \
--to=bfields@fieldses.org \
--cc=Bryan.Schumaker@netapp.com \
--cc=Trond.Myklebust@netapp.com \
--cc=linux-nfs@vger.kernel.org \
--cc=rwheeler@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).