I have a new version of directory chunking posted that seems to work...

It supports new FSAL methods for compute_readdir_cookie and dirent_cmp to
allow inserting new dirents into a sorted directory. There is an FYI patch
that uses readdir to implement compute_readdir_cookie for FSAL_VFS that I
used for testing and to provide an example.

Future work needed:

EXT4 (and maybe other filesystems) provides an interesting challenge. It
doesn't place . and .. at the front of the directory enumeration. This can
play havoc if one of them sorts to the end of the directory and that entry
would be in a chunk by itself (or at most with both . and ..). Under
consideration is a proposal to include the . and .. entries into the dirent
cache, and then the protocol layer would become responsible for dealing with
them.

So an outstanding question is how do other filesystems and FSALs handle the
. and .. entry enumeration? FSAL_PROXY by virtue of using NFS v4 READDIR
will NOT enumerate . and .. and so relying on caching them would require
FSAL_PROXY to invent them. There may also be issues with instantiating an
fsal_obj_handle and costs of lookup.

The API passed fsal_cookie_t by address, I will submit a separate patch to
pass by value, no good reason to pass by address (and no one passes NULL,
but all the FSALs have to check for NULL...).

Matt Benjamin and I have been talking about an ability to defer lookup and
getattrs on readdir. I will submit a subsequent patch for that.

We also talked about the FSAL being able to read ahead of what MDCACHE reads
to fulfill the current request. I will submit a separate patch for that.

I also need to add the memory management aspect.

Once this is all tested, I will deprecate the old cache.

This needs some extensive testing to make sure we don't have any holes...

Thanks

Frank


---
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