[Lustre-devel] OSD iterator interface

Oleg Drokin Oleg.Drokin at Sun.COM
Thu Apr 2 11:47:23 PDT 2009


    While inspecting patches in bug 17560 it struck me as odd that we  
are fetching the data one entry at a time from the filesystem, so I  
asked a many-entries at a time
    approach to be implemented. Now the patch in the bug just fills  
the osd buffer with entries (after parsing them) and then actual user  
(e.g. __mdd_readpage)
    reparses the osd buffer and copies data to its own. This is a lot  
of wasted processing, copies and then some extra memory usage.
    So in my opinion the iterator interface should be reworked to  
accept an iterator and a buffer and then __mdd_readdir will pass in  
its own
    parsing of the data (with possible generalized preparsing from osd  
so that we are fs-neutral) and will directly fill its own buffer to  
the amount it actually needs,
    kind of like any kernel filldir functions already work right now.

    Am I missing something stupid? Are there any objections, would  
this break anything?


More information about the lustre-devel mailing list