On 07/11/2017 06:00 AM, gui mark wrote:
Hi Frank (cc list)
I started to grow interested with your dirent chunking these days, and
I've got a few questions below:
1. Why we need chunking ? only for lru-style management for dirents ?
The big driver for it was the way that dirents were cached before. When
a directory was cached, the entire thing needed to be cached before any
dirents were returned to the client. This had 2 problems for large
directories: 1) It took a lot of time, and clients could time out before
receiving a reply; 2) It took a lot of memory, since we couldn't reap
any dirents, because we needed them all to return any.
The chunking breaks the readdir up into chunks, so that only one chunk
must be read before results can be returned to clients, and so that
chunks can be reaped, freeing memory without breaking readdir.
2. Is this big feature completed? If not, could you please share some
blueprints on that, so we may be able to contribute some effort ?
The feature itself is complete; the last bit of the memory management is
still outstanding here: https://review.gerrithub.io/#/c/367446/
3. Do the underlying FSALs have to add impl for any new interfaces (if
any) to support chunking ?
Yes and no. Everything works correctly without any changes. However,
if the FSAL can compute dirent cookies directly from the name (ie, no
round-trip to the cluster) then it can implement
compute_readdir_cookie(), and be more efficient when handling dirents
created from calls other than readdir() (such as lookup() and rename()).
This is purely an optimization, but one that can theoretically make a
difference to come workloads.
4. Does the new-style dirent cache borrows ideas for the kernel dcache ?
Not really, no. It mostly borrows from the Ganesha's object cache.
Daniel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel