]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.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>
Sun, 24 May 2026 04:06:20 +0000 (12:06 +0800)
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
Signed-off-by: Xuehan Xu <xuxuehan@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 c543b96b5de673ec913837e87101aa2fb48d3bd2..8972790586214bf812c0e5add6aa8e1d19cb7c56 100644 (file)
@@ -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
index e989a22d4d376940d3ec009efdd1e275f73293db..d3e828eb32d1c17b5f432a8adf0fab614561384a 100644 (file)
@@ -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();
index 7ff7dce5b452b63423eb5ea7d2e8e0986e6856d9..83983f8623950e7613dedc2e27111715ed0c5081 100644 (file)
@@ -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<OnodeRef>(
       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);
index f5c6d21c19557378b648ee0f5e304e432bd9c66b..c2d6e9ff7938e6c14564a7602975f93a1ec566e3 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 {
@@ -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<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 3a55b55d1f0084dc45cfc27f00d1347e2d2a3b85..dd3a6cb552b3b1df4b9666ee919583187fd772a6 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;
   }
@@ -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);