From: "J. Bruce Fields" <bfields@fieldses.org>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: Anna Schumaker <Anna.Schumaker@netapp.com>,
Christoph Hellwig <hch@infradead.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
Thomas D Haynes <thomas.haynes@primarydata.com>
Subject: Re: [PATCH v2 2/4] NFSD: Add READ_PLUS support for data segments
Date: Wed, 11 Feb 2015 11:22:44 -0500 [thread overview]
Message-ID: <20150211162244.GH25696@fieldses.org> (raw)
In-Reply-To: <CAHQdGtTujOS5QZSaTbEy2sK0aZpoWmo-qmjgxb_iuue_5b=46A@mail.gmail.com>
On Wed, Feb 11, 2015 at 11:13:38AM -0500, Trond Myklebust wrote:
> On Wed, Feb 11, 2015 at 11:04 AM, Anna Schumaker
> <Anna.Schumaker@netapp.com> wrote:
> > I'm not seeing a huge performance increase with READ_PLUS compared to READ (in fact, it's often a bit slower compared to READ, even when using splice). My guess is that the problem is mostly on the client's end since we have to do a memory shift on each segment to get everything lined up properly. I'm playing around with code that cuts down the number of memory shifts, but I still have a few bugs to work out before I'll know if it actually helps.
> >
>
> I'm wondering if the right way to do READ_PLUS would have been to
> instead have a separate function READ_SPARSE, that will return a list
> of all sparse areas in the supplied range. We could even make that a
> READ_SAME, that can do the same for patterned data.
I worry about ending up with incoherent results, but perhaps it's no
different from the current behavior since we're already piecing together
our idea of the file content from multiple reads sent in parallel.
> The thing is that READ works just fine for what we want it to do. The
> real win here would be if given a very large file, we could request a
> list of all the sparse areas in, say, a 100GB range, and then use that
> data to build up a bitmap of unallocated blocks for which we can skip
> the READ requests.
Can we start by having the server return a single data extent covering
the whole read request, with the single exception of the case where the
read falls entirely within a hole?
I think that should help in the case of large holes without interfering
with the client's zero-copy logic in the case there are no large holes.
--b.
next prev parent reply other threads:[~2015-02-11 16:22 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-28 20:42 [PATCH v2 0/4] NFSD: Add READ_PLUS support Anna.Schumaker
2015-01-28 20:42 ` [PATCH v2 1/4] NFSD: nfsd4_encode_read() should encode eof and maxcount Anna.Schumaker
2015-02-05 14:11 ` Christoph Hellwig
2015-02-05 16:04 ` Anna Schumaker
2015-01-28 20:42 ` [PATCH v2 2/4] NFSD: Add READ_PLUS support for data segments Anna.Schumaker
2015-02-05 14:13 ` Christoph Hellwig
2015-02-05 16:06 ` Anna Schumaker
2015-02-05 16:23 ` Christoph Hellwig
2015-02-05 16:43 ` Anna Schumaker
2015-02-05 16:48 ` J. Bruce Fields
2015-02-05 16:53 ` Anna Schumaker
2015-02-06 22:00 ` Anna Schumaker
2015-02-11 16:04 ` Anna Schumaker
2015-02-11 16:13 ` Trond Myklebust
2015-02-11 16:22 ` J. Bruce Fields [this message]
2015-02-11 16:31 ` Trond Myklebust
2015-02-11 16:42 ` J. Bruce Fields
2015-02-12 12:32 ` Christoph Hellwig
[not found] ` <OF7B254253.7A276767-ON88257DE9.005F1E53-88257DE9.0060F512@us.ibm.com>
2015-02-11 17:47 ` Trond Myklebust
2015-02-11 18:17 ` Tom Haynes
2015-02-11 18:49 ` Trond Myklebust
2015-02-11 19:01 ` Anna Schumaker
2015-02-11 19:22 ` Anna Schumaker
2015-02-12 19:59 ` Anna Schumaker
2015-02-13 13:24 ` Christoph Hellwig
2015-02-13 14:12 ` J. Bruce Fields
2015-02-12 12:29 ` Christoph Hellwig
2015-02-06 11:54 ` Christoph Hellwig
2015-02-06 16:08 ` J. Bruce Fields
2015-02-06 16:21 ` J. Bruce Fields
2015-02-06 16:46 ` Chuck Lever
2015-02-06 17:04 ` Chuck Lever
2015-02-06 17:59 ` J. Bruce Fields
2015-02-06 18:44 ` Chuck Lever
2015-02-06 19:35 ` J. Bruce Fields
2015-02-06 20:07 ` Chuck Lever
2015-02-06 20:28 ` J. Bruce Fields
2015-02-06 21:12 ` Chuck Lever
2015-02-06 22:01 ` J. Bruce Fields
2015-02-05 16:47 ` J. Bruce Fields
2015-01-28 20:42 ` [PATCH v2 3/4] NFSD: Add READ_PLUS support for hole segments Anna.Schumaker
2015-01-28 20:42 ` [PATCH v2 4/4] NFSD: Add support for encoding multiple segments Anna.Schumaker
2015-01-28 21:38 ` [PATCH v2 0/4] NFSD: Add READ_PLUS support Christoph Hellwig
2015-01-28 21:45 ` Anna Schumaker
2015-01-29 16:49 ` Anna Schumaker
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=20150211162244.GH25696@fieldses.org \
--to=bfields@fieldses.org \
--cc=Anna.Schumaker@netapp.com \
--cc=hch@infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=thomas.haynes@primarydata.com \
--cc=trond.myklebust@primarydata.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.