This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit eb86872b7016d23162d24aef223d42ace2c2c69e Author: zhangstar333 <87313068+zhangstar...@users.noreply.github.com> AuthorDate: Fri Jan 19 14:36:01 2024 +0800 [improve](profile) add init probe side timer in join node (#30079) --- be/src/pipeline/exec/hashjoin_probe_operator.cpp | 1 + be/src/pipeline/exec/hashjoin_probe_operator.h | 1 + be/src/vec/exec/join/process_hash_table_probe.h | 1 + be/src/vec/exec/join/process_hash_table_probe_impl.h | 18 +++++++++++------- be/src/vec/exec/join/vhash_join_node.cpp | 1 + be/src/vec/exec/join/vhash_join_node.h | 1 + 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/be/src/pipeline/exec/hashjoin_probe_operator.cpp b/be/src/pipeline/exec/hashjoin_probe_operator.cpp index f852d3c4440..c7029614c50 100644 --- a/be/src/pipeline/exec/hashjoin_probe_operator.cpp +++ b/be/src/pipeline/exec/hashjoin_probe_operator.cpp @@ -56,6 +56,7 @@ Status HashJoinProbeLocalState::init(RuntimeState* state, LocalStateInfo& info) _probe_side_output_timer = ADD_TIMER(profile(), "ProbeWhenProbeSideOutputTime"); _probe_process_hashtable_timer = ADD_TIMER(profile(), "ProbeWhenProcessHashTableTime"); _process_other_join_conjunct_timer = ADD_TIMER(profile(), "OtherJoinConjunctTime"); + _init_probe_side_timer = ADD_TIMER(profile(), "InitProbeSideTime"); return Status::OK(); } diff --git a/be/src/pipeline/exec/hashjoin_probe_operator.h b/be/src/pipeline/exec/hashjoin_probe_operator.h index ac7954af13b..18db6acc67f 100644 --- a/be/src/pipeline/exec/hashjoin_probe_operator.h +++ b/be/src/pipeline/exec/hashjoin_probe_operator.h @@ -141,6 +141,7 @@ private: RuntimeProfile::Counter* _probe_process_hashtable_timer = nullptr; RuntimeProfile::HighWaterMarkCounter* _probe_arena_memory_usage = nullptr; RuntimeProfile::Counter* _search_hashtable_timer = nullptr; + RuntimeProfile::Counter* _init_probe_side_timer = nullptr; RuntimeProfile::Counter* _build_side_output_timer = nullptr; RuntimeProfile::Counter* _process_other_join_conjunct_timer = nullptr; }; diff --git a/be/src/vec/exec/join/process_hash_table_probe.h b/be/src/vec/exec/join/process_hash_table_probe.h index 4b3140b7b59..803cc34bd78 100644 --- a/be/src/vec/exec/join/process_hash_table_probe.h +++ b/be/src/vec/exec/join/process_hash_table_probe.h @@ -109,6 +109,7 @@ struct ProcessHashTableProbe { RuntimeProfile::Counter* _rows_returned_counter = nullptr; RuntimeProfile::Counter* _search_hashtable_timer = nullptr; + RuntimeProfile::Counter* _init_probe_side_timer = nullptr; RuntimeProfile::Counter* _build_side_output_timer = nullptr; RuntimeProfile::Counter* _probe_side_output_timer = nullptr; RuntimeProfile::Counter* _probe_process_hashtable_timer = nullptr; diff --git a/be/src/vec/exec/join/process_hash_table_probe_impl.h b/be/src/vec/exec/join/process_hash_table_probe_impl.h index 4f950f876cf..c9f92c59e08 100644 --- a/be/src/vec/exec/join/process_hash_table_probe_impl.h +++ b/be/src/vec/exec/join/process_hash_table_probe_impl.h @@ -50,6 +50,7 @@ ProcessHashTableProbe<JoinOpType, Parent>::ProcessHashTableProbe(Parent* parent, _has_null_in_build_side(parent->has_null_in_build_side()), _rows_returned_counter(parent->_rows_returned_counter), _search_hashtable_timer(parent->_search_hashtable_timer), + _init_probe_side_timer(parent->_init_probe_side_timer), _build_side_output_timer(parent->_build_side_output_timer), _probe_side_output_timer(parent->_probe_side_output_timer), _probe_process_hashtable_timer(parent->_probe_process_hashtable_timer), @@ -156,13 +157,16 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_process(HashTableType& hash auto& build_index = _parent->_build_index; auto last_probe_index = probe_index; - _init_probe_side<HashTableType>( - hash_table_ctx, probe_rows, with_other_conjuncts, - need_null_map_for_probe ? null_map->data() : nullptr, - need_null_map_for_probe && ignore_null && - (JoinOpType == doris::TJoinOp::LEFT_ANTI_JOIN || - JoinOpType == doris::TJoinOp::LEFT_SEMI_JOIN || - JoinOpType == doris::TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN || is_mark_join)); + { + SCOPED_TIMER(_init_probe_side_timer); + _init_probe_side<HashTableType>( + hash_table_ctx, probe_rows, with_other_conjuncts, + need_null_map_for_probe ? null_map->data() : nullptr, + need_null_map_for_probe && ignore_null && + (JoinOpType == doris::TJoinOp::LEFT_ANTI_JOIN || + JoinOpType == doris::TJoinOp::LEFT_SEMI_JOIN || + JoinOpType == doris::TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN || is_mark_join)); + } auto& mcol = mutable_block.mutable_columns(); diff --git a/be/src/vec/exec/join/vhash_join_node.cpp b/be/src/vec/exec/join/vhash_join_node.cpp index 94cb5be876f..39e05936397 100644 --- a/be/src/vec/exec/join/vhash_join_node.cpp +++ b/be/src/vec/exec/join/vhash_join_node.cpp @@ -241,6 +241,7 @@ Status HashJoinNode::prepare(RuntimeState* state) { _open_timer = ADD_TIMER(runtime_profile(), "OpenTime"); _allocate_resource_timer = ADD_TIMER(runtime_profile(), "AllocateResourceTime"); _process_other_join_conjunct_timer = ADD_TIMER(runtime_profile(), "OtherJoinConjunctTime"); + _init_probe_side_timer = ADD_CHILD_TIMER(probe_phase_profile, "InitProbeSideTime", "ProbeTime"); RETURN_IF_ERROR(VExpr::prepare(_build_expr_ctxs, state, child(1)->row_desc())); RETURN_IF_ERROR(VExpr::prepare(_probe_expr_ctxs, state, child(0)->row_desc())); diff --git a/be/src/vec/exec/join/vhash_join_node.h b/be/src/vec/exec/join/vhash_join_node.h index b9b3d18dff7..7fdb103d1f2 100644 --- a/be/src/vec/exec/join/vhash_join_node.h +++ b/be/src/vec/exec/join/vhash_join_node.h @@ -319,6 +319,7 @@ private: RuntimeProfile::Counter* _probe_process_hashtable_timer = nullptr; RuntimeProfile::Counter* _build_side_compute_hash_timer = nullptr; RuntimeProfile::Counter* _build_side_merge_block_timer = nullptr; + RuntimeProfile::Counter* _init_probe_side_timer = nullptr; RuntimeProfile::Counter* _open_timer = nullptr; RuntimeProfile::Counter* _allocate_resource_timer = nullptr; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org