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=4924eb44a478523f248612377c7dac9b16bb31c2;p=ceph-ci.git crimson/os/seastore/Onode: remove default metadata offset/range Signed-off-by: Zhang Song --- diff --git a/src/common/options/crimson.yaml.in b/src/common/options/crimson.yaml.in index 031113ae7f5..f0f92443d2e 100644 --- a/src/common/options/crimson.yaml.in +++ b/src/common/options/crimson.yaml.in @@ -150,11 +150,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 2f10f33ec72..8f95a6e1ec9 100644 --- a/src/crimson/os/seastore/onode.h +++ b/src/crimson/os/seastore/onode.h @@ -79,15 +79,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; @@ -119,12 +113,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 426bf1c6b2d..a4f3b59e975 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 @@ -182,11 +182,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 ); @@ -202,14 +198,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 7e2957bd4e8..1ff033ba57d 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 { @@ -335,16 +330,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 fe5f79c0b1d..69dff46cdc2 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; } @@ -303,9 +301,7 @@ struct object_data_handler_test_t: } seastar::future<> set_up_fut() final { - onode = new TestOnode( - DEFAULT_OBJECT_DATA_RESERVATION, - DEFAULT_OBJECT_METADATA_RESERVATION); + onode = new TestOnode(); known_contents = buffer::create(4<<20 /* 4MB */); memset(known_contents.c_str(), 0, known_contents.length()); size = 0;