This is an automated email from the ASF dual-hosted git repository. wangbo 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 bf4b4b9f7ef [Refactor]get workload group from compute group (#51465) bf4b4b9f7ef is described below commit bf4b4b9f7ef1392809b92db9775c5e8026f2bef8 Author: wangbo <wan...@selectdb.com> AuthorDate: Thu Jun 12 11:12:52 2025 +0800 [Refactor]get workload group from compute group (#51465) --- .../plans/commands/AlterWorkloadGroupCommand.java | 24 +++++++------ .../computegroup/AllBackendComputeGroup.java | 40 +++++++++++++++++----- .../resource/computegroup/CloudComputeGroup.java | 8 ----- .../doris/resource/computegroup/ComputeGroup.java | 19 +++++++--- .../resource/computegroup/MergedComputeGroup.java | 20 +++++++++-- .../resource/workloadgroup/WorkloadGroupMgr.java | 33 ++++++++++++------ .../apache/doris/planner/ResourceTagQueryTest.java | 9 ++--- .../apache/doris/resource/ComputeGroupTest.java | 22 ++++++------ .../workloadgroup/WorkloadGroupMgrTest.java | 22 ++++++------ 9 files changed, 124 insertions(+), 73 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterWorkloadGroupCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterWorkloadGroupCommand.java index 67ca191dd99..966457b2908 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterWorkloadGroupCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterWorkloadGroupCommand.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.trees.plans.commands; import org.apache.doris.catalog.Env; -import org.apache.doris.cloud.system.CloudSystemInfoService; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Config; import org.apache.doris.common.ErrorCode; @@ -30,6 +29,7 @@ import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor; import org.apache.doris.qe.ConnectContext; import org.apache.doris.qe.StmtExecutor; import org.apache.doris.resource.Tag; +import org.apache.doris.resource.computegroup.ComputeGroup; import org.apache.doris.resource.workloadgroup.WorkloadGroup; import org.apache.commons.lang3.StringUtils; @@ -78,20 +78,24 @@ public class AlterWorkloadGroupCommand extends AlterCommand { throw new AnalysisException(WorkloadGroup.COMPUTE_GROUP + " can not be set in property."); } - if (StringUtils.isEmpty(computeGroup)) { - computeGroup = Config.isCloudMode() ? Tag.VALUE_DEFAULT_COMPUTE_GROUP_NAME : Tag.DEFAULT_BACKEND_TAG.value; - } - + ComputeGroup cg = null; if (Config.isCloudMode()) { - String originStr = computeGroup; - computeGroup = ((CloudSystemInfoService) Env.getCurrentEnv().getClusterInfo()).getCloudClusterIdByName( - computeGroup); if (StringUtils.isEmpty(computeGroup)) { - throw new UserException("Can not find compute group " + originStr + "."); + computeGroup = Tag.VALUE_DEFAULT_COMPUTE_GROUP_NAME; + } + String cgName = computeGroup; + cg = Env.getCurrentEnv().getComputeGroupMgr().getComputeGroupByName(cgName); + if (cg == null) { + throw new UserException("Can not find compute group:" + cgName); + } + } else { + if (StringUtils.isEmpty(computeGroup)) { + computeGroup = Tag.DEFAULT_BACKEND_TAG.value; } + cg = Env.getCurrentEnv().getComputeGroupMgr().getComputeGroupByName(computeGroup); } - Env.getCurrentEnv().getWorkloadGroupMgr().alterWorkloadGroup(computeGroup, workloadGroupName, properties); + Env.getCurrentEnv().getWorkloadGroupMgr().alterWorkloadGroup(cg, workloadGroupName, properties); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/AllBackendComputeGroup.java b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/AllBackendComputeGroup.java index e1adff87555..1c02b1a3d24 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/AllBackendComputeGroup.java +++ b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/AllBackendComputeGroup.java @@ -18,13 +18,18 @@ package org.apache.doris.resource.computegroup; import org.apache.doris.common.Config; +import org.apache.doris.common.UserException; +import org.apache.doris.resource.workloadgroup.WorkloadGroup; +import org.apache.doris.resource.workloadgroup.WorkloadGroupKey; +import org.apache.doris.resource.workloadgroup.WorkloadGroupMgr; import org.apache.doris.system.Backend; import org.apache.doris.system.SystemInfoService; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Sets; +import com.google.common.collect.Lists; -import java.util.Set; +import java.util.Collection; +import java.util.List; public class AllBackendComputeGroup extends ComputeGroup { @@ -59,14 +64,31 @@ public class AllBackendComputeGroup extends ComputeGroup { } @Override - public Set<String> getNames() { - // in cloud mode, name is cluster id. - // in no-cloud mode, name is resource tag's name - Set<String> ret = Sets.newHashSet(); - for (Backend backend : systemInfoService.getAllClusterBackendsNoException().values()) { - ret.add(backend.getComputeGroup()); + public List<WorkloadGroup> getWorkloadGroup(String wgName, WorkloadGroupMgr wgMgr) throws UserException { + List<WorkloadGroup> wgList = Lists.newArrayList(); + Collection<Backend> beList = systemInfoService.getAllClusterBackendsNoException().values(); + if (beList.size() == 0) { + throw new RuntimeException("No backend available for Workload Group " + wgName); } - return ret; + for (Backend backend : beList) { + // in cloud mode, name is cluster id. + // in no-cloud mode, name is resource tag's name + String computeGroup = backend.getComputeGroup(); + WorkloadGroup wg = wgMgr.getWorkloadGroupByComputeGroup( + WorkloadGroupKey.get(computeGroup, wgName)); + if (wg == null) { + if (Config.isCloudMode()) { + throw new UserException( + "Can not find workload group " + wgName + " in compute croup " + + backend.getCloudClusterName()); + } else { + throw new UserException( + "Can not find workload group " + wgName + " in compute group " + computeGroup); + } + } + wgList.add(wg); + } + return wgList; } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/CloudComputeGroup.java b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/CloudComputeGroup.java index 2abee7716f2..8d2a670d170 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/CloudComputeGroup.java +++ b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/CloudComputeGroup.java @@ -20,10 +20,7 @@ package org.apache.doris.resource.computegroup; import org.apache.doris.cloud.system.CloudSystemInfoService; import org.apache.doris.system.Backend; -import com.google.common.collect.Sets; - import java.util.List; -import java.util.Set; public class CloudComputeGroup extends ComputeGroup { @@ -36,9 +33,4 @@ public class CloudComputeGroup extends ComputeGroup { return ((CloudSystemInfoService) (super.systemInfoService)).getBackendsByClusterName(name); } - @Override - public Set<String> getNames() { - return Sets.newHashSet(id); - } - } diff --git a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/ComputeGroup.java b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/ComputeGroup.java index 970c7a2a23c..c75f32285a1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/ComputeGroup.java +++ b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/ComputeGroup.java @@ -17,10 +17,14 @@ package org.apache.doris.resource.computegroup; +import org.apache.doris.common.UserException; +import org.apache.doris.resource.workloadgroup.WorkloadGroup; +import org.apache.doris.resource.workloadgroup.WorkloadGroupKey; +import org.apache.doris.resource.workloadgroup.WorkloadGroupMgr; import org.apache.doris.system.Backend; import org.apache.doris.system.SystemInfoService; -import com.google.common.collect.Sets; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -92,9 +96,16 @@ public class ComputeGroup { return (this == obj); } - // todo(wb) remove getNames, and get workload group from ComputeGroup - public Set<String> getNames() { - return Sets.newHashSet(name); + // use wgMgr as args is just for FE UT, otherwise get wgMgr from env is hard to mock + public List<WorkloadGroup> getWorkloadGroup(String wgName, WorkloadGroupMgr wgMgr) throws UserException { + List<WorkloadGroup> wgList = Lists.newArrayList(); + WorkloadGroup wg = wgMgr + .getWorkloadGroupByComputeGroup(WorkloadGroupKey.get(id, wgName)); + if (wg == null) { + throw new UserException("Can not find workload group " + wgName + " in compute croup " + name); + } + wgList.add(wg); + return wgList; } private void checkInvalidComputeGroup() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/MergedComputeGroup.java b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/MergedComputeGroup.java index ad5ea4aa95c..cc5647b3e8f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/MergedComputeGroup.java +++ b/fe/fe-core/src/main/java/org/apache/doris/resource/computegroup/MergedComputeGroup.java @@ -17,11 +17,17 @@ package org.apache.doris.resource.computegroup; +import org.apache.doris.common.UserException; +import org.apache.doris.resource.workloadgroup.WorkloadGroup; +import org.apache.doris.resource.workloadgroup.WorkloadGroupKey; +import org.apache.doris.resource.workloadgroup.WorkloadGroupMgr; import org.apache.doris.system.Backend; import org.apache.doris.system.SystemInfoService; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import java.util.List; import java.util.Set; public class MergedComputeGroup extends ComputeGroup { @@ -43,9 +49,17 @@ public class MergedComputeGroup extends ComputeGroup { return systemInfoService.getBackendListByComputeGroup(computeGroupSet); } - @Override - public Set<String> getNames() { - return computeGroupSet; + public List<WorkloadGroup> getWorkloadGroup(String wgName, WorkloadGroupMgr wgMgr) throws UserException { + List<WorkloadGroup> wgList = Lists.newArrayList(); + + for (String cgName : computeGroupSet) { + WorkloadGroup wg = wgMgr.getWorkloadGroupByComputeGroup(WorkloadGroupKey.get(cgName, wgName)); + if (wg == null) { + throw new UserException("Can not find workload group " + wgName + " in compute group " + cgName); + } + wgList.add(wg); + } + return wgList; } @Override 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 3c2bda93366..d187a7c75fd 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 @@ -41,6 +41,7 @@ import org.apache.doris.persist.gson.GsonPostProcessable; import org.apache.doris.persist.gson.GsonUtils; import org.apache.doris.qe.ConnectContext; import org.apache.doris.resource.Tag; +import org.apache.doris.resource.computegroup.ComputeGroup; import org.apache.doris.resource.computegroup.ComputeGroupMgr; import org.apache.doris.thrift.TPipelineWorkloadGroup; import org.apache.doris.thrift.TUserIdentity; @@ -176,17 +177,20 @@ public class WorkloadGroupMgr extends MasterDaemon implements Writable, GsonPost return wg; } + public WorkloadGroup getWorkloadGroupByComputeGroup(WorkloadGroupKey wgKey) { + return keyToWorkloadGroup.get(wgKey); + } + public List<TPipelineWorkloadGroup> getWorkloadGroup(ConnectContext context) throws UserException { String wgName = getWorkloadGroupNameAndCheckPriv(context); - Set<String> cgNames = context.getComputeGroup().getNames(); + ComputeGroup cg = context.getComputeGroup(); List<TPipelineWorkloadGroup> workloadGroups = Lists.newArrayList(); readLock(); try { - for (String cgName : cgNames) { - WorkloadGroup workloadGroup = getWorkloadGroupByComputeGroupUnlock( - WorkloadGroupKey.get(cgName, wgName)); - workloadGroups.add(workloadGroup.toThrift()); + List<WorkloadGroup> wgList = cg.getWorkloadGroup(wgName, this); + for (WorkloadGroup wg : wgList) { + workloadGroups.add(wg.toThrift()); } context.setWorkloadGroupName(wgName); } finally { @@ -370,17 +374,26 @@ public class WorkloadGroupMgr extends MasterDaemon implements Writable, GsonPost throw new DdlException("Unsupported alter statement"); } - public void alterWorkloadGroup(String computeGroup, String workloadGroupName, Map<String, String> properties) - throws DdlException { + public void alterWorkloadGroup(ComputeGroup cg, String workloadGroupName, Map<String, String> properties) + throws UserException { if (properties.size() == 0) { throw new DdlException("Alter workload group should contain at least one property"); } + String cgName = cg.getName(); WorkloadGroup newWorkloadGroup; - WorkloadGroupKey wgKey = WorkloadGroupKey.get(computeGroup, workloadGroupName); + WorkloadGroupKey wgKey = WorkloadGroupKey.get(cgName, workloadGroupName); writeLock(); try { - WorkloadGroup currentWorkloadGroup = getWorkloadGroupByComputeGroupUnlock(wgKey); + // get 0 idx here because there can only be one wg in cg with specify wg name. + List<WorkloadGroup> ret = cg.getWorkloadGroup(workloadGroupName, this); + if (ret.size() != 1) { + throw new RuntimeException( + "Unexpected error: find " + ret.size() + " workload group " + workloadGroupName + + " in compute group " + + cgName); + } + WorkloadGroup currentWorkloadGroup = ret.get(0); newWorkloadGroup = WorkloadGroup.copyAndUpdate(currentWorkloadGroup, properties); checkGlobalUnlock(newWorkloadGroup, currentWorkloadGroup); keyToWorkloadGroup.put(wgKey, newWorkloadGroup); @@ -389,7 +402,7 @@ public class WorkloadGroupMgr extends MasterDaemon implements Writable, GsonPost } finally { writeUnlock(); } - LOG.info("Alter workload group {} for compute group {} success: {}", newWorkloadGroup, computeGroup); + LOG.info("Alter workload group {} for compute group {} success: {}", newWorkloadGroup, cgName); } public void dropWorkloadGroup(DropWorkloadGroupStmt stmt) throws DdlException { diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java index 711b5c9b150..d4e678beaca 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java @@ -63,7 +63,6 @@ import org.junit.Test; import java.util.List; import java.util.Map; import java.util.Random; -import java.util.Set; import java.util.UUID; public class ResourceTagQueryTest { @@ -207,9 +206,8 @@ public class ResourceTagQueryTest { ComputeGroup cg2 = Env.getCurrentEnv().getAuth().getComputeGroup(Auth.ROOT_USER); Assert.assertTrue(cg2 instanceof MergedComputeGroup); MergedComputeGroup cg3 = (MergedComputeGroup) cg2; - Set<String> cgNameSet1 = cg3.getNames(); - Assert.assertTrue(cgNameSet1.size() == 1); - Assert.assertTrue(cgNameSet1.contains("default")); + String cg3Name = cg3.getName(); + Assert.assertTrue(cg3Name.contains("default")); // update connection context and query connectContext.setComputeGroup(cg2); @@ -224,8 +222,7 @@ public class ResourceTagQueryTest { ComputeGroup cg4 = Env.getCurrentEnv().getAuth().getComputeGroup(Auth.ROOT_USER); Assert.assertTrue(cg4 instanceof MergedComputeGroup); MergedComputeGroup cg5 = (MergedComputeGroup) cg4; - Assert.assertTrue(cg5.getNames().size() == 1); - Assert.assertTrue(cg5.getNames().contains("zone1")); + Assert.assertTrue(cg5.getName().contains("zone1")); // update connection context and query, it will failed because no zone1 backend connectContext.setComputeGroup(cg4); diff --git a/fe/fe-core/src/test/java/org/apache/doris/resource/ComputeGroupTest.java b/fe/fe-core/src/test/java/org/apache/doris/resource/ComputeGroupTest.java index 0fba519d55d..1e30938edc6 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/resource/ComputeGroupTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/resource/ComputeGroupTest.java @@ -159,14 +159,14 @@ public class ComputeGroupTest { auth.createUser(createNonAdminUser); ComputeGroup cg = auth.getComputeGroup(nonAdminUserStr); Assert.assertTrue(cg instanceof MergedComputeGroup); - Assert.assertTrue(((MergedComputeGroup) cg).getNames().contains(Tag.VALUE_DEFAULT_TAG)); + Assert.assertTrue(((MergedComputeGroup) cg).getName().contains(Tag.VALUE_DEFAULT_TAG)); // 2.1 get a non-admin user with resource tag String setPropStr = "set property for '" + nonAdminUserStr + "' 'resource_tags.location' = 'test_rg1';"; ExceptionChecker.expectThrowsNoException(() -> setProperty(setPropStr)); ComputeGroup cg2 = auth.getComputeGroup(nonAdminUserStr); Assert.assertTrue(cg2 instanceof MergedComputeGroup); - Assert.assertTrue(((MergedComputeGroup) cg2).getNames().contains("test_rg1")); + Assert.assertTrue(((MergedComputeGroup) cg2).getName().contains("test_rg1")); // 2.2 get a non-admin user with multi-resource tag String setPropStr2 = "set property for '" + nonAdminUserStr @@ -174,10 +174,9 @@ public class ComputeGroupTest { ExceptionChecker.expectThrowsNoException(() -> setProperty(setPropStr2)); ComputeGroup cg3 = auth.getComputeGroup(nonAdminUserStr); Assert.assertTrue(cg3 instanceof MergedComputeGroup); - Set<String> cgNameSet = ((MergedComputeGroup) cg3).getNames(); - Assert.assertTrue(cgNameSet.contains("test_rg1")); - Assert.assertTrue(cgNameSet.contains("test_rg2")); - Assert.assertTrue(cgNameSet.size() == 2); + String cgName3 = ((MergedComputeGroup) cg3).getName(); + Assert.assertTrue(cgName3.contains("test_rg1")); + Assert.assertTrue(cgName3.contains("test_rg2")); // 2.3 get a non-admin user with empty tag String setPropStr3 = "set property for '" + nonAdminUserStr @@ -185,9 +184,8 @@ public class ComputeGroupTest { ExceptionChecker.expectThrowsNoException(() -> setProperty(setPropStr3)); ComputeGroup cg4 = auth.getComputeGroup(nonAdminUserStr); Assert.assertTrue(cg4 instanceof MergedComputeGroup); - Set<String> cgNameSets = ((MergedComputeGroup) cg4).getNames(); - Assert.assertTrue(cgNameSets.size() == 1); - Assert.assertTrue(cgNameSets.contains("default")); + String cgName4 = ((MergedComputeGroup) cg4).getName(); + Assert.assertTrue(cgName4.contains("default")); } // 4 get an admin user without resource tag @@ -200,7 +198,7 @@ public class ComputeGroupTest { ExceptionChecker.expectThrowsNoException(() -> setProperty(setPropStr)); ComputeGroup cg2 = auth.getComputeGroup("root"); Assert.assertTrue(cg2 instanceof MergedComputeGroup); - Assert.assertTrue(((MergedComputeGroup) cg2).getNames().contains("test_rg2")); + Assert.assertTrue(((MergedComputeGroup) cg2).getName().contains("test_rg2")); // 4.2 get an admin user with an empty resource tag @@ -562,7 +560,7 @@ public class ComputeGroupTest { brokerLoadJob.setComputeGroup(); ComputeGroup cg = ConnectContext.get().getComputeGroupSafely(); Assert.assertTrue(cg instanceof MergedComputeGroup); - Assert.assertTrue(((MergedComputeGroup) cg).getNames().contains(tagName)); + Assert.assertTrue(((MergedComputeGroup) cg).getName().contains(tagName)); } } @@ -610,7 +608,7 @@ public class ComputeGroupTest { job.setComputeGroup(); ComputeGroup cg = ConnectContext.get().getComputeGroupSafely(); Assert.assertTrue(cg instanceof MergedComputeGroup); - Assert.assertTrue(((MergedComputeGroup) cg).getNames().contains("tag_rg_1")); + Assert.assertTrue(((MergedComputeGroup) cg).getName().contains("tag_rg_1")); } // 4 get a null job 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 dd543b16127..c30360c15c3 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 @@ -221,11 +221,11 @@ public class WorkloadGroupMgrTest { // 1 test get workload group by ConnectContext ConnectContext ctx = new ConnectContext(); // 1.1 not set wg, get normal - ctx.setComputeGroup(new ComputeGroup("1", cgName1, null)); + ctx.setComputeGroup(new ComputeGroup(cgName1, cgName1, null)); List<TPipelineWorkloadGroup> ret = workloadGroupMgr.getWorkloadGroup(ctx); Assert.assertTrue(ret.get(0).getId() == 100); - ctx.setComputeGroup(new ComputeGroup("2", cgName2, null)); + ctx.setComputeGroup(new ComputeGroup(cgName2, cgName2, null)); Assert.assertTrue(workloadGroupMgr.getWorkloadGroup(ctx).get(0).getId() == 101); @@ -262,7 +262,7 @@ public class WorkloadGroupMgrTest { try { workloadGroupMgr.getWorkloadGroup(ctx); Assert.fail(); - } catch (DdlException e) { + } catch (UserException e) { Assert.assertTrue(e.getMessage().contains("Can not find workload group")); } } @@ -276,15 +276,15 @@ public class WorkloadGroupMgrTest { Map<String, String> p0 = Maps.newHashMap(); try { - workloadGroupMgr.alterWorkloadGroup("", "", p0); + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup("", "", null), "", p0); } catch (DdlException e) { Assert.assertTrue(e.getMessage().contains("should contain at least one property")); } p0.put(WorkloadGroup.CPU_SHARE, "10"); try { - workloadGroupMgr.alterWorkloadGroup("", "abc", p0); - } catch (DdlException e) { + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup("", "", null), "abc", p0); + } catch (UserException e) { Assert.assertTrue(e.getMessage().contains("Can not find workload group")); } @@ -305,14 +305,14 @@ public class WorkloadGroupMgrTest { Map<String, String> prop2 = Maps.newHashMap(); prop2.put(WorkloadGroup.CPU_SHARE, "20"); try { - workloadGroupMgr.alterWorkloadGroup(cgName2, wgName2, prop2); + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup(cgName2, cgName2, null), wgName2, prop2); Assert.fail(); - } catch (DdlException e) { + } catch (UserException e) { Assert.assertTrue(e.getMessage().contains("Can not find workload group")); } // test alter success - workloadGroupMgr.alterWorkloadGroup(cgName1, wgName1, prop2); + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup(cgName1, cgName1, null), wgName1, prop2); WorkloadGroup wg = workloadGroupMgr.getNameToWorkloadGroup().get(WorkloadGroupKey.get(cgName1, wgName1)); Assert.assertTrue(Long.valueOf(wg.getProperties().get(WorkloadGroup.CPU_SHARE)) == 20); } @@ -546,7 +546,7 @@ public class WorkloadGroupMgrTest { Map<String, String> properties = Maps.newHashMap(); properties.put(prop, "90%"); try { - workloadGroupMgr.alterWorkloadGroup(cg1, "wg1", properties); + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup(cg1, cg1, null), "wg1", properties); } catch (DdlException e) { Assert.assertTrue(e.getMessage().contains("current sum val:110")); Assert.assertTrue(e.getMessage().contains("cg1")); @@ -558,7 +558,7 @@ public class WorkloadGroupMgrTest { { Map<String, String> properties = Maps.newHashMap(); properties.put(prop, "20%"); - workloadGroupMgr.alterWorkloadGroup(cg1, "wg1", properties); + workloadGroupMgr.alterWorkloadGroup(new ComputeGroup(cg1, cg1, null), "wg1", properties); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org