]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os: use IsFullKey in *::insert_prefix{,_at}()
authorKefu Chai <tchaikov@gmail.com>
Mon, 22 Aug 2022 13:50:28 +0000 (21:50 +0800)
committerKefu Chai <tchaikov@gmail.com>
Mon, 22 Aug 2022 13:57:13 +0000 (21:57 +0800)
to fade out KeyT, so we can have more straightforward definitions.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.cc
src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.cc
src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc
src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.h

index 165d61a96a962f08d5699b21b39c3ffaec2521de..9252fb99a44c61b3f93958ff0a591e9974ede37c 100644 (file)
@@ -11,9 +11,9 @@ namespace crimson::os::seastore::onode {
 #define ITER_INST(NT) item_iterator_t<NT>
 
 template <node_type_t NODE_TYPE>
-template <KeyT KT>
+template <IsFullKey Key>
 memory_range_t ITER_T::insert_prefix(
-    NodeExtentMutable& mut, const ITER_T& iter, const full_key_t<KT>& key,
+    NodeExtentMutable& mut, const ITER_T& iter, const Key& key,
     bool is_end, node_offset_t size, const char* p_left_bound)
 {
   // 1. insert range
@@ -41,14 +41,14 @@ memory_range_t ITER_T::insert_prefix(
 
   return {p_insert_front, p_insert};
 }
-#define IP_TEMPLATE(NT, KT)                                              \
-  template memory_range_t ITER_INST(NT)::insert_prefix<KT>(              \
-      NodeExtentMutable&, const ITER_INST(NT)&, const full_key_t<KT>&, \
+#define IP_TEMPLATE(NT, Key)                                  \
+  template memory_range_t ITER_INST(NT)::insert_prefix<Key>(  \
+      NodeExtentMutable&, const ITER_INST(NT)&, const Key&,   \
       bool, node_offset_t, const char*)
-IP_TEMPLATE(node_type_t::LEAF, KeyT::VIEW);
-IP_TEMPLATE(node_type_t::INTERNAL, KeyT::VIEW);
-IP_TEMPLATE(node_type_t::LEAF, KeyT::HOBJ);
-IP_TEMPLATE(node_type_t::INTERNAL, KeyT::HOBJ);
+IP_TEMPLATE(node_type_t::LEAF, key_view_t);
+IP_TEMPLATE(node_type_t::INTERNAL, key_view_t);
+IP_TEMPLATE(node_type_t::LEAF, key_hobj_t);
+IP_TEMPLATE(node_type_t::INTERNAL, key_hobj_t);
 
 template <node_type_t NODE_TYPE>
 void ITER_T::update_size(
index 4f945b727c65d0d7a2e5b1cbb2c71d6d6faacf5c..9d12474acab0cd715adc467af536a18d1e3fcd4f 100644 (file)
@@ -132,10 +132,10 @@ class item_iterator_t {
     return ns_oid_view_t::estimate_size(key) + sizeof(node_offset_t);
   }
 
-  template <KeyT KT>
+  template <IsFullKey Key>
   static memory_range_t insert_prefix(
       NodeExtentMutable& mut, const item_iterator_t<NODE_TYPE>& iter,
-      const full_key_t<KT>& key, bool is_end,
+      const Key& key, bool is_end,
       node_offset_t size, const char* p_left_bound);
 
   static void update_size(
index 95855943fc22f27c3bb40845424b03e4a9f18af0..3ed401c375185d5221d1f3b1156521ef5d53358d 100644 (file)
@@ -91,9 +91,9 @@ void NODE_T::update_is_level_tail(
 }
 
 template <typename FieldType, node_type_t NODE_TYPE>
-template <KeyT KT>
+template <IsFullKey Key>
 memory_range_t NODE_T::insert_prefix_at(
-    NodeExtentMutable& mut, const node_extent_t& node, const full_key_t<KT>& key,
+    NodeExtentMutable& mut, const node_extent_t& node, const Key& key,
     index_t index, node_offset_t size, const char* p_left_bound)
 {
   assert(mut.get_length() == node.node_size);
@@ -118,22 +118,22 @@ memory_range_t NODE_T::insert_prefix_at(
     ceph_abort("impossible");
   }
 }
-#define IPA_TEMPLATE(FT, NT, KT)                                         \
-  template memory_range_t NODE_INST(FT, NT)::insert_prefix_at<KT>(       \
-      NodeExtentMutable&, const node_extent_t&, const full_key_t<KT>&, \
+#define IPA_TEMPLATE(FT, NT, Key)                                         \
+  template memory_range_t NODE_INST(FT, NT)::insert_prefix_at<Key>(       \
+      NodeExtentMutable&, const node_extent_t&, const Key&, \
       index_t, node_offset_t, const char*)
-IPA_TEMPLATE(node_fields_0_t, node_type_t::INTERNAL, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_1_t, node_type_t::INTERNAL, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_2_t, node_type_t::INTERNAL, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_0_t, node_type_t::LEAF, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_1_t, node_type_t::LEAF, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_2_t, node_type_t::LEAF, KeyT::VIEW);
-IPA_TEMPLATE(node_fields_0_t, node_type_t::INTERNAL, KeyT::HOBJ);
-IPA_TEMPLATE(node_fields_1_t, node_type_t::INTERNAL, KeyT::HOBJ);
-IPA_TEMPLATE(node_fields_2_t, node_type_t::INTERNAL, KeyT::HOBJ);
-IPA_TEMPLATE(node_fields_0_t, node_type_t::LEAF, KeyT::HOBJ);
-IPA_TEMPLATE(node_fields_1_t, node_type_t::LEAF, KeyT::HOBJ);
-IPA_TEMPLATE(node_fields_2_t, node_type_t::LEAF, KeyT::HOBJ);
+IPA_TEMPLATE(node_fields_0_t, node_type_t::INTERNAL, key_view_t);
+IPA_TEMPLATE(node_fields_1_t, node_type_t::INTERNAL, key_view_t);
+IPA_TEMPLATE(node_fields_2_t, node_type_t::INTERNAL, key_view_t);
+IPA_TEMPLATE(node_fields_0_t, node_type_t::LEAF, key_view_t);
+IPA_TEMPLATE(node_fields_1_t, node_type_t::LEAF, key_view_t);
+IPA_TEMPLATE(node_fields_2_t, node_type_t::LEAF, key_view_t);
+IPA_TEMPLATE(node_fields_0_t, node_type_t::INTERNAL, key_hobj_t);
+IPA_TEMPLATE(node_fields_1_t, node_type_t::INTERNAL, key_hobj_t);
+IPA_TEMPLATE(node_fields_2_t, node_type_t::INTERNAL, key_hobj_t);
+IPA_TEMPLATE(node_fields_0_t, node_type_t::LEAF, key_hobj_t);
+IPA_TEMPLATE(node_fields_1_t, node_type_t::LEAF, key_hobj_t);
+IPA_TEMPLATE(node_fields_2_t, node_type_t::LEAF, key_hobj_t);
 
 template <typename FieldType, node_type_t NODE_TYPE>
 void NODE_T::update_size_at(
index b00539fd041ec9b7caf6c97eecf473040dc49a29..5615998f8f8eff59a449bb8770da8b3c05e0ba31 100644 (file)
@@ -146,10 +146,10 @@ class node_extent_t {
     return size;
   }
 
-  template <KeyT KT>
+  template <IsFullKey Key>
   static const value_t* insert_at(
       NodeExtentMutable& mut, const node_extent_t&,
-      const full_key_t<KT>& key, const value_input_t& value,
+      const Key& key, const value_input_t& value,
       index_t index, node_offset_t size, const char* p_left_bound) {
     if constexpr (FIELD_TYPE == field_type_t::N3) {
       ceph_abort("not implemented");
@@ -158,10 +158,10 @@ class node_extent_t {
     }
   }
 
-  template <KeyT KT>
+  template <IsFullKey Key>
   static memory_range_t insert_prefix_at(
       NodeExtentMutable&, const node_extent_t&,
-      const full_key_t<KT>& key,
+      const Key& key,
       index_t index, node_offset_t size, const char* p_left_bound);
 
   static void update_size_at(
index 0a8e87bc7e483650c0580d9eafb6744a3f863a19..6e954aa29d24602f61a5e3b0946ff133b1051869 100644 (file)
@@ -323,15 +323,15 @@ struct staged {
         const value_input_t& value,
         node_offset_t insert_size,
         const char* p_left_bound) {
-      return container_t::template insert_at<KT>(
+      return container_t::insert_at(
           mut, container, key, value, _index, insert_size, p_left_bound);
     }
 
-    template <KeyT KT, typename T = memory_range_t>
+    template <IsFullKey Key, typename T = memory_range_t>
     std::enable_if_t<!IS_BOTTOM, T> insert_prefix(
-        NodeExtentMutable& mut, const full_key_t<KT>& key,
+        NodeExtentMutable& mut, const Key& key,
         node_offset_t size, const char* p_left_bound) {
-      return container_t::template insert_prefix_at<KT>(
+      return container_t::insert_prefix_at(
           mut, container, key, _index, size, p_left_bound);
     }
 
@@ -647,11 +647,11 @@ struct staged {
       return MatchKindBS::NE;
     }
 
-    template <KeyT KT>
+    template <IsFullKey Key>
     memory_range_t insert_prefix(
-        NodeExtentMutable& mut, const full_key_t<KT>& key,
+        NodeExtentMutable& mut, const Key& key,
         node_offset_t size, const char* p_left_bound) {
-      return container_t::template insert_prefix<KT>(
+      return container_t::insert_prefix(
           mut, container, key, is_end(), size, p_left_bound);
     }
 
@@ -1366,7 +1366,7 @@ struct staged {
         return iter.template insert<KT>(
             mut, key, value, _insert_size, p_left_bound);
       } else {
-        auto range = iter.template insert_prefix<KT>(
+        auto range = iter.insert_prefix(
             mut, key, _insert_size, p_left_bound);
         return NXT_STAGE_T::template insert_new<KT>(mut, range, key, value);
       }
@@ -1403,10 +1403,10 @@ struct staged {
         ceph_abort("impossible path");
       }
       if constexpr (IS_BOTTOM) {
-        return container_t::template insert_at<KT>(
+        return container_t::insert_at(
             mut, container, key, value, 0, _insert_size, p_left_bound);
       } else {
-        auto range = container_t::template insert_prefix_at<KT>(
+        auto range = container_t::template insert_prefix_at(
             mut, container, key, 0, _insert_size, p_left_bound);
         return NXT_STAGE_T::template insert_new<KT>(mut, range, key, value);
       }
index 2d37467a92b9366a14e47081914f3dc09b40c4cd..28e6f7102c2cc59928775f3b305e0b3acdcf2152 100644 (file)
@@ -7,10 +7,10 @@
 
 namespace crimson::os::seastore::onode {
 
-template <KeyT KT>
+template <IsFullKey Key>
 const laddr_packed_t* internal_sub_items_t::insert_at(
     NodeExtentMutable& mut, const internal_sub_items_t& sub_items,
-    const full_key_t<KT>& key, const laddr_t& value,
+    const Key& key, const laddr_t& value,
     index_t index, node_offset_t size, const char* p_left_bound)
 {
   assert(index <= sub_items.keys());
@@ -26,12 +26,12 @@ const laddr_packed_t* internal_sub_items_t::insert_at(
   mut.copy_in_absolute(p_insert, item);
   return &reinterpret_cast<internal_sub_item_t*>(p_insert)->value;
 }
-#define IA_TEMPLATE(KT)                                                     \
-  template const laddr_packed_t* internal_sub_items_t::insert_at<KT>(       \
-    NodeExtentMutable&, const internal_sub_items_t&, const full_key_t<KT>&, \
+#define IA_TEMPLATE(Key)                                                    \
+  template const laddr_packed_t* internal_sub_items_t::insert_at<Key>(      \
+    NodeExtentMutable&, const internal_sub_items_t&, const Key&,            \
     const laddr_t&, index_t, node_offset_t, const char*)
-IA_TEMPLATE(KeyT::VIEW);
-IA_TEMPLATE(KeyT::HOBJ);
+IA_TEMPLATE(key_view_t);
+IA_TEMPLATE(key_hobj_t);
 
 node_offset_t internal_sub_items_t::trim_until(
     NodeExtentMutable& mut, internal_sub_items_t& items, index_t index)
@@ -84,10 +84,10 @@ void internal_sub_items_t::Appender<KT>::append(
   p_value = &reinterpret_cast<internal_sub_item_t*>(p_append)->value;
 }
 
-template <KeyT KT>
+template <IsFullKey Key>
 const value_header_t* leaf_sub_items_t::insert_at(
     NodeExtentMutable& mut, const leaf_sub_items_t& sub_items,
-    const full_key_t<KT>& key, const value_config_t& value,
+    const Key& key, const value_config_t& value,
     index_t index, node_offset_t size, const char* p_left_bound)
 {
   assert(index <= sub_items.keys());
@@ -130,8 +130,8 @@ const value_header_t* leaf_sub_items_t::insert_at(
 
   return p_value;
 }
-template const value_header_t* leaf_sub_items_t::insert_at<KeyT::HOBJ>(
-    NodeExtentMutable&, const leaf_sub_items_t&, const full_key_t<KeyT::HOBJ>&,
+template const value_header_t* leaf_sub_items_t::insert_at<key_hobj_t>(
+    NodeExtentMutable&, const leaf_sub_items_t&, const key_hobj_t&,
     const value_config_t&, index_t, node_offset_t, const char*);
 
 node_offset_t leaf_sub_items_t::trim_until(
index ed07dc763405ea8307ca7689e27419c98ddaea46..e3d1fd7c5b7918db8f90f964c415e22ee911a1b7 100644 (file)
@@ -109,10 +109,10 @@ class internal_sub_items_t {
     return sizeof(internal_sub_item_t);
   }
 
-  template <KeyT KT>
+  template <IsFullKey Key>
   static const laddr_packed_t* insert_at(
       NodeExtentMutable&, const internal_sub_items_t&,
-      const full_key_t<KT>&, const laddr_t&,
+      const Key&, const laddr_t&,
       index_t index, node_offset_t size, const char* p_left_bound);
 
   static node_offset_t trim_until(NodeExtentMutable&, internal_sub_items_t&, index_t);
@@ -289,10 +289,10 @@ class leaf_sub_items_t {
     return value.allocation_size() + sizeof(snap_gen_t) + sizeof(node_offset_t);
   }
 
-  template <KeyT KT>
+  template <IsFullKey Key>
   static const value_header_t* insert_at(
       NodeExtentMutable&, const leaf_sub_items_t&,
-      const full_key_t<KT>&, const value_config_t&,
+      const Key&, const value_config_t&,
       index_t index, node_offset_t size, const char* p_left_bound);
 
   static node_offset_t trim_until(NodeExtentMutable&, leaf_sub_items_t&, index_t index);