From 0e8ea5c78269d993ebb4bb6a0c89b1476e7ebdfd Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 23 Aug 2019 08:42:37 -0400 Subject: [PATCH 1/3] Remove processors setting The processors setting was deprecated in version 7.4.0 of Elasticsearch for removal in Elasticsearch 8.0.0. This commit removes the processors setting. --- .../migration/migrate_8_0/settings.asciidoc | 11 +++++++++-- .../common/settings/ClusterSettings.java | 1 - .../org/elasticsearch/common/settings/Setting.java | 9 --------- .../common/util/concurrent/EsExecutors.java | 11 +---------- .../common/util/concurrent/EsExecutorsTests.java | 12 +----------- 5 files changed, 11 insertions(+), 33 deletions(-) diff --git a/docs/reference/migration/migrate_8_0/settings.asciidoc b/docs/reference/migration/migrate_8_0/settings.asciidoc index 4eac119538dd7..2f8d837aed329 100644 --- a/docs/reference/migration/migrate_8_0/settings.asciidoc +++ b/docs/reference/migration/migrate_8_0/settings.asciidoc @@ -13,11 +13,18 @@ refuse to start if you have these settings in your configuration or cluster state. [float] -==== `processors` can no longer exceed the available number of processors +==== `processors` setting is replaced by `node.processors` + +To ensure that all settings are in a proper namespace, the `processors` setting +was previously deprecated in version 7.4.0 of Elasticsearch, and is removed in +version 8.0.0. Instead, use `node.processors`. + +[float] +==== `node.processors` can no longer exceed the available number of processors Previously it was possible to set the number of processors used to set the default sizes for the thread pools to be more than the number of available processors. As this leads to more context switches and more threads but without an increase in the number of physical CPUs on which to schedule these additional -threads, the `processors` setting is now bounded by the number of available +threads, the `node.processors` setting is now bounded by the number of available processors. diff --git a/server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java b/server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java index 999643e0baf0b..755a2a9c50a00 100644 --- a/server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java +++ b/server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java @@ -389,7 +389,6 @@ public void apply(Settings value, Settings current, Settings previous) { ClusterName.CLUSTER_NAME_SETTING, Client.CLIENT_TYPE_SETTING_S, ClusterModule.SHARDS_ALLOCATOR_TYPE_SETTING, - EsExecutors.PROCESSORS_SETTING, EsExecutors.NODE_PROCESSORS_SETTING, ThreadContext.DEFAULT_HEADERS_SETTING, Loggers.LOG_DEFAULT_LEVEL_SETTING, diff --git a/server/src/main/java/org/elasticsearch/common/settings/Setting.java b/server/src/main/java/org/elasticsearch/common/settings/Setting.java index 5cc9ed046916f..d4164b474de0b 100644 --- a/server/src/main/java/org/elasticsearch/common/settings/Setting.java +++ b/server/src/main/java/org/elasticsearch/common/settings/Setting.java @@ -1053,15 +1053,6 @@ public static Setting intSetting(String key, Setting fallbackS return new Setting<>(key, fallbackSetting, (s) -> parseInt(s, minValue, key), properties); } - public static Setting intSetting( - final String key, - final Setting fallbackSetting, - final int minValue, - final int maxValue, - final Property... properties) { - return new Setting<>(key, fallbackSetting, (s) -> parseInt(s, minValue, maxValue, key), properties); - } - public static Setting intSetting(String key, Setting fallbackSetting, int minValue, Validator validator, Property... properties) { return new Setting<>(new SimpleKey(key), fallbackSetting, fallbackSetting::getRaw, (s) -> parseInt(s, minValue, key),validator, diff --git a/server/src/main/java/org/elasticsearch/common/util/concurrent/EsExecutors.java b/server/src/main/java/org/elasticsearch/common/util/concurrent/EsExecutors.java index 91fcce3a1a596..dc2df158d3cd8 100644 --- a/server/src/main/java/org/elasticsearch/common/util/concurrent/EsExecutors.java +++ b/server/src/main/java/org/elasticsearch/common/util/concurrent/EsExecutors.java @@ -46,21 +46,12 @@ public class EsExecutors { - public static final Setting PROCESSORS_SETTING = Setting.intSetting( - "processors", - Runtime.getRuntime().availableProcessors(), - 1, - Runtime.getRuntime().availableProcessors(), - Property.Deprecated, - Property.NodeScope); - /** * Setting to manually set the number of available processors. This setting is used to adjust thread pool sizes per node. */ - // TODO: when removing "processors" setting, the default value is Runtime.getRuntime().availableProcessors() public static final Setting NODE_PROCESSORS_SETTING = Setting.intSetting( "node.processors", - PROCESSORS_SETTING, + Runtime.getRuntime().availableProcessors(), 1, Runtime.getRuntime().availableProcessors(), Property.NodeScope); diff --git a/server/src/test/java/org/elasticsearch/common/util/concurrent/EsExecutorsTests.java b/server/src/test/java/org/elasticsearch/common/util/concurrent/EsExecutorsTests.java index 64eedf2020f80..1fa67a4c3fa0a 100644 --- a/server/src/test/java/org/elasticsearch/common/util/concurrent/EsExecutorsTests.java +++ b/server/src/test/java/org/elasticsearch/common/util/concurrent/EsExecutorsTests.java @@ -392,14 +392,7 @@ public void testGetTasks() throws InterruptedException { } public void testNodeProcessorsBound() { - runProcessorsBoundTest(EsExecutors.NODE_PROCESSORS_SETTING); - } - - public void testProcessorsBound() { - runProcessorsBoundTest(EsExecutors.PROCESSORS_SETTING); - } - - private void runProcessorsBoundTest(final Setting processorsSetting) { + final Setting processorsSetting = EsExecutors.NODE_PROCESSORS_SETTING; final int available = Runtime.getRuntime().availableProcessors(); final int processors = randomIntBetween(available + 1, Integer.MAX_VALUE); final Settings settings = Settings.builder().put(processorsSetting.getKey(), processors).build(); @@ -412,9 +405,6 @@ private void runProcessorsBoundTest(final Setting processorsSetting) { processorsSetting.getKey(), available); assertThat(e, hasToString(containsString(expected))); - if (processorsSetting.getProperties().contains(Setting.Property.Deprecated)) { - assertSettingDeprecationsAndWarnings(new Setting[]{processorsSetting}); - } } } From 57c3c054e3819ceed082eaa6235a64b7f181b929 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 23 Aug 2019 10:21:25 -0400 Subject: [PATCH 2/3] Add tag --- docs/reference/migration/migrate_8_0/settings.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/migration/migrate_8_0/settings.asciidoc b/docs/reference/migration/migrate_8_0/settings.asciidoc index 2f8d837aed329..4cff9fc454b80 100644 --- a/docs/reference/migration/migrate_8_0/settings.asciidoc +++ b/docs/reference/migration/migrate_8_0/settings.asciidoc @@ -13,6 +13,7 @@ refuse to start if you have these settings in your configuration or cluster state. [float] +[[remove-processors] ==== `processors` setting is replaced by `node.processors` To ensure that all settings are in a proper namespace, the `processors` setting From 22204f033044f552d1165dfa4670c9fa20c1f541 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 23 Aug 2019 10:54:54 -0400 Subject: [PATCH 3/3] Fix typo --- docs/reference/migration/migrate_8_0/settings.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/migration/migrate_8_0/settings.asciidoc b/docs/reference/migration/migrate_8_0/settings.asciidoc index 4cff9fc454b80..11eb42b6290df 100644 --- a/docs/reference/migration/migrate_8_0/settings.asciidoc +++ b/docs/reference/migration/migrate_8_0/settings.asciidoc @@ -13,7 +13,7 @@ refuse to start if you have these settings in your configuration or cluster state. [float] -[[remove-processors] +[[remove-processors]] ==== `processors` setting is replaced by `node.processors` To ensure that all settings are in a proper namespace, the `processors` setting