Skip to content

Commit 0f95d1c

Browse files
committed
Address comment
Signed-off-by: bowenlan-amzn <[email protected]>
1 parent 7ac1b10 commit 0f95d1c

File tree

1 file changed

+32
-20
lines changed
  • server/src/main/java/org/opensearch/node

1 file changed

+32
-20
lines changed

server/src/main/java/org/opensearch/node/Node.java

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ protected Node(final Environment initialEnvironment, Collection<PluginInfo> clas
630630

631631
final SetOnce<RepositoriesService> repositoriesServiceReference = new SetOnce<>();
632632
final RemoteStoreNodeService remoteStoreNodeService = new RemoteStoreNodeService(repositoriesServiceReference::get, threadPool);
633-
localNodeFactory = new LocalNodeFactory(settings, nodeEnvironment.nodeId(), remoteStoreNodeService);
633+
localNodeFactory = new RemoteStoreVerifyingLocalNodeFactory(settings, nodeEnvironment.nodeId(), remoteStoreNodeService);
634634
resourcesToClose.add(() -> ThreadPool.terminate(threadPool, 10, TimeUnit.SECONDS));
635635
final ResourceWatcherService resourceWatcherService = new ResourceWatcherService(settings, threadPool);
636636
resourcesToClose.add(resourceWatcherService);
@@ -1292,7 +1292,7 @@ protected Node(final Environment initialEnvironment, Collection<PluginInfo> clas
12921292
streamTransport,
12931293
threadPool,
12941294
networkModule.getTransportInterceptor(),
1295-
new LocalNodeFactory(settings, nodeEnvironment.nodeId(), remoteStoreNodeService, true),
1295+
new LocalNodeFactory(settings, nodeEnvironment.nodeId(), remoteStoreNodeService),
12961296
settingsModule.getClusterSettings(),
12971297
transportService.getTaskManager(),
12981298
transportService.getRemoteClusterService(),
@@ -2320,27 +2320,19 @@ protected List<AuxTransport> newAuxTransports(NetworkModule networkModule) {
23202320
return networkModule.getAuxServerTransportList();
23212321
}
23222322

2323+
/**
2324+
* Base factory for creating DiscoveryNode instances during node initialization.
2325+
*/
23232326
private static class LocalNodeFactory implements Function<BoundTransportAddress, DiscoveryNode> {
23242327
private final SetOnce<DiscoveryNode> localNode = new SetOnce<>();
23252328
private final String persistentNodeId;
2326-
private final Settings settings;
2327-
private final RemoteStoreNodeService remoteStoreNodeService;
2328-
private final boolean useStreamTransport;
2329+
protected final Settings settings;
2330+
protected final RemoteStoreNodeService remoteStoreNodeService;
23292331

23302332
private LocalNodeFactory(Settings settings, String persistentNodeId, RemoteStoreNodeService remoteStoreNodeService) {
2331-
this(settings, persistentNodeId, remoteStoreNodeService, false);
2332-
}
2333-
2334-
private LocalNodeFactory(
2335-
Settings settings,
2336-
String persistentNodeId,
2337-
RemoteStoreNodeService remoteStoreNodeService,
2338-
boolean useStreamTransport
2339-
) {
23402333
this.persistentNodeId = persistentNodeId;
23412334
this.settings = settings;
23422335
this.remoteStoreNodeService = remoteStoreNodeService;
2343-
this.useStreamTransport = useStreamTransport;
23442336
}
23452337

23462338
@Override
@@ -2350,11 +2342,6 @@ public DiscoveryNode apply(BoundTransportAddress boundTransportAddress) {
23502342
boundTransportAddress.publishAddress(),
23512343
persistentNodeId
23522344
);
2353-
2354-
if (!useStreamTransport && isRemoteStoreAttributePresent(settings)) {
2355-
remoteStoreNodeService.createAndVerifyRepositories(discoveryNode);
2356-
}
2357-
23582345
localNode.set(discoveryNode);
23592346
return localNode.get();
23602347
}
@@ -2365,6 +2352,31 @@ DiscoveryNode getNode() {
23652352
}
23662353
}
23672354

2355+
/**
2356+
* Extended factory that verifies remote store repositories during node creation.
2357+
*/
2358+
private static class RemoteStoreVerifyingLocalNodeFactory extends LocalNodeFactory {
2359+
2360+
private RemoteStoreVerifyingLocalNodeFactory(
2361+
Settings settings,
2362+
String persistentNodeId,
2363+
RemoteStoreNodeService remoteStoreNodeService
2364+
) {
2365+
super(settings, persistentNodeId, remoteStoreNodeService);
2366+
}
2367+
2368+
@Override
2369+
public DiscoveryNode apply(BoundTransportAddress boundTransportAddress) {
2370+
final DiscoveryNode discoveryNode = super.apply(boundTransportAddress);
2371+
2372+
if (isRemoteStoreAttributePresent(settings)) {
2373+
remoteStoreNodeService.createAndVerifyRepositories(discoveryNode);
2374+
}
2375+
2376+
return discoveryNode;
2377+
}
2378+
}
2379+
23682380
/**
23692381
* Initializes the warm cache with a defined capacity.
23702382
* The capacity of the cache is based on user configuration for {@link Node#NODE_SEARCH_CACHE_SIZE_SETTING}.

0 commit comments

Comments
 (0)