[Enhancement](profile) support configure the number of query profile (#13421)

Signed-off-by: nextdreamblue <zxw520blue1@163.com>
This commit is contained in:
xueweizhang
2022-10-20 08:51:36 +08:00
committed by GitHub
parent 3a2d5db914
commit 697fa5f586
4 changed files with 30 additions and 3 deletions

View File

@ -1788,4 +1788,10 @@ public class Config extends ConfigBase {
@ConfField(mutable = false)
public static int statistic_task_scheduler_execution_interval_ms = 60 * 1000;
/**
* Max query profile num.
*/
@ConfField(mutable = true, masterOnly = false)
public static int max_query_profile_num = 100;
}

View File

@ -18,6 +18,7 @@
package org.apache.doris.common.util;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
import org.apache.doris.common.profile.MultiProfileTreeBuilder;
import org.apache.doris.common.profile.ProfileTreeBuilder;
import org.apache.doris.common.profile.ProfileTreeNode;
@ -53,7 +54,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
public class ProfileManager {
private static final Logger LOG = LogManager.getLogger(ProfileManager.class);
private static volatile ProfileManager INSTANCE = null;
private static final int ARRAY_SIZE = 100;
// private static final int ARRAY_SIZE = 100;
// private static final int TOTAL_LEN = 1000 * ARRAY_SIZE ;
public static final String QUERY_ID = "Query ID";
public static final String START_TIME = "Start Time";
@ -152,7 +153,7 @@ public class ProfileManager {
writeLock.lock();
try {
if (!queryIdDeque.contains(queryId)) {
if (queryIdDeque.size() >= ARRAY_SIZE) {
if (queryIdDeque.size() >= Config.max_query_profile_num) {
queryIdToProfileMap.remove(queryIdDeque.getFirst());
queryIdDeque.removeFirst();
}