Whamcloud - gitweb
LU-16356 hsm: store crh in rhashtable instead of list 84/49284/28
authorSergey Cheremencev <scherementsev@ddn.com>
Thu, 31 Aug 2023 16:12:51 +0000 (18:12 +0200)
committerOleg Drokin <green@whamcloud.com>
Fri, 23 Feb 2024 06:59:37 +0000 (06:59 +0000)
commitdc13a56187f6787c23e7ba66c6187a9a6220c5f6
tree975deacd820b554519cd51a24ae432e5c1f89145
parent5321d510878f8893a49778025c6981e46a66cdff
LU-16356 hsm: store crh in rhashtable instead of list

Store coordinator restore handles in rhashtable instead of list.
Search in a list with above a million entries takes too much time
causing to wait a lot of tasks due to contention on cdt_restore_lock.
As cdt_restore_lock is not needed anymore to protect
cdt_restore_handle_list, this patch also solves the problem with
parallel restore requests(LU-15132).

Add regression test sanity-hsm 409b.

Fixes: 66b3e74bc ("LU-15132 hsm: Protect against parallel HSM restore requests")
Test-Parameters: testlist=sanity-hsm env=ONLY=409b,ONLY_REPEAT=20
HPE-bug-id: LUS-11055
Change-Id: I3bb8788f6a0ce4c3fe4a3be85804df1c6845c313
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
Signed-off-by: Nikitas Angelinas <nikitas.angelinas@hpe.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49284
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/include/lustre_fid.h
lustre/mdt/mdt_coordinator.c
lustre/mdt/mdt_hsm_cdt_client.c
lustre/mdt/mdt_internal.h
lustre/obdclass/lu_object.c
lustre/tests/sanity-hsm.sh
lustre/tests/test-framework.sh