You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2024/01/31 15:54:35 UTC
(doris) 23/37: [pipelineX](profile) Fix Tablet counter on pipelineX engine (#30613)
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 045225a09681d9731f9958f49225979c2f639179
Author: Gabriel <ga...@gmail.com>
AuthorDate: Wed Jan 31 14:30:30 2024 +0800
[pipelineX](profile) Fix Tablet counter on pipelineX engine (#30613)
---
be/src/pipeline/exec/olap_scan_operator.cpp | 4 +++-
be/src/pipeline/exec/olap_scan_operator.h | 1 +
be/src/pipeline/exec/scan_operator.cpp | 2 +-
be/src/vec/exec/scan/new_olap_scan_node.cpp | 2 ++
be/src/vec/exec/scan/new_olap_scan_node.h | 1 +
5 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/be/src/pipeline/exec/olap_scan_operator.cpp b/be/src/pipeline/exec/olap_scan_operator.cpp
index b89ac7333c3..0aab714449e 100644
--- a/be/src/pipeline/exec/olap_scan_operator.cpp
+++ b/be/src/pipeline/exec/olap_scan_operator.cpp
@@ -136,6 +136,7 @@ Status OlapScanLocalState::_init_profile() {
_filtered_segment_counter = ADD_COUNTER(_segment_profile, "NumSegmentFiltered", TUnit::UNIT);
_total_segment_counter = ADD_COUNTER(_segment_profile, "NumSegmentTotal", TUnit::UNIT);
_tablet_counter = ADD_COUNTER(_runtime_profile, "TabletNum", TUnit::UNIT);
+ _key_range_counter = ADD_COUNTER(_runtime_profile, "KeyRangesNum", TUnit::UNIT);
_runtime_filter_info = ADD_LABEL_COUNTER_WITH_LEVEL(_runtime_profile, "RuntimeFilterInfo", 1);
return Status::OK();
}
@@ -323,6 +324,7 @@ Status OlapScanLocalState::_init_scanners(std::list<vectorized::VScannerSPtr>* s
auto build_new_scanner = [&](BaseTabletSPtr tablet, int64_t version,
const std::vector<OlapScanRange*>& key_ranges) {
+ COUNTER_UPDATE(_key_range_counter, key_ranges.size());
auto scanner = vectorized::NewOlapScanner::create_shared(
this, vectorized::NewOlapScanner::Params {
state(),
@@ -380,7 +382,7 @@ void OlapScanLocalState::set_scan_ranges(RuntimeState* state,
for (auto& scan_range : scan_ranges) {
DCHECK(scan_range.scan_range.__isset.palo_scan_range);
_scan_ranges.emplace_back(new TPaloScanRange(scan_range.scan_range.palo_scan_range));
- // COUNTER_UPDATE(_tablet_counter, 1);
+ COUNTER_UPDATE(_tablet_counter, 1);
}
}
diff --git a/be/src/pipeline/exec/olap_scan_operator.h b/be/src/pipeline/exec/olap_scan_operator.h
index ffd8fecd075..233283a59aa 100644
--- a/be/src/pipeline/exec/olap_scan_operator.h
+++ b/be/src/pipeline/exec/olap_scan_operator.h
@@ -104,6 +104,7 @@ private:
RuntimeProfile::Counter* _num_disks_accessed_counter = nullptr;
RuntimeProfile::Counter* _tablet_counter = nullptr;
+ RuntimeProfile::Counter* _key_range_counter = nullptr;
RuntimeProfile::Counter* _rows_pushed_cond_filtered_counter = nullptr;
RuntimeProfile::Counter* _reader_init_timer = nullptr;
RuntimeProfile::Counter* _scanner_init_timer = nullptr;
diff --git a/be/src/pipeline/exec/scan_operator.cpp b/be/src/pipeline/exec/scan_operator.cpp
index 88e6c880568..d9fced39b05 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -119,7 +119,6 @@ Status ScanLocalState<Derived>::init(RuntimeState* state, LocalStateInfo& info)
_scan_dependency = dependency_sptr();
- set_scan_ranges(state, info.scan_ranges);
_common_expr_ctxs_push_down.resize(p._common_expr_ctxs_push_down.size());
for (size_t i = 0; i < _common_expr_ctxs_push_down.size(); i++) {
RETURN_IF_ERROR(
@@ -138,6 +137,7 @@ Status ScanLocalState<Derived>::init(RuntimeState* state, LocalStateInfo& info)
// during pipeline mode with more instances, olap scan node maybe not new VScanner object,
// so the profile of VScanner and SegmentIterator infos are always empty, could not init those.
RETURN_IF_ERROR(_init_profile());
+ set_scan_ranges(state, info.scan_ranges);
// if you want to add some profile in scan node, even it have not new VScanner object
// could add here, not in the _init_profile() function
_prepare_rf_timer(_runtime_profile.get());
diff --git a/be/src/vec/exec/scan/new_olap_scan_node.cpp b/be/src/vec/exec/scan/new_olap_scan_node.cpp
index 558169c775f..b11db29eb11 100644
--- a/be/src/vec/exec/scan/new_olap_scan_node.cpp
+++ b/be/src/vec/exec/scan/new_olap_scan_node.cpp
@@ -84,6 +84,7 @@ Status NewOlapScanNode::prepare(RuntimeState* state) {
// if you want to add some profile in scan node, even it have not new VScanner object
// could add here, not in the _init_profile() function
_tablet_counter = ADD_COUNTER(_runtime_profile, "TabletNum", TUnit::UNIT);
+ _key_range_counter = ADD_COUNTER(_runtime_profile, "KeyRangesNum", TUnit::UNIT);
return Status::OK();
}
@@ -597,6 +598,7 @@ Status NewOlapScanNode::_init_scanners(std::list<VScannerSPtr>* scanners) {
auto build_new_scanner = [&](BaseTabletSPtr tablet, int64_t version,
const std::vector<OlapScanRange*>& key_ranges,
TabletReader::ReadSource read_source) {
+ COUNTER_UPDATE(_key_range_counter, key_ranges.size());
auto scanner =
NewOlapScanner::create_shared(this, NewOlapScanner::Params {
_state,
diff --git a/be/src/vec/exec/scan/new_olap_scan_node.h b/be/src/vec/exec/scan/new_olap_scan_node.h
index ca357b7eb7d..e1861a3b619 100644
--- a/be/src/vec/exec/scan/new_olap_scan_node.h
+++ b/be/src/vec/exec/scan/new_olap_scan_node.h
@@ -129,6 +129,7 @@ private:
RuntimeProfile::Counter* _num_disks_accessed_counter = nullptr;
RuntimeProfile::Counter* _tablet_counter = nullptr;
+ RuntimeProfile::Counter* _key_range_counter = nullptr;
RuntimeProfile::Counter* _rows_pushed_cond_filtered_counter = nullptr;
RuntimeProfile::Counter* _reader_init_timer = nullptr;
RuntimeProfile::Counter* _scanner_init_timer = nullptr;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org