Skip to content

Commit 1d3bd46

Browse files
authored
Allow larger write queues for large nodes (#130061)
With the rise of larger CPU count nodes our current write queue size might be too conservative. Indexing pressure will still provide protect against out of memories.
1 parent f07de5a commit 1d3bd46

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ $$$search-throttled$$$`search_throttled`
3333
: For analyze requests. Thread pool type is `fixed` with a size of `1`, queue size of `16`.
3434

3535
`write`
36-
: For write operations and ingest processors. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `10000`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors).
36+
: For write operations and ingest processors. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `max(10000, (`[`# of allocated processors`](#node.processors)`* 750))`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors).
3737

3838
`write_coordination`
3939
: For bulk request coordination operations. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `10000`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors).

server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ public Map<String, ExecutorBuilder> getBuilders(Settings settings, int allocated
5454
settings,
5555
ThreadPool.Names.WRITE,
5656
allocatedProcessors,
57-
10000,
57+
// 10,000 for all nodes with 8 cores or fewer. Scale up once we have more than 8 cores.
58+
Math.max(allocatedProcessors * 750, 10000),
5859
new EsExecutors.TaskTrackingConfig(true, indexAutoscalingEWMA)
5960
)
6061
);

0 commit comments

Comments
 (0)