/** * Acquires a releaseable lock for the given uId. All *UnderLock methods require * this lock to be hold by the caller otherwise the visibility guarantees of this version * map are broken. We assert on this lock to be hold when calling these methods. * @see KeyedLock */ Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
protected void doRun() { for (DiscoveryNode node : nodes.keySet()) { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } } }
@Override protected void doRun() { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } }
/** * Disconnects from all nodes except the ones provided as parameter */ public void disconnectFromNodesExcept(DiscoveryNodes nodesToKeep) { Set<DiscoveryNode> currentNodes = new HashSet<>(nodes.keySet()); for (DiscoveryNode node : nodesToKeep) { currentNodes.remove(node); } for (final DiscoveryNode node : currentNodes) { try (Releasable ignored = nodeLocks.acquire(node)) { Integer current = nodes.remove(node); assert current != null : "node " + node + " was removed in event but not in internal nodes"; try { transportService.disconnectFromNode(node); } catch (Exception e) { logger.warn(() -> new ParameterizedMessage("failed to disconnect to node [{}]", node), e); } } } }
for (final DiscoveryNode node : discoveryNodes) { final boolean connected; try (Releasable ignored = nodeLocks.acquire(node)) { nodes.putIfAbsent(node, 0); connected = transportService.nodeConnected(node);
try (Releasable ignored = connectionLock.acquire(node.getId())) { Transport.Connection connection = connectedNodes.get(node); if (connection != null) {
public Connection getOrConnect(DiscoveryNode node) throws IOException { Connection result; try (Releasable ignore = connectionLock.acquire(node.getAddress())) { result = tempConnections.get(node.getAddress()); if (result == null) { ensureOpen(); boolean success = false; logger.trace("[{}] opening connection to [{}]", id(), node); result = transportService.openConnection(node, connectionProfile); try { transportService.handshake(result, connectionProfile.getHandshakeTimeout().millis()); synchronized (this) { // acquire lock and check if closed, to prevent leaving an open connection after closing ensureOpen(); Connection existing = tempConnections.put(node.getAddress(), result); assert existing == null; success = true; } } finally { if (success == false) { logger.trace("[{}] closing connection to [{}] due to failure", id(), node); IOUtils.closeWhileHandlingException(result); } } } } return result; }
/** * Acquires a releaseable lock for the given uId. All *UnderLock methods require * this lock to be hold by the caller otherwise the visibility guarantees of this version * map are broken. We assert on this lock to be hold when calling these methods. * @see KeyedLock */ Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
/** * Acquires a releaseable lock for the given uId. All *UnderLock methods require * this lock to be hold by the caller otherwise the visibility guarantees of this version * map are broken. We assert on this lock to be hold when calling these methods. * @see KeyedLock */ Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
private Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
private Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
private Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); }
assert noOp.seqNo() > SequenceNumbers.NO_OPS_PERFORMED; final long seqNo = noOp.seqNo(); try (Releasable ignored = noOpKeyedLock.acquire(seqNo)) { final NoOpResult noOpResult; final Optional<Exception> preFlightError = preFlightCheckForNoOp(noOp);
protected void doRun() { for (DiscoveryNode node : nodes.keySet()) { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } } }
@Override protected void doRun() throws Exception { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } }
@Override protected void doRun() { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } }
protected void doRun() { for (DiscoveryNode node : nodes.keySet()) { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } } }
protected void doRun() { for (DiscoveryNode node : nodes.keySet()) { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } } }
@Override protected void doRun() throws Exception { try (Releasable ignored = nodeLocks.acquire(node)) { validateAndConnectIfNeeded(node); } }
@Override public void disconnectFromNode(DiscoveryNode node) { try (Releasable ignored = connectionLock.acquire(node.getId())) { NodeChannels nodeChannels = connectedNodes.remove(node); if (nodeChannels != null) { closeAndNotify(node, nodeChannels, "due to explicit disconnect call"); } } }