[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.
This commit is contained in:
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
Reference in New Issue
Block a user