Whamcloud - gitweb
LU-17441 mdc: use MDS_IO_PORTAL for rename
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 18 Jan 2024 09:49:48 +0000 (02:49 -0700)
committerAndreas Dilger <adilger@whamcloud.com>
Tue, 23 Jan 2024 02:07:47 +0000 (02:07 +0000)
commitcd32fd3504ee7cbade4bc62ff24d302b5f642c36
treeeefcfaaaed7ae145616709509a53b0456565445f
parentec5814c9a71c18cebc4c9527a92269279e3d3553
LU-17441 mdc: use MDS_IO_PORTAL for rename

Some workloads like Apache Spark are very rename intensive, and there
here may be many concurrent renames that need the BFL lock (more than
the number of MDS_REQUEST_PORTAL service threads), they will block
these threads until each is able to get the rename lock, and prevent
other MDS_REINT RPCs from being processed.

Since the MDS_IO_PORTAL is often unused (only needed for DoM files),
and has existed since 2.11.0, it seems possible to move the rename
RPCs to be serviced by the MDS_IO_PORTAL threads to avoid contention
on the primary MDS service threads. Also, it will avoid blocking
normal file open, setattr, statfs, and other common operations if the
BFL lock is contended. Even with DoM files they may have read-on-open
handling and only DoM writes would be blocked by the uncommon rename.

Lustre-change: https://review.whamcloud.com/53725
Lustre-commit: TBD (from b31c07cf18882b150d3e49ceee85a187e7a9b159)

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I623a27de1482778f3c9fc6bb5bbcf917611dc75b
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/53749
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
lustre/mdc/mdc_reint.c