This is an automated email from the ASF dual-hosted git repository.
lihaopeng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 6360ccf23d1 [improve](profile) add init probe side timer in join node
(#30079)
6360ccf23d1 is described below
commit 6360ccf23d18d710c859ac18914b75dc7298affb
Author: zhangstar333 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]