From acfbf3922e532fb22144223acfaefa4e572e2da6 Mon Sep 17 00:00:00 2001 From: wangbo <506340561@qq.com> Date: Wed, 3 Apr 2024 14:15:25 +0800 Subject: [PATCH] Fix normal group can not be appended when image exits --- .../workloadgroup/WorkloadGroupMgr.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) 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 53269b15049985..28648ef25e2f32 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 @@ -65,6 +65,9 @@ public class WorkloadGroupMgr implements Writable, GsonPostProcessable { public static final String DEFAULT_GROUP_NAME = "normal"; + + public static final Long DEFAULT_GROUP_ID = 1L; + public static final ImmutableList WORKLOAD_GROUP_PROC_NODE_TITLE_NAMES = new ImmutableList.Builder() .add("Id").add("Name").add(WorkloadGroup.CPU_SHARE).add(WorkloadGroup.MEMORY_LIMIT) .add(WorkloadGroup.ENABLE_MEMORY_OVERCOMMIT) @@ -137,20 +140,28 @@ public void resetQueryQueueProp() { } public WorkloadGroupMgr() { + // if no fe image exist, we should append internal group here. + appendInternalWorkloadGroup(); + } + + public static WorkloadGroupMgr read(DataInput in) throws IOException { + String json = Text.readString(in); + WorkloadGroupMgr ret = GsonUtils.GSON.fromJson(json, WorkloadGroupMgr.class); + ret.appendInternalWorkloadGroup(); + return ret; + } + + public void appendInternalWorkloadGroup() { Map 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); + WorkloadGroup defaultWorkloadGroup = new WorkloadGroup(DEFAULT_GROUP_ID.longValue(), DEFAULT_GROUP_NAME, + properties); nameToWorkloadGroup.put(DEFAULT_GROUP_NAME, defaultWorkloadGroup); idToWorkloadGroup.put(defaultWorkloadGroup.getId(), defaultWorkloadGroup); } - public static WorkloadGroupMgr read(DataInput in) throws IOException { - String json = Text.readString(in); - return GsonUtils.GSON.fromJson(json, WorkloadGroupMgr.class); - } - private void readLock() { lock.readLock().lock(); }