]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore: move the root meta out of the root block
authorXuehan Xu <xuxuehan@qianxin.com>
Thu, 7 Nov 2024 01:41:18 +0000 (09:41 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Mon, 11 Nov 2024 08:46:15 +0000 (16:46 +0800)
commit4cb1243d0301739e9440cb7be437d531bbcb455b
treefafc085c3949f4c970a046ada8c8dcd4cf28f39e
parent66e6a8675bc5575d60c41c85b6616925e7d292c8
crimson/os/seastore: move the root meta out of the root block

During massive data backfilling, new osdmaps keep being created due to
frequent pg status changes, which can lead to frequent osd meta updates.
Those updates will be translated into "SeaStore::write_meta"s, which
modifies the root block's meta field and invalidates all inflight
transactions. Since the osd meta updates can be very frequent, long
transactions may be kept invalidated and the corresponding IO requests
hang.

This commit moves the root meta out of the root block, so that updates
to it won't invalidate irrelevant transactions

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/root_meta.h [new file with mode: 0644]
src/crimson/os/seastore/seastore_types.cc
src/crimson/os/seastore/seastore_types.h
src/crimson/os/seastore/transaction_manager.cc
src/crimson/os/seastore/transaction_manager.h