From 2aea7ab835c1b9358601e4f16a0771c0e6d9d584 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 6 Aug 2022 07:53:11 +0800 Subject: [PATCH] crimson/osd: trade macro for type alias for better readablity. Signed-off-by: Kefu Chai --- .../onode_manager/staged-fltree/node_layout.h | 85 ++++++++++--------- .../staged-fltree/node_layout_replayable.h | 21 +++-- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h index 74cb57662c2e3..2433816d06d4a 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h @@ -47,12 +47,13 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { using parent_t = typename node_impl_type::type; using marker_t = typename node_marker_type::type; using node_stage_t = typename extent_t::node_stage_t; + using stage_t = node_to_stage_t; using position_t = typename extent_t::position_t; using value_input_t = typename extent_t::value_input_t; using value_t = typename extent_t::value_t; static constexpr auto FIELD_TYPE = extent_t::FIELD_TYPE; static constexpr auto KEY_TYPE = insert_key_type::type; - static constexpr auto STAGE = STAGE_T::STAGE; + static constexpr auto STAGE = stage_t::STAGE; NodeLayoutT(const NodeLayoutT&) = delete; NodeLayoutT(NodeLayoutT&&) = delete; @@ -123,9 +124,9 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { validate_non_empty(); if constexpr (NODE_TYPE == node_type_t::INTERNAL) { return ((is_level_tail() && is_keys_empty()) || - (!is_level_tail() && STAGE_T::is_keys_one(extent.read()))); + (!is_level_tail() && stage_t::is_keys_one(extent.read()))); } else { - return STAGE_T::is_keys_one(extent.read()); + return stage_t::is_keys_one(extent.read()); } } @@ -140,7 +141,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { } assert(!is_keys_empty()); key_view_t pivot_index; - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), nullptr, &pivot_index, nullptr); return {pivot_index}; } @@ -226,9 +227,9 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { } } else { key_view_t left_pivot_index; - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( left_node_stage, nullptr, &left_pivot_index, nullptr); - std::tie(merge_stage, size_comp) = STAGE_T::evaluate_merge( + std::tie(merge_stage, size_comp) = stage_t::evaluate_merge( left_pivot_index, right_node_stage); } auto size_left = filled_size(); @@ -271,7 +272,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { build_name(); } position_t left_last_pos; - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( left_node_stage, &left_last_pos, nullptr, nullptr); if (right_node.is_keys_empty()) { @@ -284,14 +285,14 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { ceph_abort("impossible path"); } } else { - typename STAGE_T::template StagedAppender left_appender; + typename stage_t::template StagedAppender left_appender; left_appender.init_tail(&mut, left_node_stage, merge_stage); - typename STAGE_T::StagedIterator right_append_at; + typename stage_t::StagedIterator right_append_at; right_append_at.set(right_node_stage); auto pos_end = position_t::end(); - STAGE_T::template append_until( + stage_t::template append_until( right_append_at, left_appender, pos_end, STAGE); assert(right_append_at.is_end()); left_appender.wrap(); @@ -310,7 +311,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { rebuild_extent(context_t c) override { assert(!is_keys_empty()); full_key_t first_index; - STAGE_T::template get_slot( + stage_t::template get_slot( extent.read(), position_t::begin(), &first_index, nullptr); auto hint = first_index.get_hint(); return extent.rebuild(c, hint).si_then([this] (auto mut) { @@ -336,7 +337,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { auto& node_stage = extent.read(); key_view_t index_key; if (!is_keys_empty()) { - STAGE_T::get_stats(node_stage, stats, index_key); + stage_t::get_stats(node_stage, stats, index_key); } stats.size_persistent = extent.get_length(); stats.size_filled = filled_size(); @@ -362,7 +363,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { os << ":\n header: " << node_stage_t::header_size() << "B"; size_t size = 0u; if (!is_keys_empty()) { - STAGE_T::dump(node_stage, os, " ", size, p_start); + stage_t::dump(node_stage, os, " ", size, p_start); } else { size += node_stage_t::header_size(); if (NODE_TYPE == node_type_t::LEAF || !node_stage.is_level_tail()) { @@ -395,7 +396,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { void validate_layout() const override { #ifndef NDEBUG - STAGE_T::validate(extent.read()); + stage_t::validate(extent.read()); #endif } @@ -417,13 +418,13 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { assert(!is_keys_empty()); assert(!pos.is_end()); if (p_index_key && pp_value) { - STAGE_T::template get_slot( + stage_t::template get_slot( extent.read(), cast_down(pos), p_index_key, pp_value); } else if (!p_index_key && pp_value) { - STAGE_T::template get_slot( + stage_t::template get_slot( extent.read(), cast_down(pos), nullptr, pp_value); } else if (p_index_key && !pp_value) { - STAGE_T::template get_slot( + stage_t::template get_slot( extent.read(), cast_down(pos), p_index_key, nullptr); } else { ceph_abort("impossible path"); @@ -446,14 +447,14 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { auto nxt_pos = _pos; #endif if (!p_index_key && pp_value) { - STAGE_T::template get_prev_slot( + stage_t::template get_prev_slot( extent.read(), _pos, nullptr, pp_value); } else { ceph_abort("not implemented"); } #ifndef NDEBUG auto _nxt_pos = _pos; - STAGE_T::template get_next_slot( + stage_t::template get_next_slot( extent.read(), _nxt_pos, nullptr, nullptr); assert(nxt_pos == _nxt_pos); #endif @@ -466,10 +467,10 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { assert(!pos.is_end()); bool find_next; if (p_index_key && pp_value) { - find_next = STAGE_T::template get_next_slot( + find_next = stage_t::template get_next_slot( extent.read(), cast_down(pos), p_index_key, pp_value); } else if (!p_index_key && pp_value) { - find_next = STAGE_T::template get_next_slot( + find_next = stage_t::template get_next_slot( extent.read(), cast_down(pos), nullptr, pp_value); } else { ceph_abort("not implemented"); @@ -484,16 +485,16 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { const value_t** pp_value = nullptr) const override { assert(!is_keys_empty()); if (p_pos && p_index_key && pp_value) { - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), &cast_down_fill_0(*p_pos), p_index_key, pp_value); } else if (!p_pos && p_index_key && !pp_value) { - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), nullptr, p_index_key, nullptr); } else if (p_pos && !p_index_key && pp_value) { - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), &cast_down_fill_0(*p_pos), nullptr, pp_value); } else if (p_pos && !p_index_key && !pp_value) { - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), &cast_down_fill_0(*p_pos), nullptr, nullptr); } else { ceph_abort("not implemented"); @@ -513,27 +514,27 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { } assert(!is_keys_empty()); - typename STAGE_T::result_t result_raw; + typename stage_t::result_t result_raw; if (index_key) { - result_raw = STAGE_T::template lower_bound( + result_raw = stage_t::template lower_bound( node_stage, key, history, index_key); #ifndef NDEBUG if (!result_raw.is_end()) { full_key_t index; - STAGE_T::template get_slot( + stage_t::template get_slot( node_stage, result_raw.position, &index, nullptr); assert(index.compare_to(*index_key) == MatchKindCMP::EQ); } #endif } else { - result_raw = STAGE_T::lower_bound(node_stage, key, history); + result_raw = stage_t::lower_bound(node_stage, key, history); } #ifndef NDEBUG if (result_raw.is_end()) { assert(result_raw.mstat == MSTAT_END); } else { full_key_t index; - STAGE_T::template get_slot( + stage_t::template get_slot( node_stage, result_raw.position, &index, nullptr); assert_mstat(key, index, result_raw.mstat); } @@ -622,7 +623,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { auto& insert_pos = cast_down(_insert_pos); auto& node_stage = extent.read(); - typename STAGE_T::StagedIterator split_at; + typename stage_t::StagedIterator split_at; bool is_insert_left; size_t split_size; size_t target_split_size; @@ -709,7 +710,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { std::optional _is_insert_left; split_at.set(node_stage); split_size = 0; - bool locate_nxt = STAGE_T::recursively_locate_split_inserted( + bool locate_nxt = stage_t::recursively_locate_split_inserted( split_size, 0, target_split_size, insert_pos, insert_stage, insert_size, _is_insert_left, split_at); is_insert_left = *_is_insert_left; @@ -730,12 +731,12 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { auto append_at = split_at; // TODO(cross-node string dedup) - typename STAGE_T::template StagedAppender right_appender; + typename stage_t::template StagedAppender right_appender; right_appender.init_empty(&right_mut, right_mut.get_write()); const value_t* p_value = nullptr; if (!is_insert_left) { // right node: append [start(append_at), insert_pos) - STAGE_T::template append_until( + stage_t::template append_until( append_at, right_appender, insert_pos, insert_stage); SUBDEBUG(seastore_onode, "-- right appended until " @@ -743,7 +744,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { insert_pos, insert_stage); // right node: append [insert_pos(key, value)] bool is_front_insert = (insert_pos == position_t::begin()); - [[maybe_unused]] bool is_end = STAGE_T::template append_insert( + [[maybe_unused]] bool is_end = stage_t::template append_insert( key, value, append_at, right_appender, is_front_insert, insert_stage, p_value); assert(append_at.is_end() == is_end); @@ -753,7 +754,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { // right node: append (insert_pos, end) auto pos_end = position_t::end(); - STAGE_T::template append_until( + stage_t::template append_until( append_at, right_appender, pos_end, STAGE); assert(append_at.is_end()); right_appender.wrap(); @@ -809,12 +810,12 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { InsertType insert_type; search_position_t last_pos; if (is_insert_left) { - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( extent.read(), &cast_down_fill_0(last_pos), nullptr, nullptr); } else { node_stage_t right_stage{reinterpret_cast(right_mut.get_write()), right_mut.get_length()}; - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( right_stage, &cast_down_fill_0(last_pos), nullptr, nullptr); } if (_insert_pos == search_position_t::begin()) { @@ -870,9 +871,9 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { if (unlikely(is_keys_empty())) { assert(insert_pos.is_end()); insert_stage = STAGE; - insert_size = STAGE_T::template insert_size(key, value); + insert_size = stage_t::template insert_size(key, value); } else { - std::tie(insert_stage, insert_size) = STAGE_T::evaluate_insert( + std::tie(insert_stage, insert_size) = stage_t::evaluate_insert( node_stage, key, value, cast_down(insert_pos), false); } return {insert_stage, insert_size}; @@ -892,9 +893,9 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { if (unlikely(is_keys_empty())) { assert(insert_pos.is_end()); assert(is_level_tail()); - return {STAGE, STAGE_T::template insert_size(key, value)}; + return {STAGE, stage_t::template insert_size(key, value)}; } else { - return STAGE_T::evaluate_insert( + return stage_t::evaluate_insert( key, value, history, mstat, cast_down(insert_pos)); } } else { diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout_replayable.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout_replayable.h index ece058111f452..d8a18231e6a67 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout_replayable.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout_replayable.h @@ -7,8 +7,6 @@ #include "stages/node_stage.h" #include "stages/stage.h" -#define STAGE_T node_to_stage_t - namespace crimson::os::seastore::onode { /** @@ -21,8 +19,9 @@ namespace crimson::os::seastore::onode { template struct NodeLayoutReplayableT { using node_stage_t = node_extent_t; - using position_t = typename STAGE_T::position_t; - using StagedIterator = typename STAGE_T::StagedIterator; + using stage_t = node_to_stage_t; + using position_t = typename stage_t::position_t; + using StagedIterator = typename stage_t::StagedIterator; using value_input_t = value_input_type_t; using value_t = value_type_t; static constexpr auto FIELD_TYPE = FieldType::FIELD_TYPE; @@ -36,7 +35,7 @@ struct NodeLayoutReplayableT { position_t& insert_pos, match_stage_t& insert_stage, node_offset_t& insert_size) { - auto p_value = STAGE_T::template proceed_insert( + auto p_value = stage_t::template proceed_insert( mut, node_stage, key, value, insert_pos, insert_stage, insert_size); return p_value; } @@ -46,7 +45,7 @@ struct NodeLayoutReplayableT { const node_stage_t& node_stage, StagedIterator& split_at) { node_stage_t::update_is_level_tail(mut, node_stage, false); - STAGE_T::trim(mut, split_at); + stage_t::trim(mut, split_at); } template @@ -60,8 +59,8 @@ struct NodeLayoutReplayableT { match_stage_t& insert_stage, node_offset_t& insert_size) { node_stage_t::update_is_level_tail(mut, node_stage, false); - STAGE_T::trim(mut, split_at); - auto p_value = STAGE_T::template proceed_insert( + stage_t::trim(mut, split_at); + auto p_value = stage_t::template proceed_insert( mut, node_stage, key, value, insert_pos, insert_stage, insert_size); return p_value; } @@ -85,7 +84,7 @@ struct NodeLayoutReplayableT { assert(node_stage.keys() != 0); position_t erase_pos = _erase_pos; - auto erase_stage = STAGE_T::erase(mut, node_stage, erase_pos); + auto erase_stage = stage_t::erase(mut, node_stage, erase_pos); // return erase_stage, next_pos return {erase_stage, erase_pos}; } @@ -115,13 +114,13 @@ struct NodeLayoutReplayableT { laddr_t last_value; { const laddr_packed_t* p_last_value; - STAGE_T::template get_largest_slot( + stage_t::template get_largest_slot( node_stage, &last_pos, nullptr, &p_last_value); last_value = p_last_value->value; } auto erase_pos = last_pos; - auto erase_stage = STAGE_T::erase(mut, node_stage, erase_pos); + auto erase_stage = stage_t::erase(mut, node_stage, erase_pos); assert(erase_pos.is_end()); node_stage_t::update_is_level_tail(mut, node_stage, true); -- 2.39.5