You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by en...@apache.org on 2023/06/29 10:54:11 UTC
[doris] branch master updated: [feature](nereids)set nereids cbo weights by session var #21293
This is an automated email from the ASF dual-hosted git repository.
englefly 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 419f51ca2c [feature](nereids)set nereids cbo weights by session var #21293
419f51ca2c is described below
commit 419f51ca2c1f96ed58f5f74803772124060d4ece
Author: minghong <en...@gmail.com>
AuthorDate: Thu Jun 29 18:54:04 2023 +0800
[feature](nereids)set nereids cbo weights by session var #21293
good for tune cost model
---
.../org/apache/doris/nereids/cost/CostWeight.java | 8 ++---
.../java/org/apache/doris/qe/SessionVariable.java | 39 ++++++++++++++++++++++
2 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostWeight.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostWeight.java
index a0bb8c7a87..3c62f88574 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostWeight.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostWeight.java
@@ -34,9 +34,6 @@ import com.google.common.base.Preconditions;
* An example is tpch q15.
*/
public class CostWeight {
- static final double CPU_WEIGHT = 1;
- static final double MEMORY_WEIGHT = 1;
- static final double NETWORK_WEIGHT = 1.5;
static final double DELAY = 0.5;
final double cpuWeight;
@@ -69,7 +66,10 @@ public class CostWeight {
}
public static CostWeight get() {
- return new CostWeight(CPU_WEIGHT, MEMORY_WEIGHT, NETWORK_WEIGHT,
+ double cpuWeight = ConnectContext.get().getSessionVariable().getCboCpuWeight();
+ double memWeight = ConnectContext.get().getSessionVariable().getCboMemWeight();
+ double netWeight = ConnectContext.get().getSessionVariable().getCboNetWeight();
+ return new CostWeight(cpuWeight, memWeight, netWeight,
ConnectContext.get().getSessionVariable().getNereidsCboPenaltyFactor());
}
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 5025eb669b..44788aa2e4 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
@@ -350,6 +350,12 @@ public class SessionVariable implements Serializable, Writable {
public static final String EXTERNAL_TABLE_ANALYZE_PART_NUM = "external_table_analyze_part_num";
+ public static final String CBO_CPU_WEIGHT = "cbo_cpu_weight";
+
+ public static final String CBO_MEM_WEIGHT = "cbo_mem_weight";
+
+ public static final String CBO_NET_WEIGHT = "cbo_net_weight";
+
public static final List<String> DEBUG_VARIABLES = ImmutableList.of(
SKIP_DELETE_PREDICATE,
SKIP_DELETE_BITMAP,
@@ -669,6 +675,39 @@ public class SessionVariable implements Serializable, Writable {
@VariableMgr.VarAttr(name = BE_NUMBER_FOR_TEST)
private int beNumberForTest = -1;
+ public double getCboCpuWeight() {
+ return cboCpuWeight;
+ }
+
+ public void setCboCpuWeight(double cboCpuWeight) {
+ this.cboCpuWeight = cboCpuWeight;
+ }
+
+ public double getCboMemWeight() {
+ return cboMemWeight;
+ }
+
+ public void setCboMemWeight(double cboMemWeight) {
+ this.cboMemWeight = cboMemWeight;
+ }
+
+ public double getCboNetWeight() {
+ return cboNetWeight;
+ }
+
+ public void setCboNetWeight(double cboNetWeight) {
+ this.cboNetWeight = cboNetWeight;
+ }
+
+ @VariableMgr.VarAttr(name = CBO_CPU_WEIGHT)
+ private double cboCpuWeight = 1.0;
+
+ @VariableMgr.VarAttr(name = CBO_MEM_WEIGHT)
+ private double cboMemWeight = 1.0;
+
+ @VariableMgr.VarAttr(name = CBO_NET_WEIGHT)
+ private double cboNetWeight = 1.5;
+
@VariableMgr.VarAttr(name = DISABLE_JOIN_REORDER)
private boolean disableJoinReorder = false;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org