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 <gabrielleeb...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org