]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: remove log_root to maintain a single root for OMAP and LOG
authormyoungwon oh <ohmyoungwon@gmail.com>
Fri, 2 Jan 2026 05:49:16 +0000 (14:49 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Thu, 19 Feb 2026 07:23:04 +0000 (16:23 +0900)
Signed-off-by: Myoungwon Oh <ohmyoungwon@gmail.com>
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/crimson/os/seastore/seastore.cc

index 2f10f33ec72fd4557f6d107193fface3cbc7da76..e989a22d4d376940d3ec009efdd1e275f73293db 100644 (file)
@@ -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;
index 426bf1c6b2d4c984c51497f628a51c0f0b7f839f..7ff7dce5b452b63423eb5ea7d2e8e0986e6856d9 100644 (file)
@@ -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(
index 7e2957bd4e8f9177b9da33177b04e836a6fa435d..f5c6d21c19557378b648ee0f5e304e432bd9c66b 100644 (file)
@@ -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<onode_layout_t*>(
-          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(
index 6a03ab801bd2da9efc6f622d6283c9bebcc5cf27..e2ea7b98df1e0a6cdabb7e1521e777fd06eda36b 100644 (file)
@@ -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);
   }
 }