Whamcloud - gitweb
LU-17441 mdc: use MDS_IO_PORTAL for rename 25/53725/5
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 18 Jan 2024 09:49:48 +0000 (02:49 -0700)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 19 Jan 2024 04:09:17 +0000 (21:09 -0700)
commitb31c07cf18882b150d3e49ceee85a187e7a9b159
tree74dd614a9fa5e8d9f70d52bb8253b3ee1be78535
parentc265e1c7b045bf1f9e5b2919c282b63086929ab6
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.

Test-Parameters: testlist=sanity serverversion=2.15
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I623a27de1482778f3c9fc6bb5bbcf917611dc75b
lustre/mdc/mdc_reint.c