The old style dirent cache will go away once the chunked cache is stable. That
should be during the 2.6 development cycle.
I am working on management of the detached dirents that result from create,
mkdir, mknod, link, symlink, rename, and lookup., but there are issues with
correctness so that has been taking some time.
Frank
From: gui mark [mailto:guiggl...@gmail.com]
Sent: Wednesday, July 12, 2017 8:14 PM
To: Daniel Gryniewicz <d...@redhat.com>
Cc: nfs-ganesha-devel@lists.sourceforge.net; ffilz...@mindspring.com; Matt
Benjamin <mbenja...@redhat.com>
Subject: Re: [Nfs-ganesha-devel] About dirent chunking
IIUC, the dirent chunking is a complete replacement of the old-style dirent
cache. As I tried, when I have 'Dir_Chunk' on, then 'Dir_Max' will not limit
the number of cached dirents, so are we going to kick out the old direct cache
completely ?
On Tue, Jul 11, 2017 at 8:40 PM, Daniel Gryniewicz <d...@redhat.com
<mailto:d...@redhat.com> > wrote:
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
<mailto:Nfs-ganesha-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
------------------------------------------------------------------------------
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