Delegations allow the client to cache various objects aggressively,
however they can also be a source of scalability issues on the server
if not returned when not it use.
The following patchset allows the client to set a limit on the number
of delegations that it holds. Once it hits that limit, it starts to
return the delegations on close in order to avoid swamping the server
with state.
Trond Myklebust (5):
NFSv4: nfs_inode_evict_delegation() should set
NFS_DELEGATION_RETURNING
NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is
returned
NFSv4: Try to return the delegation immediately when marked for return
on close
NFSv4: Add accounting for the number of active delegations held
NFSv4: Limit the total number of cached delegations
fs/nfs/delegation.c | 80 +++++++++++++++++++++++++++++++++++++--------
fs/nfs/delegation.h | 1 +
fs/nfs/nfs4state.c | 1 +
3 files changed, 69 insertions(+), 13 deletions(-)
--
2.24.1