yiguolei commented on code in PR #49884: URL: https://github.com/apache/doris/pull/49884#discussion_r2035062952
########## fe/fe-core/src/main/java/org/apache/doris/resource/workloadgroup/WorkloadGroupMgr.java: ########## @@ -670,4 +656,62 @@ public ProcResult fetchResult(UserIdentity currentUserIdentity) { return result; } } + + + public List<WorkloadGroup> getOldWorkloadGroup() { + List<WorkloadGroup> oldWgList = Lists.newArrayList(); + readLock(); + try { + for (Map.Entry<Pair<String, String>, WorkloadGroup> entry : nameToWorkloadGroup.entrySet()) { + if (entry.getKey().first == EMPTY_COMPUTE_GROUP) { + oldWgList.add(entry.getValue()); + } + } + } finally { + readUnlock(); + } + return oldWgList; + } + + public void dropOldWorkloadGroup(Set<String> cgSet, WorkloadGroup oldWg) { + writeLock(); + try { + Pair<String, String> oldKey = Pair.of(EMPTY_COMPUTE_GROUP, oldWg.getName()); + // it means old compute group has been dropped, just return; + if (!nameToWorkloadGroup.containsKey(oldKey)) { + LOG.info("old workload group {} has been dropped, skip it.", oldWg.getName()); + return; + } + // create new workload group for all compute group. + for (String computeGroup : cgSet) { + Pair<String, String> newKey = Pair.of(computeGroup, oldWg.getName()); + if (nameToWorkloadGroup.containsKey(newKey)) { + LOG.info("workload group {} already exists in compute group {}, skip it.", oldWg.getName(), + computeGroup); + continue; + } + Map<String, String> newProp = Maps.newHashMap(); + for (Map.Entry<String, String> entry : oldWg.getProperties().entrySet()) { + newProp.put(entry.getKey(), entry.getValue()); + } + newProp.put(WorkloadGroup.COMPUTE_GROUP, computeGroup); + WorkloadGroup newWg = new WorkloadGroup(Env.getCurrentEnv().getNextId(), oldWg.getName(), Review Comment: 这个函数,我们需要补充很多UT,风险很高 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org