Browse Source

Track ongoing search tasks (#107129)

John Verwolf 1 year ago
parent
commit
073048abf2

+ 5 - 0
docs/changelog/107129.yaml

@@ -0,0 +1,5 @@
+pr: 107129
+summary: Track ongoing search tasks
+area: Search
+type: enhancement
+issues: []

+ 16 - 2
server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java

@@ -151,6 +151,8 @@ public class ThreadPool implements ReportingService<ThreadPoolInfo>, Scheduler {
         entry(Names.SYSTEM_CRITICAL_WRITE, ThreadPoolType.FIXED)
     );
 
+    public static final double searchAutoscalingEWMA = 0.1;
+
     private final Map<String, ExecutorHolder> executors;
 
     private final ThreadPoolInfo threadPoolInfo;
@@ -222,7 +224,13 @@ public class ThreadPool implements ReportingService<ThreadPoolInfo>, Scheduler {
         builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16, TaskTrackingConfig.DO_NOT_TRACK));
         builders.put(
             Names.SEARCH,
-            new FixedExecutorBuilder(settings, Names.SEARCH, searchOrGetThreadPoolSize, 1000, TaskTrackingConfig.DEFAULT)
+            new FixedExecutorBuilder(
+                settings,
+                Names.SEARCH,
+                searchOrGetThreadPoolSize,
+                1000,
+                new TaskTrackingConfig(true, searchAutoscalingEWMA)
+            )
         );
         builders.put(
             Names.SEARCH_WORKER,
@@ -230,7 +238,13 @@ public class ThreadPool implements ReportingService<ThreadPoolInfo>, Scheduler {
         );
         builders.put(
             Names.SEARCH_COORDINATION,
-            new FixedExecutorBuilder(settings, Names.SEARCH_COORDINATION, halfProc, 1000, TaskTrackingConfig.DEFAULT)
+            new FixedExecutorBuilder(
+                settings,
+                Names.SEARCH_COORDINATION,
+                halfProc,
+                1000,
+                new TaskTrackingConfig(true, searchAutoscalingEWMA)
+            )
         );
         builders.put(
             Names.AUTO_COMPLETE,