]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/backref: decouple SegmentManagerGroup 47185/head
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 20 Jul 2022 05:51:59 +0000 (13:51 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 20 Jul 2022 05:51:59 +0000 (13:51 +0800)
Backref tree is not specific to segments.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/backref/btree_backref_manager.cc
src/crimson/os/seastore/backref/btree_backref_manager.h
src/crimson/os/seastore/backref_manager.cc
src/crimson/os/seastore/backref_manager.h
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/transaction_manager.cc

index 5d0d6bf7881064907482bfa1e60cb03d25fa6ec1..90ae75b14cd00e2d417758a994cc30951fe28e72 100644 (file)
@@ -124,7 +124,7 @@ BtreeBackrefManager::new_mapping(
   ceph_assert(
     is_aligned(
       key.as_seg_paddr().get_segment_off(),
-      (uint64_t)sm_group.get_block_size()));
+      (uint64_t)cache.get_block_size()));
   struct state_t {
     paddr_t last_end;
 
index 5bc7476373e9e45824b04a21cb780c95adf191f5..8130c806377c343a0f1508cb1b1bdcee810f6acf 100644 (file)
@@ -38,11 +38,8 @@ using BackrefBtree = FixedKVBtree<
 class BtreeBackrefManager : public BackrefManager {
 public:
 
-  BtreeBackrefManager(
-    SegmentManagerGroup &sm_group,
-    Cache &cache)
-    : sm_group(sm_group),
-      cache(cache)
+  BtreeBackrefManager(Cache &cache)
+    : cache(cache)
   {}
 
   mkfs_ret mkfs(
@@ -119,7 +116,6 @@ public:
   void cache_new_backref_extent(paddr_t paddr, extent_types_t type) final;
 
 private:
-  SegmentManagerGroup &sm_group;
   Cache &cache;
 
   btree_pin_set_t<paddr_t> pin_set;
index 8e195994cdc1b5db78a0503b03ede84099f05006..c596ee41dcaf0dcec70c28b96fa842f902f7aeeb 100644 (file)
@@ -8,12 +8,10 @@
 namespace crimson::os::seastore {
 
 BackrefManagerRef create_backref_manager(
-  SegmentManagerGroup &sm_group,
   Cache &cache)
 {
   return BackrefManagerRef(
-    new backref::BtreeBackrefManager(
-      sm_group, cache));
+    new backref::BtreeBackrefManager(cache));
 }
 
 } // namespace crimson::os::seastore::backref
index 76a08257c9755e4c3909c847ed946ce2ba75c9be..69234506248bc4ba014246dea4656019891cf858 100644 (file)
@@ -164,7 +164,6 @@ using BackrefManagerRef =
   std::unique_ptr<BackrefManager>;
 
 BackrefManagerRef create_backref_manager(
-  SegmentManagerGroup &sm_group,
   Cache &cache);
 
 } // namespace crimson::os::seastore::backref
index 9d4e3528d108f1517d173bcb73aed665257ab9f5..95aa6a7827d49466852a2dc3d290f5c5c96209c1 100644 (file)
@@ -482,6 +482,10 @@ public:
     return get_extent<T>(t, offset, length, [](T &){});
   }
 
+  seastore_off_t get_block_size() const {
+    return epm.get_block_size();
+  }
+
 private:
   // This is a workaround std::move_only_function not being available,
   // not really worth generalizing at this time.
index e88e80b7feec30bb114bf3be657cba0d776cd274..89f8199a888f703066a0ccfd4e2898e5e78c41b8 100644 (file)
@@ -684,7 +684,7 @@ TransactionManagerRef make_transaction_manager(tm_make_config_t config)
   auto cache = std::make_unique<Cache>(*epm);
   auto lba_manager = lba_manager::create_lba_manager(*cache);
   auto sms = std::make_unique<SegmentManagerGroup>();
-  auto backref_manager = create_backref_manager(*sms, *cache);
+  auto backref_manager = create_backref_manager(*cache);
 
   bool cleaner_is_detailed;
   AsyncCleaner::config_t cleaner_config;