From 5d767e449ab59e3248c8d7aaa0fcca38e29a265b Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 19 Apr 2018 16:59:58 -0400 Subject: [PATCH] Remove bulk fallback for write thread pool (#29609) The name of the bulk thread pool was renamed to "write" with "bulk" as a fallback name. This change was made in 6.x for BWC reasons yet in 7.0.0 we are removing this fallback. This commit removes this fallback for the write thread pool. --- docs/CHANGELOG.asciidoc | 3 + .../migration/migrate_7_0/settings.asciidoc | 13 ++- .../threadpool/FixedExecutorBuilder.java | 100 ++---------------- .../elasticsearch/threadpool/ThreadPool.java | 2 +- .../action/RejectionActionIT.java | 4 +- 5 files changed, 27 insertions(+), 95 deletions(-) diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index 0654801f8cb26..b1cb9c3a4f57a 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -9,6 +9,9 @@ === Breaking Changes +<> ({pull}29609[#29609]) + === Breaking Java Changes === Deprecations diff --git a/docs/reference/migration/migrate_7_0/settings.asciidoc b/docs/reference/migration/migrate_7_0/settings.asciidoc index 1556056337b37..b09cecf5a48dc 100644 --- a/docs/reference/migration/migrate_7_0/settings.asciidoc +++ b/docs/reference/migration/migrate_7_0/settings.asciidoc @@ -13,4 +13,15 @@ requests with a single-document payload. This means that these requests are executed on the bulk thread pool. As such, the indexing thread pool is no longer needed and has been removed. As such, the settings - `thread_pool.index.size` and `thread_pool.index.queue_size` have been removed. \ No newline at end of file + `thread_pool.index.size` and `thread_pool.index.queue_size` have been removed. + +[[write-thread-pool-fallback]] +==== Write thread pool fallback + +* The bulk thread pool was replaced by the write thread pool in 6.3.0. However, + for backwards compatibility reasons the name `bulk` was still usable as fallback + settings `thread_pool.bulk.size` and `thread_pool.bulk.queue_size` for + `thread_pool.write.size` and `thread_pool.write.queue_size`, respectively, and + the system property `es.thread_pool.write.use_bulk_as_display_name` was + available to keep the display output in APIs as `bulk` instead of `write`. + These fallback settings and this system property have been removed. diff --git a/server/src/main/java/org/elasticsearch/threadpool/FixedExecutorBuilder.java b/server/src/main/java/org/elasticsearch/threadpool/FixedExecutorBuilder.java index 5fa10c0bfe85d..43da1044c6bd0 100644 --- a/server/src/main/java/org/elasticsearch/threadpool/FixedExecutorBuilder.java +++ b/server/src/main/java/org/elasticsearch/threadpool/FixedExecutorBuilder.java @@ -19,7 +19,6 @@ package org.elasticsearch.threadpool; -import org.elasticsearch.common.Booleans; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.SizeValue; @@ -39,9 +38,7 @@ public final class FixedExecutorBuilder extends ExecutorBuilder { private final Setting sizeSetting; - private final Setting fallbackSizeSetting; private final Setting queueSizeSetting; - private final Setting fallbackQueueSizeSetting; /** * Construct a fixed executor builder; the settings will have the key prefix "thread_pool." followed by the executor name. @@ -55,19 +52,6 @@ public final class FixedExecutorBuilder extends ExecutorBuilder( + sizeKey, + s -> Integer.toString(size), + s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), + Setting.Property.NodeScope); final String queueSizeKey = settingsKey(prefix, "queue_size"); - if (fallbackName == null) { - assert fallbackPrefix == null; - final Setting.Property[] properties = {Setting.Property.NodeScope}; - this.sizeSetting = sizeSetting(settings, name, size, prefix, properties); - this.fallbackSizeSetting = null; - this.queueSizeSetting = queueSizeSetting(prefix, queueSize, properties); - this.fallbackQueueSizeSetting = null; - } else { - assert fallbackPrefix != null; - final Setting.Property[] properties = { Setting.Property.NodeScope }; - final Setting.Property[] fallbackProperties = { Setting.Property.NodeScope, Setting.Property.Deprecated }; - final Setting fallbackSizeSetting = sizeSetting(settings, fallbackName, size, fallbackPrefix, fallbackProperties); - this.sizeSetting = - new Setting<>( - new Setting.SimpleKey(sizeKey), - fallbackSizeSetting, - s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), - properties); - this.fallbackSizeSetting = fallbackSizeSetting; - final Setting fallbackQueueSizeSetting = queueSizeSetting(fallbackPrefix, queueSize, fallbackProperties); - this.queueSizeSetting = - new Setting<>( - new Setting.SimpleKey(queueSizeKey), - fallbackQueueSizeSetting, - s -> Setting.parseInt(s, Integer.MIN_VALUE, queueSizeKey), - properties); - this.fallbackQueueSizeSetting = fallbackQueueSizeSetting; - } - } - - private Setting sizeSetting( - final Settings settings, final String name, final int size, final String prefix, final Setting.Property[] properties) { - final String sizeKey = settingsKey(prefix, "size"); - return new Setting<>( - sizeKey, - s -> Integer.toString(size), - s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), - properties); - } - - private Setting queueSizeSetting(final String prefix, final int queueSize, final Setting.Property[] properties) { - return Setting.intSetting(settingsKey(prefix, "queue_size"), queueSize, properties); + this.queueSizeSetting = Setting.intSetting(queueSizeKey, queueSize, Setting.Property.NodeScope); } @Override public List> getRegisteredSettings() { - if (fallbackSizeSetting == null && fallbackQueueSizeSetting == null) { - return Arrays.asList(sizeSetting, queueSizeSetting); - } else { - assert fallbackSizeSetting != null && fallbackQueueSizeSetting != null; - return Arrays.asList(sizeSetting, fallbackSizeSetting, queueSizeSetting, fallbackQueueSizeSetting); - } + return Arrays.asList(sizeSetting, queueSizeSetting); } @Override @@ -170,14 +94,8 @@ ThreadPool.ExecutorHolder build(final FixedExecutorSettings settings, final Thre final ThreadFactory threadFactory = EsExecutors.daemonThreadFactory(EsExecutors.threadName(settings.nodeName, name())); final ExecutorService executor = EsExecutors.newFixed(settings.nodeName + "/" + name(), size, queueSize, threadFactory, threadContext); - final String name; - if ("write".equals(name()) && Booleans.parseBoolean(System.getProperty("es.thread_pool.write.use_bulk_as_display_name", "false"))) { - name = "bulk"; - } else { - name = name(); - } final ThreadPool.Info info = - new ThreadPool.Info(name, ThreadPool.ThreadPoolType.FIXED, size, size, null, queueSize < 0 ? null : new SizeValue(queueSize)); + new ThreadPool.Info(name(), ThreadPool.ThreadPoolType.FIXED, size, size, null, queueSize < 0 ? null : new SizeValue(queueSize)); return new ThreadPool.ExecutorHolder(executor, info); } diff --git a/server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java b/server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java index b1c6f8d07d520..51a4adec8d16d 100644 --- a/server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java +++ b/server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java @@ -170,7 +170,7 @@ public ThreadPool(final Settings settings, final ExecutorBuilder... customBui final int halfProcMaxAt10 = halfNumberOfProcessorsMaxTen(availableProcessors); final int genericThreadPoolMax = boundedBy(4 * availableProcessors, 128, 512); builders.put(Names.GENERIC, new ScalingExecutorBuilder(Names.GENERIC, 4, genericThreadPoolMax, TimeValue.timeValueSeconds(30))); - builders.put(Names.WRITE, new FixedExecutorBuilder(settings, Names.WRITE, "bulk", availableProcessors, 200)); + builders.put(Names.WRITE, new FixedExecutorBuilder(settings, Names.WRITE, availableProcessors, 200)); builders.put(Names.GET, new FixedExecutorBuilder(settings, Names.GET, availableProcessors, 1000)); builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16)); builders.put(Names.SEARCH, new AutoQueueAdjustingExecutorBuilder(settings, diff --git a/server/src/test/java/org/elasticsearch/action/RejectionActionIT.java b/server/src/test/java/org/elasticsearch/action/RejectionActionIT.java index a4cdc3408fb27..b45449425cb24 100644 --- a/server/src/test/java/org/elasticsearch/action/RejectionActionIT.java +++ b/server/src/test/java/org/elasticsearch/action/RejectionActionIT.java @@ -45,8 +45,8 @@ protected Settings nodeSettings(int nodeOrdinal) { .put(super.nodeSettings(nodeOrdinal)) .put("thread_pool.search.size", 1) .put("thread_pool.search.queue_size", 1) - .put("thread_pool.bulk.size", 1) - .put("thread_pool.bulk.queue_size", 1) + .put("thread_pool.write.size", 1) + .put("thread_pool.write.queue_size", 1) .put("thread_pool.get.size", 1) .put("thread_pool.get.queue_size", 1) .build();