You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ga...@apache.org on 2023/04/14 01:59:12 UTC
[doris] branch master updated: [Opt](pipeline) opt the scanner ctx schedule in pipeline engine (#18545)
This is an automated email from the ASF dual-hosted git repository.
gabriellee 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 56d84739c1 [Opt](pipeline) opt the scanner ctx schedule in pipeline engine (#18545)
56d84739c1 is described below
commit 56d84739c102ff59a5b1cfccadae444023afc0c9
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Fri Apr 14 09:59:03 2023 +0800
[Opt](pipeline) opt the scanner ctx schedule in pipeline engine (#18545)
---
be/src/pipeline/exec/scan_operator.cpp | 3 ++-
be/src/vec/exec/scan/scanner_context.cpp | 1 -
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/be/src/pipeline/exec/scan_operator.cpp b/be/src/pipeline/exec/scan_operator.cpp
index 60864c6dd9..10a550a371 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -38,7 +38,8 @@ bool ScanOperator::can_read() {
// _scanner_ctx->no_schedule(): should schedule _scanner_ctx
return true;
} else {
- if (_node->_scanner_ctx->has_enough_space_in_blocks_queue()) {
+ if (_node->_scanner_ctx->get_num_running_scanners() == 0 &&
+ _node->_scanner_ctx->has_enough_space_in_blocks_queue()) {
_node->_scanner_ctx->reschedule_scanner_ctx();
}
return _node->ready_to_read(); // there are some blocks to process
diff --git a/be/src/vec/exec/scan/scanner_context.cpp b/be/src/vec/exec/scan/scanner_context.cpp
index f9b6ad4831..eb7b300724 100644
--- a/be/src/vec/exec/scan/scanner_context.cpp
+++ b/be/src/vec/exec/scan/scanner_context.cpp
@@ -305,7 +305,6 @@ void ScannerContext::push_back_scanner_and_reschedule(VScanner* scanner) {
std::unique_lock l(_scanners_lock);
_scanners.push_front(scanner);
}
-
std::lock_guard l(_transfer_lock);
if (has_enough_space_in_blocks_queue()) {
_num_scheduling_ctx++;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org