From: myoungwon oh Date: Mon, 18 Mar 2024 06:48:07 +0000 (+0000) Subject: crimson/os/seastore: cache metadata during trimming to prevent from disk read X-Git-Tag: v19.1.1~385^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F57345%2Fhead;p=ceph.git crimson/os/seastore: cache metadata during trimming to prevent from disk read I encountered continous disk reads during trimming even though there are sufficient cache available, in 4K random write test with RBM (RBD). This is because metadata is note cached if its source is background transaction within touch_extent(). So, seastore, including the trimming process, needs to constantly retrieve metadata (e.g., BACKREF_LEAF). Signed-off-by: Myoungwon Oh (cherry picked from commit 7f253ce5aa98018b5b209fd6e062078d151ad567) --- diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index 75463f465fe1..829d57da1931 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -1342,8 +1342,11 @@ public: CachedExtent &ext, const Transaction::src_t* p_src=nullptr) { - if (p_src && is_background_transaction(*p_src)) + if (p_src && + is_background_transaction(*p_src) && + is_logical_type(ext.get_type())) { return; + } if (ext.is_stable_clean() && !ext.is_placeholder()) { lru.move_to_top(ext); }