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

Reply via email to