From d76358c875d0686974e847b172671664d0074e48 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Thu, 20 Feb 2020 11:11:06 +0100 Subject: [PATCH] Deprecate fixed_auto_queue_size thread pool type (#52399) Relates #52280 --- docs/reference/modules/threadpool.asciidoc | 25 +++++++++++-------- .../AutoQueueAdjustingExecutorBuilder.java | 13 ++++++---- ...utoQueueAdjustingExecutorBuilderTests.java | 6 +++++ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/docs/reference/modules/threadpool.asciidoc b/docs/reference/modules/threadpool.asciidoc index c69f736feb1..dbc84433698 100644 --- a/docs/reference/modules/threadpool.asciidoc +++ b/docs/reference/modules/threadpool.asciidoc @@ -20,8 +20,8 @@ There are several thread pools, but the important ones include: `1000`. [[search-throttled]]`search_throttled`:: - For count/search/suggest/get operations on `search_throttled indices`. - Thread pool type is `fixed_auto_queue_size` with a size of `1`, and initial + For count/search/suggest/get operations on `search_throttled indices`. + Thread pool type is `fixed_auto_queue_size` with a size of `1`, and initial queue_size of `100`. `get`:: @@ -30,7 +30,7 @@ There are several thread pools, but the important ones include: queue_size of `1000`. `analyze`:: - For analyze requests. Thread pool type is `fixed` with a size of `1`, queue + For analyze requests. Thread pool type is `fixed` with a size of `1`, queue size of `16`. `write`:: @@ -51,8 +51,8 @@ There are several thread pools, but the important ones include: keep-alive of `5m` and a max of `min(10, (# of available processors)/2)`. `listener`:: - Mainly for java client executing of action when listener threaded is set to - `true`. Thread pool type is `scaling` with a default max of + Mainly for java client executing of action when listener threaded is set to + `true`. Thread pool type is `scaling` with a default max of `min(10, (# of available processors)/2)`. `fetch_shard_started`:: @@ -125,6 +125,9 @@ thread_pool: experimental[] +deprecated[7.7.0,The experimental `fixed_auto_queue_size` thread pool type is +deprecated and will be removed in 8.0.] + The `fixed_auto_queue_size` thread pool holds a fixed size of threads to handle the requests with a bounded queue for pending requests that have no threads to service them. It's similar to the `fixed` threadpool, however, the `queue_size` @@ -202,13 +205,13 @@ processors: 2 There are a few use-cases for explicitly overriding the `processors` setting: -. If you are running multiple instances of {es} on the same host but want {es} -to size its thread pools as if it only has a fraction of the CPU, you should -override the `processors` setting to the desired fraction, for example, if +. If you are running multiple instances of {es} on the same host but want {es} +to size its thread pools as if it only has a fraction of the CPU, you should +override the `processors` setting to the desired fraction, for example, if you're running two instances of {es} on a 16-core machine, set `processors` to 8. -Note that this is an expert-level use case and there's a lot more involved -than just setting the `processors` setting as there are other considerations -like changing the number of garbage collector threads, pinning processes to +Note that this is an expert-level use case and there's a lot more involved +than just setting the `processors` setting as there are other considerations +like changing the number of garbage collector threads, pinning processes to cores, and so on. . Sometimes the number of processors is wrongly detected and in such cases explicitly setting the `processors` setting will workaround such diff --git a/server/src/main/java/org/elasticsearch/threadpool/AutoQueueAdjustingExecutorBuilder.java b/server/src/main/java/org/elasticsearch/threadpool/AutoQueueAdjustingExecutorBuilder.java index 28b4d8ef344..b4dc4084708 100644 --- a/server/src/main/java/org/elasticsearch/threadpool/AutoQueueAdjustingExecutorBuilder.java +++ b/server/src/main/java/org/elasticsearch/threadpool/AutoQueueAdjustingExecutorBuilder.java @@ -67,11 +67,13 @@ public final class AutoQueueAdjustingExecutorBuilder extends ExecutorBuilder tempMaxQueueSizeSetting = Setting.intSetting(maxSizeKey, maxQueueSize, Setting.Property.NodeScope); - Setting tempMinQueueSizeSetting = Setting.intSetting(minSizeKey, minQueueSize, Setting.Property.NodeScope); + Setting tempMaxQueueSizeSetting = Setting.intSetting(maxSizeKey, maxQueueSize, Setting.Property.NodeScope, + Setting.Property.Deprecated); + Setting tempMinQueueSizeSetting = Setting.intSetting(minSizeKey, minQueueSize, Setting.Property.NodeScope, + Setting.Property.Deprecated); this.minQueueSizeSetting = new Setting<>( minSizeKey, @@ -126,8 +128,9 @@ public final class AutoQueueAdjustingExecutorBuilder extends ExecutorBuilder