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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]