/** * @return Connection recovery timeout that is not greater than failureDetectionTimeout if enabled. */ long getEffectiveConnectionRecoveryTimeout() { if (failureDetectionTimeoutEnabled() && failureDetectionTimeout() < connRecoveryTimeout) return failureDetectionTimeout(); return connRecoveryTimeout; }
/** * Gets effective or resulting socket timeout with considering failure detection timeout * * @param srvrOperation {@code True} if socket connect to server node, * {@code False} if socket connect to client node. * @return Resulting socket timeout. */ public long getEffectiveSocketTimeout(boolean srvrOperation) { if (failureDetectionTimeoutEnabled()) return srvrOperation ? failureDetectionTimeout() : clientFailureDetectionTimeout(); else return sockTimeout; }
/** * Initializes connection check frequency. Used only when failure detection timeout is enabled. */ private void initConnectionCheckThreshold() { if (spi.failureDetectionTimeoutEnabled()) connCheckThreshold = spi.failureDetectionTimeout(); else connCheckThreshold = Math.min(spi.getSocketTimeout(), spi.metricsUpdateFreq); if (log.isInfoEnabled()) log.info("Connection check threshold is calculated: " + connCheckThreshold); }
/** * */ SocketWriter() { super(spi.ignite().name(), "tcp-client-disco-sock-writer", log); sockTimeout = spi.failureDetectionTimeoutEnabled() ? spi.failureDetectionTimeout() : spi.getSocketTimeout(); }
/** {@inheritDoc} */ @Override public void onTimeout() { if (done.compareAndSet(false, true)) { // Close socket - timeout occurred. U.closeQuiet(sock); LT.warn(log, "Socket write has timed out (consider increasing " + (failureDetectionTimeoutEnabled() ? "'IgniteConfiguration.failureDetectionTimeout' configuration property) [" + "failureDetectionTimeout=" + failureDetectionTimeout() : "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout) + ", rmtAddr=" + sock.getRemoteSocketAddress() + ", rmtPort=" + sock.getPort() + ", sockTimeout=" + sockTimeout + ']'); stats.onSocketTimeout(); } }
/** * @throws Exception In case of error. */ @Test public void testFailureDetectionTimeoutDisabled() throws Exception { for (int i = 2; i < spis.size(); i++) { assertFalse(((TcpDiscoverySpi)spis.get(i)).failureDetectionTimeoutEnabled()); assertEquals(0, ((TcpDiscoverySpi)spis.get(i)).failureDetectionTimeout()); assertFalse(0 == ((TcpDiscoverySpi)spis.get(i)).clientFailureDetectionTimeout()); } }
/** * Check connection aliveness status. */ private void checkConnection() { Boolean hasRemoteSrvNodes = null; if (spi.failureDetectionTimeoutEnabled() && !failureThresholdReached && U.currentTimeMillis() - locNode.lastExchangeTime() >= connCheckThreshold && spiStateCopy() == CONNECTED && (hasRemoteSrvNodes = ring.hasRemoteServerNodes())) { if (log.isInfoEnabled()) log.info("Local node seems to be disconnected from topology (failure detection timeout " + "is reached) [failureDetectionTimeout=" + spi.failureDetectionTimeout() + ", connCheckInterval=" + CON_CHECK_INTERVAL + ']'); failureThresholdReached = true; // Reset sent time deliberately to force sending connection check message. lastTimeConnCheckMsgSent = 0; } long elapsed = (lastTimeConnCheckMsgSent + CON_CHECK_INTERVAL) - U.currentTimeMillis(); if (elapsed > 0) return; if (hasRemoteSrvNodes == null) hasRemoteSrvNodes = ring.hasRemoteServerNodes(); if (hasRemoteSrvNodes) { sendMessageAcrossRing(new TcpDiscoveryConnectionCheckMessage(locNode)); lastTimeConnCheckMsgSent = U.currentTimeMillis(); } }
spi.failureDetectionTimeout() : spi.getAckTimeout()); "[msg=" + unacked + (spi.failureDetectionTimeoutEnabled() ? ", failureDetectionTimeout=" + spi.failureDetectionTimeout() : ", timeout=" + spi.getAckTimeout()) + ']');
long sockTimeout = spi.failureDetectionTimeoutEnabled() ? spi.failureDetectionTimeout() : spi.getSocketTimeout();
/** * @throws Exception in case of error. */ @Test public void testFailureDetectionTimeoutEnabled() throws Exception { startServerNodes(1); startClientNodes(1); checkNodes(1, 1); assertTrue(((TcpDiscoverySpi)(G.ignite("server-0").configuration().getDiscoverySpi())). failureDetectionTimeoutEnabled()); assertEquals(failureDetectionTimeout(), ((TcpDiscoverySpi)(G.ignite("server-0").configuration().getDiscoverySpi())).failureDetectionTimeout()); assertTrue(((TcpDiscoverySpi)(G.ignite("client-0").configuration().getDiscoverySpi())). failureDetectionTimeoutEnabled()); assertEquals(failureDetectionTimeout(), ((TcpDiscoverySpi)(G.ignite("client-0").configuration().getDiscoverySpi())).failureDetectionTimeout()); }
try { spi.writeToSocket(sock, out, msg, spi.failureDetectionTimeoutEnabled() ? spi.failureDetectionTimeout() : spi.getSocketTimeout());
log.debug(configInfo("failureDetectionTimeout", failureDetectionTimeout()));
/** * @return Connection recovery timeout that is not greater than failureDetectionTimeout if enabled. */ long getEffectiveConnectionRecoveryTimeout() { if (failureDetectionTimeoutEnabled() && failureDetectionTimeout() < connRecoveryTimeout) return failureDetectionTimeout(); return connRecoveryTimeout; }
/** * Gets effective or resulting socket timeout with considering failure detection timeout * * @param srvrOperation {@code True} if socket connect to server node, * {@code False} if socket connect to client node. * @return Resulting socket timeout. */ public long getEffectiveSocketTimeout(boolean srvrOperation) { if (failureDetectionTimeoutEnabled()) return srvrOperation ? failureDetectionTimeout() : clientFailureDetectionTimeout(); else return sockTimeout; }
/** * Initializes connection check frequency. Used only when failure detection timeout is enabled. */ private void initConnectionCheckThreshold() { if (spi.failureDetectionTimeoutEnabled()) connCheckThreshold = spi.failureDetectionTimeout(); else connCheckThreshold = Math.min(spi.getSocketTimeout(), spi.metricsUpdateFreq); if (log.isInfoEnabled()) log.info("Connection check threshold is calculated: " + connCheckThreshold); }
/** * */ SocketWriter() { super(spi.ignite().name(), "tcp-client-disco-sock-writer", log); sockTimeout = spi.failureDetectionTimeoutEnabled() ? spi.failureDetectionTimeout() : spi.getSocketTimeout(); }
/** {@inheritDoc} */ @Override public void onTimeout() { if (done.compareAndSet(false, true)) { // Close socket - timeout occurred. U.closeQuiet(sock); LT.warn(log, "Socket write has timed out (consider increasing " + (failureDetectionTimeoutEnabled() ? "'IgniteConfiguration.failureDetectionTimeout' configuration property) [" + "failureDetectionTimeout=" + failureDetectionTimeout() : "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout) + ", rmtAddr=" + sock.getRemoteSocketAddress() + ", rmtPort=" + sock.getPort() + ", sockTimeout=" + sockTimeout + ']'); stats.onSocketTimeout(); } }
/** * Check connection aliveness status. */ private void checkConnection() { Boolean hasRemoteSrvNodes = null; if (spi.failureDetectionTimeoutEnabled() && !failureThresholdReached && U.currentTimeMillis() - locNode.lastExchangeTime() >= connCheckThreshold && spiStateCopy() == CONNECTED && (hasRemoteSrvNodes = ring.hasRemoteServerNodes())) { if (log.isInfoEnabled()) log.info("Local node seems to be disconnected from topology (failure detection timeout " + "is reached) [failureDetectionTimeout=" + spi.failureDetectionTimeout() + ", connCheckInterval=" + CON_CHECK_INTERVAL + ']'); failureThresholdReached = true; // Reset sent time deliberately to force sending connection check message. lastTimeConnCheckMsgSent = 0; } long elapsed = (lastTimeConnCheckMsgSent + CON_CHECK_INTERVAL) - U.currentTimeMillis(); if (elapsed > 0) return; if (hasRemoteSrvNodes == null) hasRemoteSrvNodes = ring.hasRemoteServerNodes(); if (hasRemoteSrvNodes) { sendMessageAcrossRing(new TcpDiscoveryConnectionCheckMessage(locNode)); lastTimeConnCheckMsgSent = U.currentTimeMillis(); } }
spi.failureDetectionTimeout() : spi.getAckTimeout()); "[msg=" + unacked + (spi.failureDetectionTimeoutEnabled() ? ", failureDetectionTimeout=" + spi.failureDetectionTimeout() : ", timeout=" + spi.getAckTimeout()) + ']');
long sockTimeout = spi.failureDetectionTimeoutEnabled() ? spi.failureDetectionTimeout() : spi.getSocketTimeout();