Skip to content

Commit 0ec0380

Browse files
committed
Add common DefaultServerHolderModule
1 parent 519d536 commit 0ec0380

File tree

11 files changed

+53
-45
lines changed

11 files changed

+53
-45
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
21+
package org.apache.druid.guice;
22+
23+
import com.google.inject.Binder;
24+
import com.google.inject.Module;
25+
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
26+
import org.apache.druid.server.metrics.LoadSpecHolder;
27+
import org.apache.druid.server.metrics.NoopTaskHolder;
28+
import org.apache.druid.server.metrics.TaskHolder;
29+
30+
/**
31+
* Binds the following holder configs for all services:
32+
* <ul>
33+
* <li>{@link TaskHolder} to {@link NoopTaskHolder}</li>
34+
* <li>{@link LoadSpecHolder} to {@link DefaultLoadSpecHolder}</li>
35+
* </ul>
36+
*
37+
* <p>For {@code CliPeon}, these bindings are overridden by the peon-specific module.</p>
38+
*/
39+
public class DefaultServerHolderModule implements Module
40+
{
41+
@Override
42+
public void configure(Binder binder)
43+
{
44+
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
45+
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
46+
}
47+
}

server/src/main/java/org/apache/druid/initialization/CoreInjectorBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.apache.druid.guice.AnnouncerModule;
2727
import org.apache.druid.guice.BuiltInTypesModule;
2828
import org.apache.druid.guice.CatalogCoreModule;
29+
import org.apache.druid.guice.DefaultServerHolderModule;
2930
import org.apache.druid.guice.DruidInjectorBuilder;
3031
import org.apache.druid.guice.DruidSecondaryModule;
3132
import org.apache.druid.guice.ExpressionModule;
@@ -142,7 +143,8 @@ public CoreInjectorBuilder forServerWithoutJetty()
142143
new ExternalStorageAccessSecurityModule(),
143144
new ServiceClientModule(),
144145
new StorageConnectorModule(),
145-
new CatalogCoreModule()
146+
new CatalogCoreModule(),
147+
new DefaultServerHolderModule()
146148
);
147149
return this;
148150
}

server/src/main/java/org/apache/druid/server/metrics/MetricsModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public MonitorScheduler getMonitorScheduler(
108108
{
109109
List<Monitor> monitors = new ArrayList<>();
110110
// HACK: when ServiceStatusMonitor is the first to be loaded, it introduces a circular dependency between
111-
// CliPeon.runTask and CliPeon.getTaskHolder/CliPeon.getCliPeonLoadSpecHolder. The reason for this is unclear
111+
// CliPeon.runTask and TaskHolder.getDataSource()/TaskHolder.getTaskId(). The reason for this is unclear
112112
// but by injecting TaskPropertiesHolder early this cycle is avoided.
113113
injector.getInstance(TaskHolder.class);
114114
injector.getInstance(LoadSpecHolder.class);

server/src/main/java/org/apache/druid/server/metrics/NoopTaskHolder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ public class NoopTaskHolder implements TaskHolder
3232
@Override
3333
public String getDataSource()
3434
{
35-
throw new UnsupportedOperationException("getDataSource() should not be called for non-cli peons");
35+
throw new UnsupportedOperationException("getDataSource() should not be called for non-CliPeon");
3636
}
3737

3838
@Override
3939
public String getTaskId()
4040
{
41-
throw new UnsupportedOperationException("getTaskId() should not be called for non-cli peons");
41+
throw new UnsupportedOperationException("getTaskId() should not be called for non-CliPeon");
4242
}
4343
}

server/src/test/java/org/apache/druid/server/metrics/MetricsModuleTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,6 @@ public void configure(Binder binder)
8888
Key.get(DruidNode.class, Self.class),
8989
new DruidNode("test-inject", null, false, null, null, true, false)
9090
);
91-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
92-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
9391
}
9492
})
9593
);

services/src/main/java/org/apache/druid/cli/CliBroker.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,8 @@
8282
import org.apache.druid.server.http.SegmentListerResource;
8383
import org.apache.druid.server.http.SelfDiscoveryResource;
8484
import org.apache.druid.server.initialization.jetty.JettyServerInitializer;
85-
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
86-
import org.apache.druid.server.metrics.LoadSpecHolder;
87-
import org.apache.druid.server.metrics.NoopTaskHolder;
8885
import org.apache.druid.server.metrics.QueryCountStatsProvider;
8986
import org.apache.druid.server.metrics.SubqueryCountStatsProvider;
90-
import org.apache.druid.server.metrics.TaskHolder;
9187
import org.apache.druid.server.router.TieredBrokerConfig;
9288
import org.apache.druid.sql.calcite.schema.MetadataSegmentView;
9389
import org.apache.druid.sql.guice.SqlModule;
@@ -165,9 +161,6 @@ protected List<? extends Module> getModules()
165161
JsonConfigProvider.bind(binder, "druid.broker.internal.query.config", InternalQueryConfig.class);
166162

167163
binder.bind(QuerySegmentWalker.class).to(ClientQuerySegmentWalker.class).in(LazySingleton.class);
168-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
169-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
170-
171164
binder.bind(JettyServerInitializer.class).to(QueryJettyServerInitializer.class).in(LazySingleton.class);
172165

173166
binder.bind(BrokerQueryResource.class).in(LazySingleton.class);

services/src/main/java/org/apache/druid/cli/CliCoordinator.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,7 @@
105105
import org.apache.druid.server.initialization.jetty.JettyServerInitializer;
106106
import org.apache.druid.server.lookup.cache.LookupCoordinatorManager;
107107
import org.apache.druid.server.lookup.cache.LookupCoordinatorManagerConfig;
108-
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
109-
import org.apache.druid.server.metrics.LoadSpecHolder;
110-
import org.apache.druid.server.metrics.NoopTaskHolder;
111108
import org.apache.druid.server.metrics.ServiceStatusMonitor;
112-
import org.apache.druid.server.metrics.TaskHolder;
113109
import org.apache.druid.server.router.TieredBrokerConfig;
114110
import org.apache.druid.storage.local.LocalTmpStorageConfig;
115111
import org.eclipse.jetty.server.Server;
@@ -203,9 +199,6 @@ public void configure(Binder binder)
203199
JsonConfigProvider.bind(binder, "druid.coordinator.segmentMetadataCache", SegmentMetadataCacheConfig.class);
204200
binder.bind(DruidCoordinatorConfig.class);
205201

206-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
207-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
208-
209202
binder.bind(RedirectFilter.class).in(LazySingleton.class);
210203
binder.bind(CoordinatorDynamicConfigSyncer.class).in(ManageLifecycle.class);
211204
if (beOverlord) {

services/src/main/java/org/apache/druid/cli/CliHistorical.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,7 @@
6363
import org.apache.druid.server.http.SegmentListerResource;
6464
import org.apache.druid.server.http.SelfDiscoveryResource;
6565
import org.apache.druid.server.initialization.jetty.JettyServerInitializer;
66-
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
67-
import org.apache.druid.server.metrics.LoadSpecHolder;
68-
import org.apache.druid.server.metrics.NoopTaskHolder;
6966
import org.apache.druid.server.metrics.QueryCountStatsProvider;
70-
import org.apache.druid.server.metrics.TaskHolder;
7167
import org.apache.druid.storage.local.LocalTmpStorageConfig;
7268
import org.apache.druid.timeline.PruneLastCompactionState;
7369
import org.eclipse.jetty.server.Server;
@@ -125,8 +121,6 @@ protected List<? extends Module> getModules()
125121
binder.bind(ServerManager.class).in(LazySingleton.class);
126122
binder.bind(SegmentManager.class).in(LazySingleton.class);
127123
binder.bind(ZkCoordinator.class).in(ManageLifecycle.class);
128-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
129-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
130124
bindQuerySegmentWalker(binder);
131125

132126
binder.bind(ServerTypeConfig.class).toInstance(new ServerTypeConfig(ServerType.HISTORICAL));

services/src/main/java/org/apache/druid/cli/CliMiddleManager.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,7 @@
8383
import org.apache.druid.server.DruidNode;
8484
import org.apache.druid.server.http.SelfDiscoveryResource;
8585
import org.apache.druid.server.initialization.jetty.JettyServerInitializer;
86-
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
87-
import org.apache.druid.server.metrics.LoadSpecHolder;
88-
import org.apache.druid.server.metrics.NoopTaskHolder;
8986
import org.apache.druid.server.metrics.ServiceStatusMonitor;
90-
import org.apache.druid.server.metrics.TaskHolder;
9187
import org.apache.druid.server.metrics.WorkerTaskCountStatsProvider;
9288
import org.apache.druid.storage.local.LocalTmpStorageConfig;
9389
import org.apache.druid.timeline.PruneLastCompactionState;
@@ -154,8 +150,6 @@ public void configure(Binder binder)
154150
binder.bind(TaskRunner.class).to(ForkingTaskRunner.class);
155151
binder.bind(ForkingTaskRunner.class).in(ManageLifecycle.class);
156152
binder.bind(WorkerTaskCountStatsProvider.class).to(ForkingTaskRunner.class);
157-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
158-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
159153

160154
binder.bind(ParallelIndexSupervisorTaskClientProvider.class).toProvider(Providers.of(null));
161155
binder.bind(ShuffleClient.class).toProvider(Providers.of(null));

services/src/main/java/org/apache/druid/cli/CliRouter.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@
4646
import org.apache.druid.server.http.RouterResource;
4747
import org.apache.druid.server.http.SelfDiscoveryResource;
4848
import org.apache.druid.server.initialization.jetty.JettyServerInitializer;
49-
import org.apache.druid.server.metrics.DefaultLoadSpecHolder;
50-
import org.apache.druid.server.metrics.LoadSpecHolder;
51-
import org.apache.druid.server.metrics.NoopTaskHolder;
5249
import org.apache.druid.server.metrics.QueryCountStatsProvider;
53-
import org.apache.druid.server.metrics.TaskHolder;
5450
import org.apache.druid.server.router.AvaticaConnectionBalancer;
5551
import org.apache.druid.server.router.CoordinatorRuleManager;
5652
import org.apache.druid.server.router.ManagementProxyConfig;
@@ -112,9 +108,6 @@ protected List<? extends Module> getModules()
112108
binder.bind(CoordinatorRuleManager.class);
113109
LifecycleModule.register(binder, CoordinatorRuleManager.class);
114110

115-
binder.bind(TaskHolder.class).to(NoopTaskHolder.class).in(LazySingleton.class);
116-
binder.bind(LoadSpecHolder.class).to(DefaultLoadSpecHolder.class).in(LazySingleton.class);
117-
118111
binder.bind(TieredBrokerHostSelector.class).in(ManageLifecycle.class);
119112
binder.bind(QueryHostFinder.class).in(LazySingleton.class);
120113
binder.bind(new TypeLiteral<List<TieredBrokerSelectorStrategy>>() {})

0 commit comments

Comments
 (0)