<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    According to bug 17833
    (<a class="moz-txt-link-freetext" href="https://bugzilla.lustre.org/show_bug.cgi?id=17833">https://bugzilla.lustre.org/show_bug.cgi?id=17833</a>) 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().<br>
    <br>
    Just as your first idea, it is quite possible to be used as the
    implementation, which is relative simple and efficient. <br>
    <br>
    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.<br>
    <br>
    <br>
    Cheers,<br>
    Nasf<br>
    <br>
    On 9/28/10 9:14 PM, Jeremy Filizetti wrote:
    <blockquote
      cite="mid:AANLkTin42fMZpZ-eRt6gF__Ftw6Oo5BBf58Mb-376erW@mail.gmail.com"
      type="cite">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.&nbsp; I'm just looking for some
      input to make sure I'm looking at the right changes.&nbsp; I know
      Andreas had mentioned an issue with larger pages to me at LUG this
      year.<br>
      <br>
      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.&nbsp; mdc_readpage also needs to be changed
      to handle multiple pages and prep each page for bulk.&nbsp; I think
      this makes the most sense because at least by default I see
      getdents64 only be called with a 4k buffer.&nbsp; 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.<br>
      <br>
      Jeremy<br>
      <pre wrap=""><fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Lustre-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Lustre-devel@lists.lustre.org">Lustre-devel@lists.lustre.org</a>
<a class="moz-txt-link-freetext" href="http://lists.lustre.org/mailman/listinfo/lustre-devel">http://lists.lustre.org/mailman/listinfo/lustre-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>