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