Whamcloud - gitweb
LU-18218 mdd: changelog specific write function 42/56342/23
authorAlexander Boyko <alexander.boyko@hpe.com>
Fri, 30 Aug 2024 17:12:09 +0000 (13:12 -0400)
committerOleg Drokin <green@whamcloud.com>
Wed, 7 May 2025 21:10:54 +0000 (21:10 +0000)
commitcb1290768df9fca6ead194c2812fb0182d85191c
tree87638bbf38d23c69b8a75cf25d4ce36764e3f83e
parentf00863ff25b3be68b220dd2c6b6234fd6e3a0d8e
LU-18218 mdd: changelog specific write function

Don't use a general llog_osd_write_rec() for a changelog,
it has too many synchronisation for a consistency, and additional
complexity for a remote writes. And as a result changelog enabling
slowdowns MDT IO performance by 3x. The main idea of this patch is
parallel writers to a local file, some inconsistence would be
handled by a reader.

The lgh_hdr_mutex protects modifications at memory, there is no
need to cover dt_record_write() by it. Since write/cancel protects
by lgh_lock mutex. Let's change lgh_hdr_mutex to a spinlock.

Perfomance results for mdtest mean at cluster
Changelog no basic patch diff %
Directory creation 90152 32800 63827 94
Directory removal 96900 32928 61220 85
File creation 116109 52318 82698 58
File removal 119260 42845 80557 88

HPE-bug-id: LUS-11970
Signed-off-by: Alexander Boyko <alexander.boyko@hpe.com>
Change-Id: Icbe26e1198630dc72f4dfd9fca59718076579245
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56342
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/lustre_log.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/mdd/mdd_device.c
lustre/mdd/mdd_dir.c
lustre/obdclass/llog.c
lustre/obdclass/llog_cat.c
lustre/obdclass/llog_osd.c
lustre/osd-zfs/osd_io.c
lustre/ptlrpc/llog_server.c
lustre/tests/conf-sanity.sh
lustre/tests/test-framework.sh