Hi,

I was wondering if it is possible to have the client completely cache
a recursive listing of a lustre filesystem such that on a second run
it doesn't have to talk to the MDT again? Taking the simplest case
where I only have one client that is browsing a million file tree
(say), I would expect that once the ldlm has cached the locks
(lru_size) then a second recursive scan (find, ls -R) shouldn't need
to talk to the MDT/OST again. But this is not the case probably
because a recursive scan needs to do a open() and getdents() on each
directory it finds. If I just stat all the files without doing a
recursive scan then it gets everything from the client cache as
expected without the MDS chatter - e.g.

  find /mnt/lustre -type f > /tmp/files.txt
  cat /tmp/files.txt | xargs ls -l

Is there any way to improve the browsing speed and cache directory
contents - especially for the case where I only have a single client
accessing an entire tree? As an aside I also noticed that a "ls -l"
does a getxattr - does that get cached by the client too? I can
imagine it might cause quite a bit of MDS chatter.

Cheers,

Daire
_______________________________________________
Lustre-discuss mailing list
[email protected]
http://lists.lustre.org/mailman/listinfo/lustre-discuss

Reply via email to