From: Kefu Chai Date: Sat, 20 Aug 2022 11:54:16 +0000 (+0800) Subject: crimson/os: use IsFullKey in *::estimate_insert() X-Git-Tag: v18.0.0~216^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ce184880a4b07ed0bc48e3bc25fde13e221b2164;p=ceph.git crimson/os: use IsFullKey in *::estimate_insert() to fade out KeyT, so we can have more straightforward definitions. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.h index f09c931a314bc..4f945b727c65d 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/item_iterator_stage.h @@ -126,9 +126,9 @@ class item_iterator_t { static node_offset_t header_size() { return 0u; } - template + template static node_offset_t estimate_insert( - const full_key_t& key, const value_input_t&) { + const Key& key, const value_input_t&) { return ns_oid_view_t::estimate_size(key) + sizeof(node_offset_t); } diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h index 38a4ef5ccd7f0..b00539fd041ec 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h @@ -133,9 +133,9 @@ class node_extent_t { static node_offset_t header_size() { return FieldType::HEADER_SIZE; } - template + template static node_offset_t estimate_insert( - const full_key_t& key, const value_input_t& value) { + const Key& key, const value_input_t& value) { auto size = FieldType::estimate_insert_one(); if constexpr (FIELD_TYPE == field_type_t::N2) { size += ns_oid_view_t::estimate_size(key); diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h index 0ccc4ce74dd80..0a8e87bc7e483 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h @@ -496,10 +496,10 @@ struct staged { return container_t::header_size(); } - template + template static node_offset_t estimate_insert( - const full_key_t& key, const value_input_t& value) { - return container_t::template estimate_insert(key, value); + const Key& key, const value_input_t& value) { + return container_t::estimate_insert(key, value); } private: @@ -837,10 +837,10 @@ struct staged { return container_t::header_size(); } - template - static node_offset_t estimate_insert(const full_key_t& key, + template + static node_offset_t estimate_insert(const Key& key, const value_input_t& value) { - return container_t::template estimate_insert(key, value); + return container_t::estimate_insert(key, value); } private: @@ -1137,9 +1137,9 @@ struct staged { static node_offset_t insert_size(const full_key_t& key, const value_input_t& value) { if constexpr (IS_BOTTOM) { - return iterator_t::template estimate_insert(key, value); + return iterator_t::estimate_insert(key, value); } else { - return iterator_t::template estimate_insert(key, value) + + return iterator_t::estimate_insert(key, value) + NXT_STAGE_T::iterator_t::header_size() + NXT_STAGE_T::template insert_size(key, value); } diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc index a9c50f8b28788..2d37467a92b93 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc @@ -14,7 +14,7 @@ const laddr_packed_t* internal_sub_items_t::insert_at( index_t index, node_offset_t size, const char* p_left_bound) { assert(index <= sub_items.keys()); - assert(size == estimate_insert(key, value)); + assert(size == estimate_insert(key, value)); const char* p_shift_start = p_left_bound; const char* p_shift_end = reinterpret_cast( sub_items.p_first_item + 1 - index); @@ -91,7 +91,7 @@ const value_header_t* leaf_sub_items_t::insert_at( index_t index, node_offset_t size, const char* p_left_bound) { assert(index <= sub_items.keys()); - assert(size == estimate_insert(key, value)); + assert(size == estimate_insert(key, value)); // a. [... item(index)] << size const char* p_shift_start = p_left_bound; const char* p_shift_end = sub_items.get_item_end(index); diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.h index a17660ff89a00..ed07dc763405e 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.h @@ -103,9 +103,9 @@ class internal_sub_items_t { static node_offset_t header_size() { return 0u; } - template + template static node_offset_t estimate_insert( - const full_key_t&, const laddr_t&) { + const Key&, const laddr_t&) { return sizeof(internal_sub_item_t); } @@ -283,9 +283,9 @@ class leaf_sub_items_t { static node_offset_t header_size() { return sizeof(num_keys_t); } - template + template static node_offset_t estimate_insert( - const full_key_t&, const value_config_t& value) { + const Key&, const value_config_t& value) { return value.allocation_size() + sizeof(snap_gen_t) + sizeof(node_offset_t); }