<!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.  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.<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.  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.<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>