This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 7a1caf4718fb750742337fef8b509aa54cb124d8
Author: yiguolei <676222...@qq.com>
AuthorDate: Sun Feb 25 13:47:20 2024 +0800

    [refactor](wg) enable wg by default and init normal wg in constructor 
(#31373)
    
    should always enable workload group because other operations depend on it 
for example MTMV, and spill to disk.
    the normal workload group should be created in constructor.
---
 .../main/java/org/apache/doris/common/Config.java  |  2 +-
 .../main/java/org/apache/doris/catalog/Env.java    |  2 --
 .../resource/workloadgroup/WorkloadGroup.java      |  2 +-
 .../resource/workloadgroup/WorkloadGroupMgr.java   | 36 +++++-----------------
 .../workloadgroup/WorkloadGroupMgrTest.java        | 32 +++++++++++++------
 5 files changed, 31 insertions(+), 43 deletions(-)

diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java 
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index 48741df7bb3..541592f2095 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -1697,7 +1697,7 @@ public class Config extends ConfigBase {
 
     // enable_workload_group should be immutable and temporarily set to 
mutable during the development test phase
     @ConfField(mutable = true, varType = VariableAnnotation.EXPERIMENTAL)
-    public static boolean enable_workload_group = false;
+    public static boolean enable_workload_group = true;
 
     @ConfField(mutable = true)
     public static boolean enable_query_queue = true;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index c89e248549a..8c65a71dafa 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -1534,8 +1534,6 @@ public class Env {
         editLog.logMasterInfo(masterInfo);
         LOG.info("logMasterInfo:{}", masterInfo);
 
-        this.workloadGroupMgr.init();
-
         // for master, the 'isReady' is set behind.
         // but we are sure that all metadata is replayed if we get here.
         // so no need to check 'isReady' flag in this method
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroup.java
 
b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroup.java
index e624d29f7f1..0def933c8cf 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroup.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroup.java
@@ -90,7 +90,7 @@ public class WorkloadGroup implements Writable, 
GsonPostProcessable {
 
     private int cpuHardLimit = 0;
 
-    private WorkloadGroup(long id, String name, Map<String, String> 
properties) {
+    WorkloadGroup(long id, String name, Map<String, String> properties) {
         this(id, name, properties, 0);
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgr.java
 
b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgr.java
index 82151d07a8b..60d7e296ed3 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgr.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgr.java
@@ -135,6 +135,13 @@ public class WorkloadGroupMgr implements Writable, 
GsonPostProcessable {
     }
 
     public WorkloadGroupMgr() {
+        Map<String, String> properties = Maps.newHashMap();
+        properties.put(WorkloadGroup.CPU_SHARE, "1024");
+        properties.put(WorkloadGroup.MEMORY_LIMIT, "30%");
+        properties.put(WorkloadGroup.ENABLE_MEMORY_OVERCOMMIT, "true");
+        WorkloadGroup defaultWorkloadGroup = new WorkloadGroup(1, 
DEFAULT_GROUP_NAME, properties);
+        nameToWorkloadGroup.put(DEFAULT_GROUP_NAME, defaultWorkloadGroup);
+        idToWorkloadGroup.put(defaultWorkloadGroup.getId(), 
defaultWorkloadGroup);
     }
 
     public static WorkloadGroupMgr read(DataInput in) throws IOException {
@@ -158,12 +165,6 @@ public class WorkloadGroupMgr implements Writable, 
GsonPostProcessable {
         lock.writeLock().unlock();
     }
 
-    public void init() {
-        if (Config.enable_workload_group || Config.use_fuzzy_session_variable 
/* for github workflow */) {
-            checkAndCreateDefaultGroup();
-        }
-    }
-
     public List<TPipelineWorkloadGroup> getWorkloadGroup(ConnectContext 
context) throws UserException {
         String groupName = getWorkloadGroupNameAndCheckPriv(context);
         List<TPipelineWorkloadGroup> workloadGroups = Lists.newArrayList();
@@ -239,29 +240,6 @@ public class WorkloadGroupMgr implements Writable, 
GsonPostProcessable {
         return groupName;
     }
 
-    private void checkAndCreateDefaultGroup() {
-        WorkloadGroup defaultWorkloadGroup = null;
-        writeLock();
-        try {
-            if (nameToWorkloadGroup.containsKey(DEFAULT_GROUP_NAME)) {
-                return;
-            }
-            Map<String, String> properties = Maps.newHashMap();
-            properties.put(WorkloadGroup.CPU_SHARE, "1024");
-            properties.put(WorkloadGroup.MEMORY_LIMIT, "30%");
-            properties.put(WorkloadGroup.ENABLE_MEMORY_OVERCOMMIT, "true");
-            defaultWorkloadGroup = WorkloadGroup.create(DEFAULT_GROUP_NAME, 
properties);
-            nameToWorkloadGroup.put(DEFAULT_GROUP_NAME, defaultWorkloadGroup);
-            idToWorkloadGroup.put(defaultWorkloadGroup.getId(), 
defaultWorkloadGroup);
-            
Env.getCurrentEnv().getEditLog().logCreateWorkloadGroup(defaultWorkloadGroup);
-        } catch (DdlException e) {
-            LOG.warn("Create workload group " + DEFAULT_GROUP_NAME + " fail");
-        } finally {
-            writeUnlock();
-        }
-        LOG.info("Create workload group success: {}", defaultWorkloadGroup);
-    }
-
     public void createWorkloadGroup(CreateWorkloadGroupStmt stmt) throws 
DdlException {
         WorkloadGroup workloadGroup = 
WorkloadGroup.create(stmt.getWorkloadGroupName(), stmt.getProperties());
         String workloadGroupName = workloadGroup.getName();
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgrTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgrTest.java
index e4501fd6463..1a9fac1ea7a 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgrTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgrTest.java
@@ -120,13 +120,13 @@ public class WorkloadGroupMgrTest {
         workloadGroupMgr.createWorkloadGroup(stmt1);
 
         Map<String, WorkloadGroup> nameToRG = 
workloadGroupMgr.getNameToWorkloadGroup();
-        Assert.assertEquals(1, nameToRG.size());
+        Assert.assertEquals(2, nameToRG.size());
         Assert.assertTrue(nameToRG.containsKey(name1));
         WorkloadGroup group1 = nameToRG.get(name1);
         Assert.assertEquals(name1, group1.getName());
 
         Map<Long, WorkloadGroup> idToRG = 
workloadGroupMgr.getIdToWorkloadGroup();
-        Assert.assertEquals(1, idToRG.size());
+        Assert.assertEquals(2, idToRG.size());
         Assert.assertTrue(idToRG.containsKey(group1.getId()));
 
         Map<String, String> properties2 = Maps.newHashMap();
@@ -137,11 +137,11 @@ public class WorkloadGroupMgrTest {
         workloadGroupMgr.createWorkloadGroup(stmt2);
 
         nameToRG = workloadGroupMgr.getNameToWorkloadGroup();
-        Assert.assertEquals(2, nameToRG.size());
+        Assert.assertEquals(3, nameToRG.size());
         Assert.assertTrue(nameToRG.containsKey(name2));
         WorkloadGroup group2 = nameToRG.get(name2);
         idToRG = workloadGroupMgr.getIdToWorkloadGroup();
-        Assert.assertEquals(2, idToRG.size());
+        Assert.assertEquals(3, idToRG.size());
         Assert.assertTrue(idToRG.containsKey(group2.getId()));
 
         try {
@@ -153,8 +153,8 @@ public class WorkloadGroupMgrTest {
 
         CreateWorkloadGroupStmt stmt3 = new CreateWorkloadGroupStmt(true, 
name2, properties2);
         workloadGroupMgr.createWorkloadGroup(stmt3);
-        Assert.assertEquals(2, workloadGroupMgr.getIdToWorkloadGroup().size());
-        Assert.assertEquals(2, 
workloadGroupMgr.getNameToWorkloadGroup().size());
+        Assert.assertEquals(3, workloadGroupMgr.getIdToWorkloadGroup().size());
+        Assert.assertEquals(3, 
workloadGroupMgr.getNameToWorkloadGroup().size());
     }
 
     @Test
@@ -170,8 +170,14 @@ public class WorkloadGroupMgrTest {
         workloadGroupMgr.createWorkloadGroup(stmt1);
         context.getSessionVariable().setWorkloadGroup(name1);
         List<TopicInfo> tWorkloadGroups1 = 
workloadGroupMgr.getPublishTopicInfo();
-        Assert.assertEquals(1, tWorkloadGroups1.size());
-        TopicInfo tWorkloadGroup1 = tWorkloadGroups1.get(0);
+        Assert.assertEquals(2, tWorkloadGroups1.size());
+        TopicInfo tWorkloadGroup1 = null;
+        for (int i = 0; i < 2; ++i) {
+            if 
(tWorkloadGroups1.get(i).getWorkloadGroupInfo().getName().equals(name1)) {
+                tWorkloadGroup1 = tWorkloadGroups1.get(i);
+                break;
+            }
+        }
         Assert.assertEquals(name1, 
tWorkloadGroup1.getWorkloadGroupInfo().getName());
         Assert.assertTrue(tWorkloadGroup1.getWorkloadGroupInfo().getCpuShare() 
== 10);
 
@@ -243,8 +249,14 @@ public class WorkloadGroupMgrTest {
 
         context.getSessionVariable().setWorkloadGroup(name);
         List<TopicInfo> tWorkloadGroups = 
workloadGroupMgr.getPublishTopicInfo();
-        Assert.assertEquals(1, tWorkloadGroups.size());
-        TopicInfo tWorkloadGroup1 = tWorkloadGroups.get(0);
+        Assert.assertEquals(2, tWorkloadGroups.size());
+        TopicInfo tWorkloadGroup1 = null;
+        for (int i = 0; i < 2; ++i) {
+            if 
(tWorkloadGroups.get(i).getWorkloadGroupInfo().getName().equals(name)) {
+                tWorkloadGroup1 = tWorkloadGroups.get(i);
+                break;
+            }
+        }
         Assert.assertTrue(tWorkloadGroup1.getWorkloadGroupInfo().getCpuShare() 
== 5);
     }
 }


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

Reply via email to