Daniel Gryniewicz has uploaded this change for review.

View Change

MDCACHE - add a name-cookie mapping for whence-is-name

Restarting a readdir internally because the chunk containing the
requested cookie has been reaped cause extreme performance problems on
large directories. It can cause a hang long enough for the client to
time out.

To avoid this, add a name-cookie map. This map contains the last cookie
we sent to a client, so that when that cookie is sent back by the
client, we can look up the name even if the chunk containing that dirent
has been reaped. This map is in an LRU, with a hard cap
(Dirmap_HWMark), and it's cleaned up in the background if entries are
older than 60 seconds.

Notet that we also save the second cookie in the set, since the linux
client seems to request that one approximately 1/3 of the time.

Change-Id: I09d1ef6012d5feca81c7418634cba02e3ab08bc5
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_ext.h
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_int.h
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.h
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_main.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_read_conf.c
M src/doc/man/ganesha-cache-config.rst
8 files changed, 344 insertions(+), 61 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/83/458683/1

To view, visit change 458683. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I09d1ef6012d5feca81c7418634cba02e3ab08bc5
Gerrit-Change-Number: 458683
Gerrit-PatchSet: 1
Gerrit-Owner: Daniel Gryniewicz <dang@redhat.com>
Gerrit-MessageType: newchange