This is an automated email from the ASF dual-hosted git repository.
zouxinyi 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 faa8a6425e6 [chore](sink) `enable_parallel_result_sink` default value
is changed to false (#43933)
faa8a6425e6 is described below
commit faa8a6425e692f9604e342800c6143b79ca9008e
Author: Xinyi Zou <[email protected]>
AuthorDate: Tue Nov 19 12:02:49 2024 +0800
[chore](sink) `enable_parallel_result_sink` default value is changed to
false (#43933)
### What problem does this PR solve?
Problem Summary:
For most queries, result sink will not become a performance bottleneck,
but the parallel result sink will increase the pressure of RPC between
fe and be.
---
.../main/java/org/apache/doris/qe/SessionVariable.java | 2 +-
.../java/org/apache/doris/utframe/AnotherDemoTest.java | 15 ++++++++++++++-
.../src/test/java/org/apache/doris/utframe/DemoTest.java | 15 ++++++++++++++-
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index 08400502037..eb0a669e05b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -1203,7 +1203,7 @@ public class SessionVariable implements Serializable,
Writable {
private boolean enableSyncRuntimeFilterSize = true;
@VariableMgr.VarAttr(name = ENABLE_PARALLEL_RESULT_SINK, needForward =
true, fuzzy = true)
- private boolean enableParallelResultSink = true;
+ private boolean enableParallelResultSink = false;
@VariableMgr.VarAttr(name = "sort_phase_num", fuzzy = true, needForward =
true,
description =
{"如设置为1,则只生成1阶段sort,设置为2,则只生成2阶段sort,设置其它值,优化器根据代价选择sort类型",
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
index 2da5a3cabd8..530fd15a9b6 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.FeConstants;
+import org.apache.doris.planner.ExchangeNode;
import org.apache.doris.planner.OlapScanNode;
import org.apache.doris.planner.PlanFragment;
import org.apache.doris.planner.Planner;
@@ -120,7 +121,8 @@ public class AnotherDemoTest {
}
// 5. query
// TODO: we can not process real query for now. So it has to be a
explain query
- String queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION) */ * from db1.tbl1";
+ String queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION, "
+ + "enable_parallel_result_sink=true) */ * from db1.tbl1";
StmtExecutor stmtExecutor = new StmtExecutor(ctx, queryStr);
stmtExecutor.execute();
Planner planner = stmtExecutor.planner();
@@ -129,5 +131,16 @@ public class AnotherDemoTest {
PlanFragment fragment = fragments.get(0);
Assert.assertTrue(fragment.getPlanRoot() instanceof OlapScanNode);
Assert.assertEquals(0, fragment.getChildren().size());
+
+ queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION, "
+ + "enable_parallel_result_sink=false) */ * from db1.tbl1";
+ stmtExecutor = new StmtExecutor(ctx, queryStr);
+ stmtExecutor.execute();
+ planner = stmtExecutor.planner();
+ fragments = planner.getFragments();
+ Assert.assertEquals(2, fragments.size());
+ fragment = fragments.get(0);
+ Assert.assertTrue(fragment.getPlanRoot() instanceof ExchangeNode);
+ Assert.assertEquals(1, fragment.getChildren().size());
}
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
index 289f6c9902d..f1f9fd7ef23 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.MaterializedIndexMeta;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.FeConstants;
+import org.apache.doris.planner.ExchangeNode;
import org.apache.doris.planner.OlapScanNode;
import org.apache.doris.planner.PlanFragment;
import org.apache.doris.planner.Planner;
@@ -108,7 +109,8 @@ public class DemoTest extends TestWithFeService {
// 7. query
// TODO: we can not process real query for now. So it has to be a
explain query
- String queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION) */ * from db1.tbl1";
+ String queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION, "
+ + "enable_parallel_result_sink=true) */ * from db1.tbl1";
StmtExecutor stmtExecutor = new StmtExecutor(connectContext, queryStr);
stmtExecutor.execute();
Planner planner = stmtExecutor.planner();
@@ -117,5 +119,16 @@ public class DemoTest extends TestWithFeService {
PlanFragment fragment = fragments.get(0);
Assertions.assertTrue(fragment.getPlanRoot() instanceof OlapScanNode);
Assertions.assertEquals(0, fragment.getChildren().size());
+
+ queryStr = "explain select /*+
SET_VAR(disable_nereids_rules=PRUNE_EMPTY_PARTITION, "
+ + "enable_parallel_result_sink=false) */ * from db1.tbl1";
+ stmtExecutor = new StmtExecutor(connectContext, queryStr);
+ stmtExecutor.execute();
+ planner = stmtExecutor.planner();
+ fragments = planner.getFragments();
+ Assertions.assertEquals(2, fragments.size());
+ fragment = fragments.get(0);
+ Assertions.assertTrue(fragment.getPlanRoot() instanceof ExchangeNode);
+ Assertions.assertEquals(1, fragment.getChildren().size());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]