This is an automated email from the ASF dual-hosted git repository.
lide pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new db2c4d4738e [fix](api) make QueryDetailQueue.queryCapacity
configurable (#44990)
db2c4d4738e is described below
commit db2c4d4738ed1c673b198bf659a02b27055158b8
Author: camby <[email protected]>
AuthorDate: Thu Dec 5 18:48:36 2024 +0800
[fix](api) make QueryDetailQueue.queryCapacity configurable (#44990)
### What problem does this PR solve?
Problem:
very large SQLs make FE OOM, here make the capacity configurable.
In branch-2.1 we already removed the usage by pr:
https://github.com/apache/doris/pull/29999
---
fe/fe-common/src/main/java/org/apache/doris/common/Config.java | 6 ++++++
fe/fe-core/src/main/java/org/apache/doris/qe/QueryDetailQueue.java | 7 ++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index dd09db27d94..94c6ad4b0aa 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -2464,6 +2464,12 @@ public class Config extends ConfigBase {
})
public static int http_load_submitter_max_worker_threads = 2;
+ @ConfField(mutable = false, masterOnly = false, description = {
+ "缓存的最大Query数量,用于响应http请求/api/query_detail。",
+ "The max capacity of queries for query_detail api."
+ })
+ public static int http_query_detail_capacity = 10000;
+
@ConfField(mutable = true, masterOnly = true, description = {
"load label个数阈值,超过该个数后,对于已经完成导入作业或者任务,"
+ "其label会被删除,被删除的 label 可以被重用。 值为 -1 时,表示此阈值不生效。",
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/QueryDetailQueue.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/QueryDetailQueue.java
index 85f09798a33..b0d464df337 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/QueryDetailQueue.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/QueryDetailQueue.java
@@ -17,6 +17,8 @@
package org.apache.doris.qe;
+import org.apache.doris.common.Config;
+
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -31,9 +33,12 @@ import java.util.Map;
public class QueryDetailQueue {
private static Map<String, QueryDetail> runningQueries = Maps.newHashMap();
private static LinkedList<QueryDetail> totalQueries = new
LinkedList<QueryDetail>();
- private static int queryCapacity = 10000;
+ private static int queryCapacity = Config.http_query_detail_capacity;
public static synchronized void addOrUpdateQueryDetail(QueryDetail
queryDetail) {
+ if (queryCapacity <= 0) {
+ return;
+ }
if (runningQueries.get(queryDetail.getQueryId()) == null) {
if (queryDetail.getState() == QueryDetail.QueryMemState.RUNNING) {
runningQueries.put(queryDetail.getQueryId(), queryDetail);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]