Skip to content

Commit 05e42a3

Browse files
authored
Remove search throttled index setting and thread pool (elastic#124874)
Frozen indices, the freeze index API and the private index.frozen setting have been removed with elastic#120539. There is also a search throttled thread pool that can now be removed, as well as a private search.throttled index settings that is no longer used as it could only be set internally by freezing an index. While the index setting is private and can be removed, as it should no longer be present in any index on 9.0+ indices, the thread pool settings associated to the removed pool are still accepted as no-op in case users have customized them and are upgrading without removing these. These will also trigger a deprecating warning. This change also removes the search.throttled related output from the thread pool section of the cluster info API.
1 parent f781748 commit 05e42a3

File tree

19 files changed

+10
-146
lines changed

19 files changed

+10
-146
lines changed

rest-api-spec/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,5 @@ tasks.named("yamlRestCompatTestTransform").configure ({ task ->
108108
"cluster.desired_nodes/10_basic/Test update desired nodes with node_version generates a warning",
109109
"node_version warning is removed in 9.0"
110110
)
111+
task.skipTest("cluster.info/30_info_thread_pool/Cluster HTTP Info", "The search_throttled thread pool has been removed")
111112
})

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/cluster.info/30_info_thread_pool.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,6 @@
9595
- gte: { thread_pool.search_coordination.largest: 0 }
9696
- gte: { thread_pool.search_coordination.completed: 0 }
9797

98-
- gte: { thread_pool.search_throttled.threads: 0 }
99-
- gte: { thread_pool.search_throttled.queue: 0 }
100-
- gte: { thread_pool.search_throttled.active: 0 }
101-
- gte: { thread_pool.search_throttled.rejected: 0 }
102-
- gte: { thread_pool.search_throttled.largest: 0 }
103-
- gte: { thread_pool.search_throttled.completed: 0 }
104-
10598
- gte: { thread_pool.snapshot.threads: 0 }
10699
- gte: { thread_pool.snapshot.queue: 0 }
107100
- gte: { thread_pool.snapshot.active: 0 }

server/src/main/java/org/elasticsearch/action/explain/TransportExplainAction.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444

4545
import java.io.IOException;
4646
import java.util.Set;
47-
import java.util.concurrent.Executor;
4847
import java.util.function.LongSupplier;
4948

5049
/**
@@ -182,12 +181,4 @@ protected ShardIterator shards(ClusterState state, InternalRequest request) {
182181
request.request().preference()
183182
);
184183
}
185-
186-
@Override
187-
protected Executor getExecutor(ExplainRequest request, ShardId shardId) {
188-
IndexService indexService = searchService.getIndicesService().indexServiceSafe(shardId.getIndex());
189-
return indexService.getIndexSettings().isSearchThrottled()
190-
? threadPool.executor(ThreadPool.Names.SEARCH_THROTTLED)
191-
: super.getExecutor(request, shardId);
192-
}
193184
}

server/src/main/java/org/elasticsearch/action/get/TransportGetAction.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,6 @@ protected Executor getExecutor(GetRequest request, ShardId shardId) {
166166
final ClusterState clusterState = clusterService.state();
167167
if (clusterState.metadata().getIndexSafe(shardId.getIndex()).isSystem()) {
168168
return threadPool.executor(executorSelector.executorForGet(shardId.getIndexName()));
169-
} else if (indicesService.indexServiceSafe(shardId.getIndex()).getIndexSettings().isSearchThrottled()) {
170-
return threadPool.executor(ThreadPool.Names.SEARCH_THROTTLED);
171169
} else {
172170
return super.getExecutor(request, shardId);
173171
}

server/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,6 @@ protected Executor getExecutor(MultiGetShardRequest request, ShardId shardId) {
155155
final ClusterState clusterState = clusterService.state();
156156
if (clusterState.metadata().index(shardId.getIndex()).isSystem()) {
157157
return threadPool.executor(executorSelector.executorForGet(shardId.getIndexName()));
158-
} else if (indicesService.indexServiceSafe(shardId.getIndex()).getIndexSettings().isSearchThrottled()) {
159-
return threadPool.executor(ThreadPool.Names.SEARCH_THROTTLED);
160158
} else {
161159
return super.getExecutor(request, shardId);
162160
}

server/src/main/java/org/elasticsearch/action/termvectors/TransportShardMultiTermsVectorAction.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
import org.elasticsearch.threadpool.ThreadPool;
2828
import org.elasticsearch.transport.TransportService;
2929

30-
import java.util.concurrent.Executor;
31-
3230
import static org.elasticsearch.core.Strings.format;
3331

3432
public class TransportShardMultiTermsVectorAction extends TransportSingleShardAction<
@@ -109,12 +107,4 @@ protected MultiTermVectorsShardResponse shardOperation(MultiTermVectorsShardRequ
109107

110108
return response;
111109
}
112-
113-
@Override
114-
protected Executor getExecutor(MultiTermVectorsShardRequest request, ShardId shardId) {
115-
IndexService indexService = indicesService.indexServiceSafe(shardId.getIndex());
116-
return indexService.getIndexSettings().isSearchThrottled()
117-
? threadPool.executor(ThreadPool.Names.SEARCH_THROTTLED)
118-
: super.getExecutor(request, shardId);
119-
}
120110
}

server/src/main/java/org/elasticsearch/action/termvectors/TransportTermVectorsAction.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.elasticsearch.transport.TransportService;
2929

3030
import java.io.IOException;
31-
import java.util.concurrent.Executor;
3231

3332
/**
3433
* Performs the get operation.
@@ -125,12 +124,4 @@ protected TermVectorsResponse shardOperation(TermVectorsRequest request, ShardId
125124
protected Writeable.Reader<TermVectorsResponse> getResponseReader() {
126125
return TermVectorsResponse::new;
127126
}
128-
129-
@Override
130-
protected Executor getExecutor(TermVectorsRequest request, ShardId shardId) {
131-
IndexService indexService = indicesService.indexServiceSafe(shardId.getIndex());
132-
return indexService.getIndexSettings().isSearchThrottled()
133-
? threadPool.executor(ThreadPool.Names.SEARCH_THROTTLED)
134-
: super.getExecutor(request, shardId);
135-
}
136127
}

server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ public final class IndexScopedSettings extends AbstractScopedSettings {
150150
IndexSettings.INDEX_TRANSLOG_RETENTION_AGE_SETTING,
151151
IndexSettings.INDEX_TRANSLOG_RETENTION_SIZE_SETTING,
152152
IndexSettings.INDEX_SEARCH_IDLE_AFTER,
153-
IndexSettings.INDEX_SEARCH_THROTTLED,
154153
IndexFieldDataService.INDEX_FIELDDATA_CACHE_KEY,
155154
IndexSettings.IGNORE_ABOVE_SETTING,
156155
FieldMapper.IGNORE_MALFORMED_SETTING,

server/src/main/java/org/elasticsearch/index/IndexSettings.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -536,17 +536,6 @@ public Iterator<Setting<?>> settings() {
536536
Property.ServerlessPublic
537537
);
538538

539-
/**
540-
* Marks an index to be searched throttled. This means that never more than one shard of such an index will be searched concurrently
541-
*/
542-
public static final Setting<Boolean> INDEX_SEARCH_THROTTLED = Setting.boolSetting(
543-
"index.search.throttled",
544-
false,
545-
Property.IndexScope,
546-
Property.PrivateIndex,
547-
Property.Dynamic
548-
);
549-
550539
/**
551540
* Determines a balance between file-based and operations-based peer recoveries. The number of operations that will be used in an
552541
* operations-based peer recovery is limited to this proportion of the total number of documents in the shard (including deleted
@@ -891,7 +880,6 @@ private void setRetentionLeaseMillis(final TimeValue retentionLease) {
891880
private volatile int maxTermsCount;
892881
private volatile String defaultPipeline;
893882
private volatile String requiredPipeline;
894-
private volatile boolean searchThrottled;
895883
private volatile long mappingNestedFieldsLimit;
896884
private volatile long mappingNestedDocsLimit;
897885
private volatile long mappingTotalFieldsLimit;
@@ -1019,7 +1007,6 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti
10191007
this.timestampBounds = TimestampBounds.updateEndTime(this.timestampBounds, endTime);
10201008
});
10211009
}
1022-
this.searchThrottled = INDEX_SEARCH_THROTTLED.get(settings);
10231010
this.queryStringLenient = QUERY_STRING_LENIENT_SETTING.get(settings);
10241011
this.queryStringAnalyzeWildcard = QUERY_STRING_ANALYZE_WILDCARD.get(nodeSettings);
10251012
this.queryStringAllowLeadingWildcard = QUERY_STRING_ALLOW_LEADING_WILDCARD.get(nodeSettings);
@@ -1175,7 +1162,6 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti
11751162
scopedSettings.addSettingsUpdateConsumer(DEFAULT_PIPELINE, this::setDefaultPipeline);
11761163
scopedSettings.addSettingsUpdateConsumer(FINAL_PIPELINE, this::setRequiredPipeline);
11771164
scopedSettings.addSettingsUpdateConsumer(INDEX_SOFT_DELETES_RETENTION_OPERATIONS_SETTING, this::setSoftDeleteRetentionOperations);
1178-
scopedSettings.addSettingsUpdateConsumer(INDEX_SEARCH_THROTTLED, this::setSearchThrottled);
11791165
scopedSettings.addSettingsUpdateConsumer(INDEX_SOFT_DELETES_RETENTION_LEASE_PERIOD_SETTING, this::setRetentionLeaseMillis);
11801166
scopedSettings.addSettingsUpdateConsumer(INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING, this::setMappingNestedFieldsLimit);
11811167
scopedSettings.addSettingsUpdateConsumer(INDEX_MAPPING_NESTED_DOCS_LIMIT_SETTING, this::setMappingNestedDocsLimit);
@@ -1700,18 +1686,6 @@ public long getSoftDeleteRetentionOperations() {
17001686
return this.softDeleteRetentionOperations;
17011687
}
17021688

1703-
/**
1704-
* Returns true if the this index should be searched throttled ie. using the
1705-
* {@link org.elasticsearch.threadpool.ThreadPool.Names#SEARCH_THROTTLED} thread-pool
1706-
*/
1707-
public boolean isSearchThrottled() {
1708-
return searchThrottled;
1709-
}
1710-
1711-
private void setSearchThrottled(boolean searchThrottled) {
1712-
this.searchThrottled = searchThrottled;
1713-
}
1714-
17151689
public long getMappingNestedFieldsLimit() {
17161690
return mappingNestedFieldsLimit;
17171691
}

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,14 @@ private static void addBwcSearchWorkerSettings(List<Setting<?>> additionalSettin
566566
additionalSettings.add(
567567
Setting.intSetting("thread_pool.search_worker.size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
568568
);
569+
// Search throttled thread pool has been removed in Elasticsearch 9.0.0. These settings are deprecated and take no effect.
570+
// They are here only to enable BwC for deployments that still use them
571+
additionalSettings.add(
572+
Setting.intSetting("thread_pool.search_throttled.queue_size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
573+
);
574+
additionalSettings.add(
575+
Setting.intSetting("thread_pool.search_throttled.size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
576+
);
569577
}
570578

571579
private SearchModule createSearchModule(Settings settings, ThreadPool threadPool, TelemetryProvider telemetryProvider) {

0 commit comments

Comments
 (0)