Class NodeConnectionsService
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.opensearch.common.lease.Releasable
,org.opensearch.common.lifecycle.LifecycleComponent
FollowersChecker
.
The connectToNodes(DiscoveryNodes, Runnable)
and disconnectFromNodesExcept(DiscoveryNodes)
methods are called on the ClusterApplier
thread. This component
allows the ClusterApplier
to block on forming connections to _new_ nodes, because the rest of the system treats a missing
connection with another node in the cluster state as an exceptional condition and we don't want this to happen to new nodes. However we
need not block on re-establishing existing connections because if a connection is down then we are already in an exceptional situation
and it doesn't matter much if we stay in this situation a little longer.
This component does not block on disconnections at all, because a disconnection might need to wait for an ongoing (background) connection attempt to complete first.
- Opensearch.api:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
NodeConnectionsService.ConnectionTarget
ensures that we are never concurrently connecting to and disconnecting from a node, and that we eventually either connect to or disconnect from it according to whetherNodeConnectionsService.ConnectionTarget.connect(ActionListener)
orNodeConnectionsService.ConnectionTarget.disconnect()
was called last. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Setting
<org.opensearch.common.unit.TimeValue> protected org.opensearch.cluster.NodeConnectionsService.ConnectionChecker
protected final Map
<DiscoveryNode, NodeConnectionsService.ConnectionTarget> Fields inherited from class org.opensearch.common.lifecycle.AbstractLifecycleComponent
lifecycle
-
Constructor Summary
ConstructorsConstructorDescriptionNodeConnectionsService
(Settings settings, ThreadPool threadPool, TransportService transportService) -
Method Summary
Modifier and TypeMethodDescriptionvoid
protected void
connectDisconnectedTargets
(Runnable onCompletion) Makes a single attempt to reconnect to any nodes which are disconnected but should be connected.void
connectToNodes
(DiscoveryNodes discoveryNodes, Runnable onCompletion) Connect to all the given nodes, but do not disconnect from any extra nodes.protected NodeConnectionsService.ConnectionTarget
createConnectionTarget
(DiscoveryNode discoveryNode) void
disconnectFromNodesExcept
(DiscoveryNodes discoveryNodes) Disconnect from any nodes to which we are currently connected which do not appear in the given nodes.protected void
doClose()
protected void
doStart()
protected void
doStop()
void
reconnectToNodes
(DiscoveryNodes discoveryNodes, Runnable onCompletion) void
setPendingDisconnections
(Set<DiscoveryNode> nodes) Methods inherited from class org.opensearch.common.lifecycle.AbstractLifecycleComponent
addLifecycleListener, close, lifecycleState, removeLifecycleListener, start, stop
-
Field Details
-
CLUSTER_NODE_RECONNECT_INTERVAL_SETTING
public static final Setting<org.opensearch.common.unit.TimeValue> CLUSTER_NODE_RECONNECT_INTERVAL_SETTING -
targetsByNode
-
connectionChecker
protected volatile org.opensearch.cluster.NodeConnectionsService.ConnectionChecker connectionChecker
-
-
Constructor Details
-
NodeConnectionsService
@Inject public NodeConnectionsService(Settings settings, ThreadPool threadPool, TransportService transportService)
-
-
Method Details
-
createConnectionTarget
protected NodeConnectionsService.ConnectionTarget createConnectionTarget(DiscoveryNode discoveryNode) -
connectToNodes
Connect to all the given nodes, but do not disconnect from any extra nodes. Calls the completion handler on completion of all connection attempts to _new_ nodes, but not on attempts to re-establish connections to nodes that are already known. -
setPendingDisconnections
-
clearPendingDisconnections
public void clearPendingDisconnections() -
disconnectFromNodesExcept
Disconnect from any nodes to which we are currently connected which do not appear in the given nodes. Does not wait for the disconnections to complete, because they might have to wait for ongoing connection attempts first. -
connectDisconnectedTargets
Makes a single attempt to reconnect to any nodes which are disconnected but should be connected. Does not attempt to reconnect any nodes which are in the process of disconnecting. The onCompletion handler is called after all ongoing connection/disconnection attempts have completed. -
doStart
protected void doStart()- Specified by:
doStart
in classorg.opensearch.common.lifecycle.AbstractLifecycleComponent
-
doStop
protected void doStop()- Specified by:
doStop
in classorg.opensearch.common.lifecycle.AbstractLifecycleComponent
-
doClose
protected void doClose()- Specified by:
doClose
in classorg.opensearch.common.lifecycle.AbstractLifecycleComponent
-
reconnectToNodes
-