From: Fan Yong <yong.fan@whamcloud.com>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] Large readdir RPCs project
Date: Wed, 29 Sep 2010 15:44:21 +0800 [thread overview]
Message-ID: <4CA2EE55.7010209@whamcloud.com> (raw)
In-Reply-To: <AANLkTin42fMZpZ-eRt6gF__Ftw6Oo5BBf58Mb-376erW@mail.gmail.com>
According to bug 17833
(https://bugzilla.lustre.org/show_bug.cgi?id=17833) comment #0, as
Andreas' pointed out, the existing lustre framework almost supports bulk
readdir RPCs on server-side. The mainly work to be done is on
client-side to make llite/MDC to trigger multiple pages reading each
time instead of single page of readdir().
Just as your first idea, it is quite possible to be used as the
implementation, which is relative simple and efficient.
On the other hand, Large readdir RPCs is basic of another metadata read
performance improvement features - "readdir+", which is quite useful for
"ls -l" operation (for large directory), and reduce lookup/getattr RPC
as much as possible. In such feature, MDS will pack more dir-item's
attribute (not only name/ino as does currently by readdir, but also
mode/owner, and etc) information back to client-side in "readdir+" RPC.
That means the dir-item count in one "readdir+" page is less than in the
traditional readdir page, then more pages to be sent back to client. If
without "Large readdir RPCs", the advantage of "readdir+" will be
discounted.
Cheers,
Nasf
On 9/28/10 9:14 PM, Jeremy Filizetti wrote:
> Since I work mostly with Lustre over a WAN I'd definitely like to see
> the larger readdir RPCs in Lustre to save on RTTs between clients and
> the MDS. I'm just looking for some input to make sure I'm looking at
> the right changes. I know Andreas had mentioned an issue with larger
> pages to me at LUG this year.
>
> From the description I'm guessing the approach would be to request
> additioinal pages in the ll_dir_readpage similar to how read ahead is
> handled in ll_readpage. mdc_readpage also needs to be changed to
> handle multiple pages and prep each page for bulk. I think this makes
> the most sense because at least by default I see getdents64 only be
> called with a 4k buffer. Otherwise it might make sense to change the
> ll_readdir functions to handle more pages and ll_get_dir_page to
> request additional pages and call read_cache_pages instead.
>
> Jeremy
>
>
> _______________________________________________
> Lustre-devel mailing list
> Lustre-devel at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20100929/10c1fa34/attachment.htm>
next prev parent reply other threads:[~2010-09-29 7:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-28 13:14 [Lustre-devel] Large readdir RPCs project Jeremy Filizetti
2010-09-29 7:44 ` Fan Yong [this message]
2010-09-29 19:01 ` Jeremy Filizetti
2010-09-30 1:56 ` Fan Yong
2010-10-13 16:04 ` Jeremy Filizetti
2010-10-13 16:32 ` Fan Yong
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=4CA2EE55.7010209@whamcloud.com \
--to=yong.fan@whamcloud.com \
--cc=lustre-devel@lists.lustre.org \
/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.