Skip to content

Commit 7f49c8a

Browse files
authored
Enable online prewarming for guice injection (#127338)
This hooks up the OnlinePrewarmingService implementation for guice injection (and enables us to lookup the implementation in ITs using the internalCluster.getInstance methods)
1 parent 45c6bbd commit 7f49c8a

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import org.elasticsearch.action.bulk.IncrementalBulkService;
2424
import org.elasticsearch.action.datastreams.autosharding.DataStreamAutoShardingService;
2525
import org.elasticsearch.action.ingest.ReservedPipelineAction;
26+
import org.elasticsearch.action.search.OnlinePrewarmingService;
27+
import org.elasticsearch.action.search.OnlinePrewarmingServiceProvider;
2628
import org.elasticsearch.action.search.SearchExecutionStatsCollector;
2729
import org.elasticsearch.action.search.SearchPhaseController;
2830
import org.elasticsearch.action.search.SearchTransportService;
@@ -1166,6 +1168,10 @@ public Map<String, String> queryFields() {
11661168
final NodeMetrics nodeMetrics = new NodeMetrics(telemetryProvider.getMeterRegistry(), nodeService, metricsInterval);
11671169
final IndicesMetrics indicesMetrics = new IndicesMetrics(telemetryProvider.getMeterRegistry(), indicesService, metricsInterval);
11681170

1171+
OnlinePrewarmingService onlinePrewarmingService = pluginsService.loadSingletonServiceProvider(
1172+
OnlinePrewarmingServiceProvider.class,
1173+
() -> OnlinePrewarmingServiceProvider.DEFAULT
1174+
).create(clusterService.getSettings(), threadPool, clusterService);
11691175
final SearchService searchService = serviceProvider.newSearchService(
11701176
pluginsService,
11711177
clusterService,
@@ -1176,7 +1182,8 @@ public Map<String, String> queryFields() {
11761182
searchModule.getFetchPhase(),
11771183
circuitBreakerService,
11781184
systemIndices.getExecutorSelector(),
1179-
telemetryProvider.getTracer()
1185+
telemetryProvider.getTracer(),
1186+
onlinePrewarmingService
11801187
);
11811188

11821189
final ShutdownPrepareService shutdownPrepareService = new ShutdownPrepareService(settings, httpServerTransport, terminationHandler);
@@ -1270,6 +1277,7 @@ public Map<String, String> queryFields() {
12701277
b.bind(DataStreamAutoShardingService.class).toInstance(dataStreamAutoShardingService);
12711278
b.bind(FailureStoreMetrics.class).toInstance(failureStoreMetrics);
12721279
b.bind(ShutdownPrepareService.class).toInstance(shutdownPrepareService);
1280+
b.bind(OnlinePrewarmingService.class).toInstance(onlinePrewarmingService);
12731281
});
12741282

12751283
if (ReadinessService.enabled(environment)) {

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
package org.elasticsearch.node;
1111

1212
import org.elasticsearch.action.search.OnlinePrewarmingService;
13-
import org.elasticsearch.action.search.OnlinePrewarmingServiceProvider;
1413
import org.elasticsearch.client.internal.node.NodeClient;
1514
import org.elasticsearch.cluster.ClusterInfoService;
1615
import org.elasticsearch.cluster.InternalClusterInfoService;
@@ -123,12 +122,9 @@ SearchService newSearchService(
123122
FetchPhase fetchPhase,
124123
CircuitBreakerService circuitBreakerService,
125124
ExecutorSelector executorSelector,
126-
Tracer tracer
125+
Tracer tracer,
126+
OnlinePrewarmingService onlinePrewarmingService
127127
) {
128-
OnlinePrewarmingService onlinePrewarmingService = pluginsService.loadSingletonServiceProvider(
129-
OnlinePrewarmingServiceProvider.class,
130-
() -> OnlinePrewarmingServiceProvider.DEFAULT
131-
).create(clusterService.getSettings(), threadPool, clusterService);
132128
return new SearchService(
133129
clusterService,
134130
indicesService,

test/framework/src/main/java/org/elasticsearch/node/MockNode.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
package org.elasticsearch.node;
1111

1212
import org.elasticsearch.action.search.OnlinePrewarmingService;
13-
import org.elasticsearch.action.search.OnlinePrewarmingServiceProvider;
1413
import org.elasticsearch.client.internal.node.NodeClient;
1514
import org.elasticsearch.cluster.ClusterInfoService;
1615
import org.elasticsearch.cluster.MockInternalClusterInfoService;
@@ -103,7 +102,8 @@ SearchService newSearchService(
103102
FetchPhase fetchPhase,
104103
CircuitBreakerService circuitBreakerService,
105104
ExecutorSelector executorSelector,
106-
Tracer tracer
105+
Tracer tracer,
106+
OnlinePrewarmingService onlinePrewarmingService
107107
) {
108108
if (pluginsService.filterPlugins(MockSearchService.TestPlugin.class).findAny().isEmpty()) {
109109
return super.newSearchService(
@@ -116,13 +116,11 @@ SearchService newSearchService(
116116
fetchPhase,
117117
circuitBreakerService,
118118
executorSelector,
119-
tracer
119+
tracer,
120+
onlinePrewarmingService
120121
);
121122
}
122-
OnlinePrewarmingService onlinePrewarmingService = pluginsService.loadSingletonServiceProvider(
123-
OnlinePrewarmingServiceProvider.class,
124-
() -> OnlinePrewarmingServiceProvider.DEFAULT
125-
).create(clusterService.getSettings(), threadPool, clusterService);
123+
126124
return new MockSearchService(
127125
clusterService,
128126
indicesService,

0 commit comments

Comments
 (0)