From: Zhang Song Date: Tue, 26 Aug 2025 03:31:03 +0000 (+0800) Subject: crimson/os/seastore/Onode: remove default metadata offset/range X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef8efe74cbd8eb90d1c4c7c4f6edd038d4edf4a2;p=ceph-ci.git crimson/os/seastore/Onode: remove default metadata offset/range Signed-off-by: Zhang Song Signed-off-by: Xuehan Xu --- diff --git a/src/common/options/crimson.yaml.in b/src/common/options/crimson.yaml.in index c543b96b5de..89727905862 100644 --- a/src/common/options/crimson.yaml.in +++ b/src/common/options/crimson.yaml.in @@ -188,11 +188,6 @@ options: level: dev desc: default logical address space reservation for seastore objects' data default: 16777216 -- name: seastore_default_object_metadata_reservation - type: uint - level: dev - desc: default logical address space reservation for seastore objects' metadata - default: 16777216 # TODO: implement sub-extent checksum and deprecate this configuration. - name: seastore_full_integrity_check type: bool diff --git a/src/crimson/os/seastore/onode.h b/src/crimson/os/seastore/onode.h index e989a22d4d3..d3e828eb32d 100644 --- a/src/crimson/os/seastore/onode.h +++ b/src/crimson/os/seastore/onode.h @@ -76,15 +76,9 @@ class Onode : public boost::intrusive_ref_counter< { protected: virtual laddr_t get_hint() const = 0; - const uint32_t default_metadata_offset = 0; - const uint32_t default_metadata_range = 0; const hobject_t hobj; public: - Onode(uint32_t ddr, uint32_t dmr, const hobject_t &hobj) - : default_metadata_offset(ddr), - default_metadata_range(dmr), - hobj(hobj) - {} + explicit Onode(const hobject_t &hobj) : hobj(hobj) {} virtual bool is_alive() const = 0; virtual const onode_layout_t &get_layout() const = 0; @@ -115,12 +109,7 @@ public: virtual void swap_layout(Transaction&, Onode&) = 0; laddr_t get_metadata_hint(uint64_t block_size) const { - assert(default_metadata_offset); - assert(default_metadata_range); - uint64_t range_blocks = default_metadata_range / block_size; - auto random_offset = default_metadata_offset + - (((uint32_t)std::rand() % range_blocks) * block_size); - return (get_hint() + random_offset).checked_to_laddr(); + return get_hint(); } laddr_t get_data_hint() const { return get_hint(); 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 7ff7dce5b45..83983f86239 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 @@ -172,11 +172,7 @@ FLTreeOnodeManager::get_onode_ret FLTreeOnodeManager::get_onode( DEBUGT("no entry for {}", trans, hoid); return crimson::ct_error::enoent::make(); } - auto val = OnodeRef(new FLTreeOnode( - default_data_reservation, - default_metadata_range, - hoid.hobj, - cursor.value())); + auto val = OnodeRef(new FLTreeOnode(hoid.hobj, cursor.value())); return get_onode_iertr::make_ready_future( val ); @@ -192,14 +188,10 @@ FLTreeOnodeManager::get_or_create_onode( return tree.insert( trans, hoid, OnodeTree::tree_value_config_t{sizeof(onode_layout_t)} - ).si_then([this, &trans, &hoid, FNAME](auto p) + ).si_then([&trans, &hoid, FNAME](auto p) -> get_or_create_onode_ret { auto [cursor, created] = std::move(p); - auto onode = new FLTreeOnode( - default_data_reservation, - default_metadata_range, - hoid.hobj, - cursor.value()); + auto onode = new FLTreeOnode(hoid.hobj, cursor.value()); if (created) { DEBUGT("created onode for entry for {}", trans, hoid); onode->create_default_layout(trans); 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 f5c6d21c195..c2d6e9ff793 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 @@ -35,14 +35,9 @@ struct FLTreeOnode final : Onode, Value { FLTreeOnode(const FLTreeOnode&) = default; FLTreeOnode& operator=(const FLTreeOnode&) = delete; - template - FLTreeOnode(uint32_t ddr, uint32_t dmr, const hobject_t &hobj, T&&... args) - : Onode(ddr, dmr, hobj), - Value(std::forward(args)...) {} - template FLTreeOnode(const hobject_t &hobj, T&&... args) - : Onode(0, 0, hobj), + : Onode(hobj), Value(std::forward(args)...) {} struct Recorder : public ValueDeltaRecorder { @@ -315,16 +310,11 @@ class FLTreeOnodeManager : public crimson::os::seastore::OnodeManager { OnodeTree tree; uint32_t default_data_reservation = 0; - uint32_t default_metadata_offset = 0; - uint32_t default_metadata_range = 0; public: FLTreeOnodeManager(TransactionManager &tm) : tree(NodeExtentManager::create_seastore(tm)), default_data_reservation( - get_conf("seastore_default_max_object_size")), - default_metadata_offset(default_data_reservation), - default_metadata_range( - get_conf("seastore_default_object_metadata_reservation")) + get_conf("seastore_default_max_object_size")) {} mkfs_ret mkfs(Transaction &t) { diff --git a/src/test/crimson/seastore/test_object_data_handler.cc b/src/test/crimson/seastore/test_object_data_handler.cc index 3a55b55d1f0..dd3a6cb552b 100644 --- a/src/test/crimson/seastore/test_object_data_handler.cc +++ b/src/test/crimson/seastore/test_object_data_handler.cc @@ -12,8 +12,6 @@ using namespace crimson::os; using namespace crimson::os::seastore; #define MAX_OBJECT_SIZE (16<<20) -#define DEFAULT_OBJECT_DATA_RESERVATION (16<<20) -#define DEFAULT_OBJECT_METADATA_RESERVATION (16<<20) namespace { [[maybe_unused]] seastar::logger& logger() { @@ -25,7 +23,7 @@ class TestOnode final : public Onode { onode_layout_t layout; public: - TestOnode(uint32_t ddr, uint32_t dmr) : Onode(ddr, dmr, hobject_t()) {} + TestOnode() : Onode(hobject_t()) {} const onode_layout_t &get_layout() const final { return layout; } @@ -131,9 +129,7 @@ struct object_data_handler_test_t: extent_len_t size = 0; void reset() { - onode = new TestOnode( - DEFAULT_OBJECT_DATA_RESERVATION, - DEFAULT_OBJECT_METADATA_RESERVATION); + onode = new TestOnode(); size = 0; known_contents = buffer::create(4<<20 /* 4MB */); known_contents.zero(true);