You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "Mryange (via GitHub)" <gi...@apache.org> on 2023/11/12 10:26:47 UTC

[PR] [only test] test pipelineX load [doris]

Mryange opened a new pull request, #26835:
URL: https://github.com/apache/doris/pull/26835

   ## Proposed changes
   
   Issue Number: close #xxx
   
   <!--Describe your changes.-->
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "Mryange (via GitHub)" <gi...@apache.org>.
Mryange commented on PR #26835:
URL: https://github.com/apache/doris/pull/26835#issuecomment-1807084601

   run buildall


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "Mryange (via GitHub)" <gi...@apache.org>.
Mryange commented on PR #26835:
URL: https://github.com/apache/doris/pull/26835#issuecomment-1807142879

   run p0 10


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #26835:
URL: https://github.com/apache/doris/pull/26835#issuecomment-1807121980

   (From new machine)TeamCity pipeline, clickbench performance test result:
    the sum of best hot time: 45.91 seconds
    stream load tsv:          553 seconds loaded 74807831229 Bytes, about 129 MB/s
    stream load json:         20 seconds loaded 2358488459 Bytes, about 112 MB/s
    stream load orc:          66 seconds loaded 1101869774 Bytes, about 15 MB/s
    stream load parquet:          32 seconds loaded 861443392 Bytes, about 25 MB/s
    insert into select:          28.8 seconds inserted 10000000 Rows, about 347K ops/s
    storage size: 17162331924 Bytes


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "doris-robot (via GitHub)" <gi...@apache.org>.
doris-robot commented on PR #26835:
URL: https://github.com/apache/doris/pull/26835#issuecomment-1807119161

   
   <details>
   <summary>TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'</summary>
   
   ```
   Tpch sf100 test result on commit bbd37e1e73015aef760d9055cad8a6d593de221b, data reload: false
   
   run tpch-sf100 query with default conf and session variables
   q1	5202	5096	5156	5096
   q2	364	191	200	191
   q3	2091	2017	2038	2017
   q4	1477	1437	1441	1437
   q5	4131	4173	4117	4117
   q6	260	137	137	137
   q7	2104	1603	1608	1603
   q8	2775	2731	2751	2731
   q9	10506	10251	10306	10251
   q10	3492	3565	3565	3565
   q11	377	258	246	246
   q12	451	308	299	299
   q13	4533	4160	4134	4134
   q14	326	299	285	285
   q15	673	564	560	560
   q16	703	623	591	591
   q17	1155	1091	1095	1091
   q18	7831	7479	7474	7474
   q19	1705	1718	1694	1694
   q20	581	369	353	353
   q21	4929	4568	4559	4559
   q22	549	423	443	423
   Total cold run time: 56215 ms
   Total hot run time: 52854 ms
   
   run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
   q1	5034	5012	4962	4962
   q2	386	231	236	231
   q3	4078	4031	3914	3914
   q4	2789	2753	2766	2753
   q5	6540	6450	6523	6450
   q6	243	126	131	126
   q7	3162	2724	2738	2724
   q8	4847	4720	4918	4720
   q9	17737	17545	17700	17545
   q10	4063	4121	4142	4121
   q11	722	619	676	619
   q12	1012	811	825	811
   q13	4302	3901	3907	3901
   q14	391	342	352	342
   q15	594	574	559	559
   q16	788	711	686	686
   q17	3880	3810	3855	3810
   q18	9385	9284	9349	9284
   q19	1799	1772	1777	1772
   q20	2407	2058	1999	1999
   q21	8826	8862	8666	8666
   q22	969	871	846	846
   Total cold run time: 83954 ms
   Total hot run time: 80841 ms
   ```
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #26835:
URL: https://github.com/apache/doris/pull/26835#discussion_r1390380815


##########
be/src/pipeline/exec/multi_cast_data_streamer.cpp:
##########
@@ -87,10 +92,39 @@
     for (int i = 0; i < _sender_pos_to_read.size(); ++i) {
         if (_sender_pos_to_read[i] == _multi_cast_blocks.end()) {
             _sender_pos_to_read[i] = end;
+            _set_ready_for_read(i);
         }
     }
     _eos = eos;
     return Status::OK();
 }
 
+void MultiCastDataStreamer::_set_ready_for_read(int sender_idx) {
+    if (!_has_dependencys) {
+        return;
+    }
+    auto* dep = _dependencys[sender_idx];
+    DCHECK(dep);
+    dep->set_ready_for_read();
+}
+
+void MultiCastDataStreamer::_set_ready_for_read() {
+    if (!_has_dependencys) {
+        return;
+    }
+    for (auto* dep : _dependencys) {
+        DCHECK(dep);
+        dep->set_ready_for_read();
+    }
+}
+
+void MultiCastDataStreamer::_block_reading(int sender_idx) {

Review Comment:
   warning: method '_block_reading' can be made const [readability-make-member-function-const]
   
   ```suggestion
   void MultiCastDataStreamer::_block_reading(int sender_idx) const {
   ```
   
   be/src/pipeline/exec/multi_cast_data_streamer.h:81:
   ```diff
   -     void _block_reading(int sender_idx);
   +     void _block_reading(int sender_idx) const;
   ```
   



##########
be/src/pipeline/exec/multi_cast_data_streamer.cpp:
##########
@@ -87,10 +92,39 @@ Status MultiCastDataStreamer::push(RuntimeState* state, doris::vectorized::Block
     for (int i = 0; i < _sender_pos_to_read.size(); ++i) {
         if (_sender_pos_to_read[i] == _multi_cast_blocks.end()) {
             _sender_pos_to_read[i] = end;
+            _set_ready_for_read(i);
         }
     }
     _eos = eos;
     return Status::OK();
 }
 
+void MultiCastDataStreamer::_set_ready_for_read(int sender_idx) {

Review Comment:
   warning: method '_set_ready_for_read' can be made const [readability-make-member-function-const]
   
   ```suggestion
   void MultiCastDataStreamer::_set_ready_for_read(int sender_idx) const {
   ```
   
   be/src/pipeline/exec/multi_cast_data_streamer.h:79:
   ```diff
   -     void _set_ready_for_read(int sender_idx);
   +     void _set_ready_for_read(int sender_idx) const;
   ```
   



##########
be/src/pipeline/pipeline_x/pipeline_x_task.h:
##########
@@ -70,56 +70,64 @@
     // must be call after all pipeline task is finish to release resource
     Status close(Status exec_status) override;
 
+    Dependency* read_blocked_dependency() {
+        for (auto* op_dep : _read_dependencies) {
+            _blocked_dep = op_dep->read_blocked_by();
+            if (_blocked_dep != nullptr) {
+                _blocked_dep->start_read_watcher();
+                return _blocked_dep;
+            }
+        }
+        return nullptr;
+    }
+
     bool source_can_read() override {
         if (_dry_run) {
             return true;
         }
-        for (auto* op_dep : _read_dependencies) {
-            auto* dep = op_dep->read_blocked_by();
-            if (dep != nullptr) {
-                dep->start_read_watcher();
-                push_blocked_task_to_dependency(dep);
-                return false;
-            }
+        return read_blocked_dependency() == nullptr;
+    }
+
+    Dependency* filter_blocked_dependency() {
+        _blocked_dep = _filter_dependency->filter_blocked_by();
+        if (_blocked_dep != nullptr) {
+            return _blocked_dep;
         }
-        return true;
+        return nullptr;
     }
 
     bool runtime_filters_are_ready_or_timeout() override {
-        auto* dep = _filter_dependency->filter_blocked_by();
-        if (dep != nullptr) {
-            push_blocked_task_to_dependency(dep);
-            return false;
-        }
-        return true;
+        return filter_blocked_dependency() == nullptr;
     }
 
-    bool sink_can_write() override {
-        auto* dep = _write_dependencies->write_blocked_by();
-        if (dep != nullptr) {
-            dep->start_write_watcher();
-            push_blocked_task_to_dependency(dep);
-            return false;
+    Dependency* write_blocked_dependency() {
+        _blocked_dep = _write_dependencies->write_blocked_by();
+        if (_blocked_dep != nullptr) {
+            static_cast<WriteDependency*>(_blocked_dep)->start_write_watcher();
+            return _blocked_dep;
         }
-        return true;
+        return nullptr;
     }
 
+    bool sink_can_write() override { return write_blocked_dependency() == nullptr; }
+
     Status finalize() override;
 
     std::string debug_string() override;
 
-    bool is_pending_finish() override {
+    Dependency* finish_blocked_dependency() {

Review Comment:
   warning: method 'finish_blocked_dependency' can be made static [readability-convert-member-functions-to-static]
   
   ```suggestion
       static Dependency* finish_blocked_dependency() {
   ```
   



##########
be/src/pipeline/pipeline_x/dependency.h:
##########
@@ -899,7 +895,30 @@
 public:
     ENABLE_FACTORY_CREATOR(LocalExchangeSharedState);
     std::vector<moodycamel::ConcurrentQueue<PartitionedBlock>> data_queue;
+    std::vector<Dependency*> source_dependencies;
     std::atomic<int> running_sink_operators = 0;
+    void add_running_sink_operators() { running_sink_operators++; }
+    void sub_running_sink_operators() {
+        running_sink_operators--;
+        if (running_sink_operators == 0) {
+            _set_ready_for_read();
+        }
+    }
+    void _set_ready_for_read() {
+        for (auto* dep : source_dependencies) {
+            DCHECK(dep);
+            dep->set_ready_for_read();
+        }
+    }
+    void set_dep_by_channel_id(Dependency* dep, int channel_id) {
+        source_dependencies[channel_id] = dep;
+        dep->block_reading();
+    }
+    void _set_ready_for_read(int channel_id) {

Review Comment:
   warning: method '_set_ready_for_read' can be made static [readability-convert-member-functions-to-static]
   
   ```suggestion
       static void _set_ready_for_read(int channel_id) {
   ```
   



##########
be/src/pipeline/exec/multi_cast_data_streamer.cpp:
##########
@@ -87,10 +92,39 @@
     for (int i = 0; i < _sender_pos_to_read.size(); ++i) {
         if (_sender_pos_to_read[i] == _multi_cast_blocks.end()) {
             _sender_pos_to_read[i] = end;
+            _set_ready_for_read(i);
         }
     }
     _eos = eos;
     return Status::OK();
 }
 
+void MultiCastDataStreamer::_set_ready_for_read(int sender_idx) {
+    if (!_has_dependencys) {
+        return;
+    }
+    auto* dep = _dependencys[sender_idx];
+    DCHECK(dep);
+    dep->set_ready_for_read();
+}
+
+void MultiCastDataStreamer::_set_ready_for_read() {

Review Comment:
   warning: method '_set_ready_for_read' can be made const [readability-make-member-function-const]
   
   ```suggestion
   void MultiCastDataStreamer::_set_ready_for_read() const {
   ```
   
   be/src/pipeline/exec/multi_cast_data_streamer.h:80:
   ```diff
   -     void _set_ready_for_read();
   +     void _set_ready_for_read() const;
   ```
   



##########
be/src/pipeline/pipeline_x/pipeline_x_task.h:
##########
@@ -70,56 +70,64 @@ class PipelineXTask : public PipelineTask {
     // must be call after all pipeline task is finish to release resource
     Status close(Status exec_status) override;
 
+    Dependency* read_blocked_dependency() {

Review Comment:
   warning: method 'read_blocked_dependency' can be made static [readability-convert-member-functions-to-static]
   
   ```suggestion
       static Dependency* read_blocked_dependency() {
   ```
   



##########
be/src/pipeline/pipeline_x/dependency.h:
##########
@@ -899,7 +895,30 @@ struct LocalExchangeSharedState {
 public:
     ENABLE_FACTORY_CREATOR(LocalExchangeSharedState);
     std::vector<moodycamel::ConcurrentQueue<PartitionedBlock>> data_queue;
+    std::vector<Dependency*> source_dependencies;
     std::atomic<int> running_sink_operators = 0;
+    void add_running_sink_operators() { running_sink_operators++; }
+    void sub_running_sink_operators() {
+        running_sink_operators--;
+        if (running_sink_operators == 0) {
+            _set_ready_for_read();
+        }
+    }
+    void _set_ready_for_read() {
+        for (auto* dep : source_dependencies) {
+            DCHECK(dep);
+            dep->set_ready_for_read();
+        }
+    }
+    void set_dep_by_channel_id(Dependency* dep, int channel_id) {

Review Comment:
   warning: method 'set_dep_by_channel_id' can be made static [readability-convert-member-functions-to-static]
   
   ```suggestion
       static void set_dep_by_channel_id(Dependency* dep, int channel_id) {
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [PR] [only test] test pipelineX load [doris]

Posted by "Mryange (via GitHub)" <gi...@apache.org>.
Mryange closed pull request #26835: [only test] test pipelineX load
URL: https://github.com/apache/doris/pull/26835


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org