Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
84a37ab
Port from v4
Nov 7, 2019
d218925
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Nov 8, 2019
11cbbf3
Merge branch 'master' of github.com:David-Noble-at-work/azure-sdk-for…
Nov 8, 2019
05c7e05
Corrected package misspelling in log4j.properties and removed System.…
Nov 9, 2019
8dfa3db
Merge branch 'master' of github.com:David-Noble-at-work/azure-sdk-for…
Nov 9, 2019
e6e71f5
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Nov 9, 2019
e082d81
Merge branch 'master' of github.com:David-Noble-at-work/azure-sdk-for…
Nov 17, 2019
069c822
Merge branch 'master' of github.com:David-Noble-at-work/azure-sdk-for…
Nov 23, 2019
3ead1cc
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Dec 3, 2019
669ba8b
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Dec 4, 2019
735f572
Responded to code review comments
Dec 4, 2019
6db330d
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Jan 4, 2020
48855b5
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Jan 4, 2020
2367f50
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Jan 17, 2020
fb9cac0
Updated sdk/cosmos/README.md with info on using system properties to …
Jan 23, 2020
1dd708e
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Jan 23, 2020
203507a
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Mar 16, 2020
368b10f
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java
Mar 16, 2020
f7544aa
Ported memory leak from v2.6.X and bumped version number.
Mar 17, 2020
4cd3a13
Removed a file that was mistakenly committed
Mar 18, 2020
8f58a9c
Space adjustments for readability
Mar 18, 2020
49baa6a
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Mar 19, 2020
f70e844
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Mar 24, 2020
163c66d
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Mar 26, 2020
01a3661
DCDocumentCrudTest passes. Performance, reliability, and scalability …
Apr 5, 2020
be7b3d8
Enabled channel acquisition timeout interval default: 100 ms
Apr 7, 2020
7446c7a
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 8, 2020
5f26357
Removed some newlines
Apr 8, 2020
dfb2ba4
Added a newline at the end of file
Apr 8, 2020
34baf33
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 8, 2020
5d7bf22
Ensured that RntbdClientChannelPool.release never throws and never re…
Apr 11, 2020
c5a8e7b
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 15, 2020
05f1410
Revised channel acquisition algorithm such that no timer acquisition …
Apr 16, 2020
e767404
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 18, 2020
3425d0b
Attempt to resolve scalability issue that causes performance degradat…
Apr 18, 2020
f7a6cda
Code/documentation tweaks
Apr 19, 2020
0a04ad8
Idle endpoint timeout task now detects idleEndpointTimeout and—unless…
Apr 20, 2020
fb81f3e
Updated a comment
Apr 20, 2020
7f23efd
Code tweak
Apr 20, 2020
78f0e55
Switch to HashedWheelTimer implementation for RntbdClientChannelPool.…
Apr 21, 2020
12b5981
Tweaked log message
Apr 22, 2020
e5ff54c
Addressed a number of threading-related issues in RntbdClientChannelP…
Apr 24, 2020
fc7637b
Streamlined RntbdServiceEndpoint.write for performance/readability. I…
Apr 25, 2020
488291e
Tweaks tested extensively--full test suite plus point read benchmarks…
Apr 28, 2020
02293fc
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 28, 2020
2375baa
Tweaked AsyncBenchmark for verifying the direct tcp “connection timeo…
Apr 28, 2020
46f5dd1
Moved a misplaced statement in AsyncBenchmark that produced a lot of …
Apr 29, 2020
3d0c007
Updated version numbers in an attempt to get past CI version checks
Apr 30, 2020
fb7273b
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Apr 30, 2020
02d7ed0
Tweaked RntbdRequestTimer.close for readability
Apr 30, 2020
44c7ea7
Removed README.md which seems to have been removed from master after …
Apr 30, 2020
350db56
Fixed a build issue that CI complains about.
Apr 30, 2020
cf9e4d2
Reverting version bump for benchmark and examples as these are in the…
May 4, 2020
2a747ce
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
May 14, 2020
27a0107
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
May 18, 2020
6b98671
Removed dead code and changed an error message in AsyncBenchmark.java
May 18, 2020
145d853
Removed merge orig files
May 18, 2020
9f55e5a
Wired up DirectConnectionConfig to RntbdTransportClient by way of Con…
May 20, 2020
bf836da
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
May 26, 2020
139637f
Wired up ConnectionPolicy, DirectConnectionConfig, and RntbdTransport…
May 29, 2020
d96f4b3
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
May 29, 2020
4eb5db9
Corrected two toString methods
Jun 1, 2020
3672ed8
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-java …
Jun 2, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ abstract class AsyncBenchmark<T> {
if (configuration.getOperationType() != Configuration.Operation.WriteLatency
&& configuration.getOperationType() != Configuration.Operation.WriteThroughput
&& configuration.getOperationType() != Configuration.Operation.ReadMyWrites) {
logger.info("PRE-populating {} documents ....", cfg.getNumberOfOperations());
logger.info("PRE-populating {} documents ....", cfg.getNumberOfPreCreatedDocuments());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch. thank you

String dataFieldValue = RandomStringUtils.randomAlphabetic(cfg.getDocumentDataFieldSize());
for (int i = 0; i < cfg.getNumberOfPreCreatedDocuments(); i++) {
String uuid = UUID.randomUUID().toString();
Expand All @@ -144,7 +144,7 @@ abstract class AsyncBenchmark<T> {
}).flux();
createDocumentObservables.add(obs);
}
logger.info("Finished pre-populating {} documents", cfg.getNumberOfOperations());
logger.info("Finished pre-populating {} documents", cfg.getNumberOfPreCreatedDocuments());
}

docsToRead = Flux.merge(Flux.fromIterable(createDocumentObservables), 100).collectList().block();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,27 @@ public final class DirectConnectionConfig {
// Constants
private static final Duration DEFAULT_IDLE_ENDPOINT_TIMEOUT = Duration.ofSeconds(70L);
private static final Duration DEFAULT_CONNECTION_TIMEOUT = Duration.ofSeconds(60L);
private static final Duration DEFAULT_REQUEST_TIMEOUT = Duration.ofSeconds(60L);
private static final int DEFAULT_MAX_CONNECTIONS_PER_ENDPOINT = 30;
private static final int DEFAULT_MAX_REQUESTS_PER_CONNECTION = 10;

private Duration connectionTimeout;
private Duration idleConnectionTimeout;
private Duration idleEndpointTimeout;
private Duration requestTimeout;
private int maxConnectionsPerEndpoint;
private int maxRequestsPerConnection;

/**
* Constructor.
*/
public DirectConnectionConfig() {
this.idleConnectionTimeout = Duration.ZERO;
this.connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
this.idleConnectionTimeout = Duration.ZERO;
this.idleEndpointTimeout = DEFAULT_IDLE_ENDPOINT_TIMEOUT;
this.maxConnectionsPerEndpoint = DEFAULT_MAX_CONNECTIONS_PER_ENDPOINT;
this.maxRequestsPerConnection = DEFAULT_MAX_REQUESTS_PER_CONNECTION;
this.requestTimeout = DEFAULT_REQUEST_TIMEOUT;
}

/**
Expand Down Expand Up @@ -190,6 +193,32 @@ public DirectConnectionConfig setMaxRequestsPerConnection(int maxRequestsPerConn
return this;
}

/**
* Gets the request timeout interval
* This represents the timeout interval for requests
*
* Default value is 60 seconds
*
* @return the request timeout interval
*/
public Duration getRequestTimeout() {
return requestTimeout;
}

/**
* Sets the request timeout interval
* This represents the timeout interval for requests
*
* Default value is 60 seconds
*
* @param requestTimeout the request timeout interval
* @return the {@link DirectConnectionConfig}
*/
public DirectConnectionConfig setRequestTimeout(Duration requestTimeout) {
this.requestTimeout = requestTimeout;
return this;
}

@Override
public String toString() {
return "DirectConnectionConfig{" +
Expand All @@ -198,6 +227,7 @@ public String toString() {
", idleEndpointTimeout=" + idleEndpointTimeout +
", maxConnectionsPerEndpoint=" + maxConnectionsPerEndpoint +
", maxRequestsPerConnection=" + maxRequestsPerConnection +
", requestTimeout=" + requestTimeout +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public final class GatewayConnectionConfig {
// Constants
private static final Duration DEFAULT_REQUEST_TIMEOUT = Duration.ofSeconds(60);
private static final Duration DEFAULT_IDLE_CONNECTION_TIMEOUT = Duration.ofSeconds(60);
private static final int DEFAULT_MAX_POOL_SIZE = 1000;
private static final int DEFAULT_MAX_CONNECTION_POOL_SIZE = 1000;

private Duration requestTimeout;
private int maxConnectionPoolSize;
Expand All @@ -26,7 +26,7 @@ public final class GatewayConnectionConfig {
*/
public GatewayConnectionConfig() {
this.idleConnectionTimeout = DEFAULT_IDLE_CONNECTION_TIMEOUT;
this.maxConnectionPoolSize = DEFAULT_MAX_POOL_SIZE;
this.maxConnectionPoolSize = DEFAULT_MAX_CONNECTION_POOL_SIZE;
this.requestTimeout = DEFAULT_REQUEST_TIMEOUT;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,31 @@
*/
public final class ConnectionPolicy {

// Constants
public static final Duration DEFAULT_REQUEST_TIMEOUT = Duration.ofSeconds(60);
public static final Duration DEFAULT_IDLE_CONNECTION_TIMEOUT = Duration.ofSeconds(60);
public static final int DEFAULT_MAX_POOL_SIZE = 1000;
private static final int defaultGatewayMaxConnectionPoolSize = GatewayConnectionConfig.getDefaultConfig()
.getMaxConnectionPoolSize();

private static final ConnectionPolicy defaultPolicy = new ConnectionPolicy(DirectConnectionConfig.getDefaultConfig());
private static final ConnectionPolicy defaultPolicy =
new ConnectionPolicy(DirectConnectionConfig.getDefaultConfig());

private ConnectionMode connectionMode;
private String userAgentSuffix;
private ThrottlingRetryOptions throttlingRetryOptions;
private boolean endpointDiscoveryEnabled;
private List<String> preferredRegions;
private Duration idleConnectionTimeout;
private boolean multipleWriteRegionsEnabled;
private List<String> preferredRegions;
private boolean readRequestsFallbackEnabled;
private ThrottlingRetryOptions throttlingRetryOptions;
private String userAgentSuffix;

// Gateway connection config properties
private int maxConnectionPoolSize = DEFAULT_MAX_POOL_SIZE;
private Duration requestTimeout = DEFAULT_REQUEST_TIMEOUT;
private Duration idleConnectionTimeout = DEFAULT_IDLE_CONNECTION_TIMEOUT;
private int maxConnectionPoolSize;
private Duration requestTimeout;
private ProxyOptions proxy;

// Direct connection config properties
private Duration connectionTimeout;
private Duration idleChannelTimeout;
private Duration idleEndpointTimeout;
private int maxChannelsPerEndpoint;
private int maxRequestsPerChannel;
private int maxConnectionsPerEndpoint;
private int maxRequestsPerConnection;

/**
* Constructor.
Expand All @@ -60,20 +58,22 @@ public ConnectionPolicy(GatewayConnectionConfig gatewayConnectionConfig) {
public ConnectionPolicy(DirectConnectionConfig directConnectionConfig) {
this(ConnectionMode.DIRECT);
this.connectionTimeout = directConnectionConfig.getConnectionTimeout();
this.idleChannelTimeout = directConnectionConfig.getIdleConnectionTimeout();
this.idleConnectionTimeout = directConnectionConfig.getIdleConnectionTimeout();
this.idleEndpointTimeout = directConnectionConfig.getIdleEndpointTimeout();
this.maxChannelsPerEndpoint = directConnectionConfig.getMaxConnectionsPerEndpoint();
this.maxRequestsPerChannel = directConnectionConfig.getMaxRequestsPerConnection();
this.maxConnectionsPerEndpoint = directConnectionConfig.getMaxConnectionsPerEndpoint();
this.maxRequestsPerConnection = directConnectionConfig.getMaxRequestsPerConnection();
this.requestTimeout = directConnectionConfig.getRequestTimeout();
}

private ConnectionPolicy(ConnectionMode connectionMode) {
this.connectionMode = connectionMode;
// Default values
this.throttlingRetryOptions = new ThrottlingRetryOptions();
this.userAgentSuffix = "";
this.readRequestsFallbackEnabled = true;
this.endpointDiscoveryEnabled = true;
this.maxConnectionPoolSize = defaultGatewayMaxConnectionPoolSize;
this.multipleWriteRegionsEnabled = true;
this.readRequestsFallbackEnabled = true;
this.throttlingRetryOptions = new ThrottlingRetryOptions();
this.userAgentSuffix = "";
}

/**
Expand Down Expand Up @@ -389,24 +389,6 @@ public ConnectionPolicy setConnectionTimeout(Duration connectionTimeout) {
return this;
}

/**
* Gets the idle channel timeout
* @return idle channel timeout
*/
public Duration getIdleChannelTimeout() {
return idleChannelTimeout;
}

/**
* Sets the idle channel timeout
* @param idleChannelTimeout idle channel timeout
* @return the {@link ConnectionPolicy}
*/
public ConnectionPolicy setIdleChannelTimeout(Duration idleChannelTimeout) {
this.idleChannelTimeout = idleChannelTimeout;
return this;
}

/**
* Gets the idle endpoint timeout
* @return the idle endpoint timeout
Expand All @@ -429,35 +411,35 @@ public ConnectionPolicy setIdleEndpointTimeout(Duration idleEndpointTimeout) {
* Gets the max channels per endpoint
* @return the max channels per endpoint
*/
public int getMaxChannelsPerEndpoint() {
return maxChannelsPerEndpoint;
public int getMaxConnectionsPerEndpoint() {
return maxConnectionsPerEndpoint;
}

/**
* Sets the max channels per endpoint
* @param maxChannelsPerEndpoint the max channels per endpoint
* @param maxConnectionsPerEndpoint the max channels per endpoint
* @return the {@link ConnectionPolicy}
*/
public ConnectionPolicy setMaxChannelsPerEndpoint(int maxChannelsPerEndpoint) {
this.maxChannelsPerEndpoint = maxChannelsPerEndpoint;
public ConnectionPolicy setMaxConnectionsPerEndpoint(int maxConnectionsPerEndpoint) {
this.maxConnectionsPerEndpoint = maxConnectionsPerEndpoint;
return this;
}

/**
* Gets the max requests per endpoint
* @return the max requests per endpoint
*/
public int getMaxRequestsPerChannel() {
return maxRequestsPerChannel;
public int getMaxRequestsPerConnection() {
return maxRequestsPerConnection;
}

/**
* Sets the max requests per endpoint
* @param maxRequestsPerChannel the max requests per endpoint
* @param maxRequestsPerConnection the max requests per endpoint
* @return the {@link ConnectionPolicy}
*/
public ConnectionPolicy setMaxRequestsPerChannel(int maxRequestsPerChannel) {
this.maxRequestsPerChannel = maxRequestsPerChannel;
public ConnectionPolicy setMaxRequestsPerConnection(int maxRequestsPerConnection) {
this.maxRequestsPerConnection = maxRequestsPerConnection;
return this;
}

Expand All @@ -477,10 +459,9 @@ public String toString() {
", inetSocketProxyAddress=" + proxy.getAddress() +
", readRequestsFallbackEnabled=" + readRequestsFallbackEnabled +
", connectionTimeout=" + connectionTimeout +
", idleChannelTimeout=" + idleChannelTimeout +
", idleEndpointTimeout=" + idleEndpointTimeout +
", maxChannelsPerEndpoint=" + maxChannelsPerEndpoint +
", maxRequestsPerChannel=" + maxRequestsPerChannel +
", maxConnectionsPerEndpoint=" + maxConnectionsPerEndpoint +
", maxRequestsPerConnection=" + maxRequestsPerConnection +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
import com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdRequestArgs;
import com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdRequestRecord;
import com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdServiceEndpoint;
import com.azure.cosmos.implementation.guava25.base.Strings;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import com.azure.cosmos.implementation.guava25.base.Strings;
import io.micrometer.core.instrument.Tag;
import io.netty.handler.ssl.SslContext;
import org.slf4j.Logger;
Expand Down Expand Up @@ -200,7 +200,6 @@ public static final class Options {
private final Duration requestExpiryInterval;

@JsonProperty()
// TODO: (DANOBLE) - should we expose it through com.azure.cosmos.DirectConnectionConfig ?
private final Duration requestTimeout;

@JsonProperty()
Expand All @@ -222,26 +221,7 @@ public static final class Options {

// region Constructors

private Options() {
this.bufferPageSize = 8192;
this.connectionAcquisitionTimeout = Duration.ZERO;
this.connectionTimeout = null;
this.idleChannelTimeout = Duration.ZERO;
this.idleEndpointTimeout = Duration.ofSeconds(70L);
this.maxBufferCapacity = 8192 << 10;
this.maxChannelsPerEndpoint = 10;
this.maxRequestsPerChannel = 30;
this.receiveHangDetectionTime = Duration.ofSeconds(65L);
this.requestExpiryInterval = Duration.ofSeconds(5L);
this.requestTimeout = null;
this.requestTimerResolution = Duration.ofMillis(100L);
this.sendHangDetectionTime = Duration.ofSeconds(10L);
this.shutdownTimeout = Duration.ofSeconds(15L);
this.threadCount = 2 * Runtime.getRuntime().availableProcessors();
this.userAgent = new UserAgentContainer();
}

private Options(Builder builder) {
private Options(final Builder builder) {

this.bufferPageSize = builder.bufferPageSize;
this.connectionAcquisitionTimeout = builder.connectionAcquisitionTimeout;
Expand All @@ -264,6 +244,25 @@ private Options(Builder builder) {
: builder.connectionTimeout;
}

private Options(final ConnectionPolicy connectionPolicy) {
this.bufferPageSize = 8192;
this.connectionAcquisitionTimeout = Duration.ZERO;
this.connectionTimeout = connectionPolicy.getConnectionTimeout();
this.idleChannelTimeout = connectionPolicy.getIdleConnectionTimeout();
this.idleEndpointTimeout = Duration.ofSeconds(70L);
this.maxBufferCapacity = 8192 << 10;
this.maxChannelsPerEndpoint = connectionPolicy.getMaxConnectionsPerEndpoint();
this.maxRequestsPerChannel = connectionPolicy.getMaxRequestsPerConnection();
this.receiveHangDetectionTime = Duration.ofSeconds(65L);
this.requestExpiryInterval = Duration.ofSeconds(5L);
this.requestTimeout = connectionPolicy.getRequestTimeout();
this.requestTimerResolution = Duration.ofMillis(100L);
this.sendHangDetectionTime = Duration.ofSeconds(10L);
this.shutdownTimeout = Duration.ofSeconds(15L);
this.threadCount = 2 * Runtime.getRuntime().availableProcessors();
this.userAgent = new UserAgentContainer();
}

// endregion

// region Accessors
Expand Down Expand Up @@ -379,7 +378,8 @@ public String toString() {
* "requestTimeout": "PT1M",
* "requestTimerResolution": "PT0.5S",
* "sendHangDetectionTime": "PT10S",
* "shutdownTimeout": "PT15S"
* "shutdownTimeout": "PT15S",
* "threadCount": 16
* }}</pre>
* </li>
* </ol>
Expand Down Expand Up @@ -442,7 +442,7 @@ public static class Builder {
}
} finally {
if (options == null) {
DEFAULT_OPTIONS = new Options();
DEFAULT_OPTIONS = new Options(ConnectionPolicy.getDefaultPolicy());
} else {
logger.info("Updated default Direct TCP options from system property {}: {}",
DEFAULT_OPTIONS_PROPERTY_NAME,
Expand Down Expand Up @@ -475,21 +475,17 @@ public static class Builder {

public Builder(ConnectionPolicy connectionPolicy) {

this.requestTimeout(connectionPolicy.getRequestTimeout());

// TODO: (DANOBLE) - Figure out how to get values from connection policy
// At the same time respect the DEFAULT_OPTIONS values - in case user passes some of them.

this.bufferPageSize = DEFAULT_OPTIONS.bufferPageSize;
this.connectionAcquisitionTimeout = DEFAULT_OPTIONS.connectionAcquisitionTimeout;
this.connectionTimeout = DEFAULT_OPTIONS.connectionTimeout;
this.idleChannelTimeout = DEFAULT_OPTIONS.idleChannelTimeout;
this.connectionTimeout = connectionPolicy.getConnectionTimeout();
this.idleChannelTimeout = connectionPolicy.getIdleConnectionTimeout();
this.idleEndpointTimeout = DEFAULT_OPTIONS.idleEndpointTimeout;
this.maxBufferCapacity = DEFAULT_OPTIONS.maxBufferCapacity;
this.maxChannelsPerEndpoint = DEFAULT_OPTIONS.maxChannelsPerEndpoint;
this.maxRequestsPerChannel = DEFAULT_OPTIONS.maxRequestsPerChannel;
this.maxChannelsPerEndpoint = connectionPolicy.getMaxConnectionsPerEndpoint();
this.maxRequestsPerChannel = connectionPolicy.getMaxRequestsPerConnection();
this.receiveHangDetectionTime = DEFAULT_OPTIONS.receiveHangDetectionTime;
this.requestExpiryInterval = DEFAULT_OPTIONS.requestExpiryInterval;
this.requestTimeout = connectionPolicy.getRequestTimeout();
this.requestTimerResolution = DEFAULT_OPTIONS.requestTimerResolution;
this.sendHangDetectionTime = DEFAULT_OPTIONS.sendHangDetectionTime;
this.shutdownTimeout = DEFAULT_OPTIONS.shutdownTimeout;
Expand Down
Loading