]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore/Onode: remove default metadata offset/range
authorZhang Song <zhangsong02@qianxin.com>
Tue, 26 Aug 2025 03:31:03 +0000 (11:31 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Mon, 2 Feb 2026 11:37:02 +0000 (19:37 +0800)
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
src/common/options/crimson.yaml.in
src/crimson/os/seastore/onode.h
src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc
src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h
src/test/crimson/seastore/test_object_data_handler.cc

index 031113ae7f55965f0b28e888b27c66aa583f6548..f0f92443d2e82082be11a04bf99cdead9cd14e9a 100644 (file)
@@ -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
index 2f10f33ec72fd4557f6d107193fface3cbc7da76..8f95a6e1ec9f17d6622d743fc208c2f19aac2968 100644 (file)
@@ -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();
index 426bf1c6b2d4c984c51497f628a51c0f0b7f839f..a4f3b59e9758a7bc330dad441baac39cf9ded50a 100644 (file)
@@ -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<OnodeRef>(
       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);
index 7e2957bd4e8f9177b9da33177b04e836a6fa435d..1ff033ba57da421f01955e99daba589dec025673 100644 (file)
@@ -35,14 +35,9 @@ struct FLTreeOnode final : Onode, Value {
   FLTreeOnode(const FLTreeOnode&) = default;
   FLTreeOnode& operator=(const FLTreeOnode&) = delete;
 
-  template <typename... T>
-  FLTreeOnode(uint32_t ddr, uint32_t dmr, const hobject_t &hobj, T&&... args)
-    : Onode(ddr, dmr, hobj),
-      Value(std::forward<T>(args)...) {}
-
   template <typename... T>
   FLTreeOnode(const hobject_t &hobj, T&&... args)
-    : Onode(0, 0, hobj),
+    : Onode(hobj),
       Value(std::forward<T>(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<uint64_t>("seastore_default_max_object_size")),
-    default_metadata_offset(default_data_reservation),
-    default_metadata_range(
-      get_conf<uint64_t>("seastore_default_object_metadata_reservation"))
+      get_conf<uint64_t>("seastore_default_max_object_size"))
   {}
 
   mkfs_ret mkfs(Transaction &t) {
index fe5f79c0b1d0b14c43e112043385b70a7fbd6068..69dff46cdc20585d665da67e28ed8869b1f7d0b6 100644 (file)
@@ -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;