From 4fe6e766aed3806095803329682accba07f2b8f3 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Fri, 2 Jan 2026 14:49:16 +0900 Subject: [PATCH] crimson/os/seastore: remove log_root to maintain a single root for OMAP and LOG Signed-off-by: Myoungwon Oh --- src/crimson/os/seastore/onode.h | 10 +++----- .../staged-fltree/fltree_onode_manager.cc | 10 -------- .../staged-fltree/fltree_onode_manager.h | 24 ++----------------- src/crimson/os/seastore/seastore.cc | 23 +++--------------- 4 files changed, 8 insertions(+), 59 deletions(-) diff --git a/src/crimson/os/seastore/onode.h b/src/crimson/os/seastore/onode.h index 2f10f33ec72..e989a22d4d3 100644 --- a/src/crimson/os/seastore/onode.h +++ b/src/crimson/os/seastore/onode.h @@ -33,7 +33,6 @@ struct onode_layout_t { ceph_le32 oi_size{0}; ceph_le32 ss_size{0}; omap_root_le_t omap_root; - omap_root_le_t log_root; omap_root_le_t xattr_root; object_data_le_t object_data; @@ -49,17 +48,15 @@ struct onode_layout_t { */ bool need_cow = false; - onode_layout_t() : omap_root(omap_type_t::OMAP), log_root(omap_type_t::LOG), + onode_layout_t() : omap_root(omap_type_t::OMAP), xattr_root(omap_type_t::XATTR) {} const omap_root_le_t& get_root(omap_type_t type) const { if (type == omap_type_t::XATTR) { return xattr_root; - } else if (type == omap_type_t::OMAP) { - return omap_root; } else { - assert(type == omap_type_t::LOG); - return log_root; + assert(type == omap_type_t::LOG || type == omap_type_t::OMAP); + return omap_root; } } } __attribute__((packed)); @@ -107,7 +104,6 @@ public: } virtual void update_onode_size(Transaction&, uint32_t) = 0; virtual void update_omap_root(Transaction&, omap_root_t&) = 0; - virtual void update_log_root(Transaction&, omap_root_t&) = 0; virtual void update_xattr_root(Transaction&, omap_root_t&) = 0; virtual void update_object_data(Transaction&, object_data_t&) = 0; virtual void update_object_info(Transaction&, ceph::bufferlist&) = 0; diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc b/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc index 426bf1c6b2d..7ff7dce5b45 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc @@ -40,10 +40,6 @@ void FLTreeOnode::Recorder::apply_value_delta( DEBUG("update omap root"); bliter.copy(sizeof(mlayout.omap_root), (char *)&mlayout.omap_root); break; - case delta_op_t::UPDATE_LOG_ROOT: - DEBUG("update log root"); - bliter.copy(sizeof(mlayout.log_root), (char *)&mlayout.log_root); - break; case delta_op_t::UPDATE_XATTR_ROOT: DEBUG("update xattr root"); bliter.copy(sizeof(mlayout.xattr_root), (char *)&mlayout.xattr_root); @@ -116,12 +112,6 @@ void FLTreeOnode::Recorder::encode_update( (const char *)&layout.omap_root, sizeof(layout.omap_root)); break; - case delta_op_t::UPDATE_LOG_ROOT: - DEBUG("update log root"); - encoded.append( - (const char *)&layout.log_root, - sizeof(layout.log_root)); - break; case delta_op_t::UPDATE_XATTR_ROOT: DEBUG("update xattr root"); encoded.append( diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h b/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h index 7e2957bd4e8..f5c6d21c195 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h @@ -49,7 +49,6 @@ struct FLTreeOnode final : Onode, Value { enum class delta_op_t : uint8_t { UPDATE_ONODE_SIZE, UPDATE_OMAP_ROOT, - UPDATE_LOG_ROOT, UPDATE_XATTR_ROOT, UPDATE_OBJECT_DATA, UPDATE_OBJECT_INFO, @@ -110,15 +109,12 @@ struct FLTreeOnode final : Onode, Value { o_payload_mut.get_write()); std::swap(mlayout.object_data, o_mlayout.object_data); std::swap(mlayout.omap_root, o_mlayout.omap_root); - std::swap(mlayout.log_root, o_mlayout.log_root); std::swap(mlayout.xattr_root, o_mlayout.xattr_root); if (recorder) { recorder->encode_update( payload_mut, Recorder::delta_op_t::UPDATE_OBJECT_DATA); recorder->encode_update( payload_mut, Recorder::delta_op_t::UPDATE_OMAP_ROOT); - recorder->encode_update( - payload_mut, Recorder::delta_op_t::UPDATE_LOG_ROOT); recorder->encode_update( payload_mut, Recorder::delta_op_t::UPDATE_XATTR_ROOT); } @@ -127,8 +123,6 @@ struct FLTreeOnode final : Onode, Value { o_payload_mut, Recorder::delta_op_t::UPDATE_OBJECT_DATA); o_recorder->encode_update( o_payload_mut, Recorder::delta_op_t::UPDATE_OMAP_ROOT); - o_recorder->encode_update( - o_payload_mut, Recorder::delta_op_t::UPDATE_LOG_ROOT); o_recorder->encode_update( o_payload_mut, Recorder::delta_op_t::UPDATE_XATTR_ROOT); } @@ -191,7 +185,8 @@ struct FLTreeOnode final : Onode, Value { } void update_omap_root(Transaction &t, omap_root_t &oroot) final { - assert(oroot.get_type() == omap_type_t::OMAP); + assert(oroot.get_type() == omap_type_t::OMAP || + oroot.get_type() == omap_type_t::LOG); with_mutable_layout( t, [&oroot](NodeExtentMutable &payload_mut, Recorder *recorder) { @@ -205,21 +200,6 @@ struct FLTreeOnode final : Onode, Value { }); } - void update_log_root(Transaction &t, omap_root_t &lroot) final { - assert(lroot.get_type() == omap_type_t::LOG); - with_mutable_layout( - t, - [&lroot](NodeExtentMutable &payload_mut, Recorder *recorder) { - auto &mlayout = *reinterpret_cast( - payload_mut.get_write()); - mlayout.log_root.update(lroot); - if (recorder) { - recorder->encode_update( - payload_mut, Recorder::delta_op_t::UPDATE_LOG_ROOT); - } - }); - } - void update_xattr_root(Transaction &t, omap_root_t &xroot) final { assert(xroot.get_type() == omap_type_t::XATTR); with_mutable_layout( diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index 6a03ab801bd..e2ea7b98df1 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -1794,7 +1794,7 @@ SeaStore::Shard::_do_transaction_step( return omaptree_initialize( *ctx.transaction, mgr, omap_type_t::LOG, *onode, *device ).si_then([&onode, &ctx](auto new_root) { - onode->update_log_root(*ctx.transaction, new_root); + onode->update_omap_root(*ctx.transaction, new_root); }); } return tm_iertr::now(); @@ -1875,7 +1875,6 @@ SeaStore::Shard::_rename( uint32_t size = olayout.size; auto omap_root = rename_omap_root(omap_type_t::OMAP, *onode, *d_onode); auto xattr_root = rename_omap_root(omap_type_t::XATTR, *onode, *d_onode); - auto log_root = rename_omap_root(omap_type_t::LOG, *onode, *d_onode); auto object_data = olayout.object_data.get(); auto oi_bl = ceph::bufferlist::static_from_mem( &olayout.oi[0], @@ -1887,7 +1886,6 @@ SeaStore::Shard::_rename( d_onode->update_onode_size(*ctx.transaction, size); d_onode->update_omap_root(*ctx.transaction, omap_root); d_onode->update_xattr_root(*ctx.transaction, xattr_root); - d_onode->update_log_root(*ctx.transaction, log_root); d_onode->update_object_data(*ctx.transaction, object_data); d_onode->update_object_info(*ctx.transaction, oi_bl); d_onode->update_snapset(*ctx.transaction, ss_bl); @@ -1912,10 +1910,6 @@ SeaStore::Shard::_remove( return omaptree_clear_no_onode( *ctx.transaction, get_omap_root(omap_type_t::XATTR, *onode)); - }).si_then([this, &ctx, &onode] { - return omaptree_clear_no_onode( - *ctx.transaction, - get_omap_root(omap_type_t::LOG, *onode)); }).si_then([this, &ctx, &onode] { return seastar::do_with( ObjectDataHandler(max_object_size), @@ -2034,12 +2028,6 @@ SeaStore::Shard::_clone( omap_type_t::OMAP, onode.is_head() ? d_onode : onode, onode.is_head() ? onode : d_onode); - }).si_then([&ctx, &onode, &d_onode, this] { - return omaptree_clone( - *ctx.transaction, - omap_type_t::LOG, - onode.is_head() ? d_onode : onode, - onode.is_head() ? onode : d_onode); }); } @@ -2137,12 +2125,7 @@ SeaStore::Shard::_omap_clear( *ctx.transaction, get_omap_root(omap_type_t::OMAP, onode), onode - ).si_then([this, &ctx, &onode] { - return omaptree_clear( - *ctx.transaction, - get_omap_root(omap_type_t::LOG, onode), - onode); - }); + ); }); } @@ -2773,7 +2756,7 @@ void omaptree_update_root( onode.update_xattr_root(t, root); } else { assert(root.get_type() == omap_type_t::LOG); - onode.update_log_root(t, root); + onode.update_omap_root(t, root); } } -- 2.47.3