You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by GitBox <gi...@apache.org> on 2019/01/13 19:41:58 UTC
[spark] Diff for: [GitHub] srowen closed pull request #20512:
[SPARK-23182][CORE] Allow enabling TCP keep alive on the RPC connections
diff --git a/common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java b/common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java
index 0719fa7647bcc..35155bb4eef15 100644
--- a/common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java
+++ b/common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java
@@ -115,6 +115,10 @@ private void init(String hostToBind, int portToBind) {
bootstrap.childOption(ChannelOption.SO_SNDBUF, conf.sendBuf());
}
+ if (conf.enableTcpKeepAlive()) {
+ bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);
+ }
+
bootstrap.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) {
diff --git a/common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java b/common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java
index 91497b9492219..e5351f4b603d2 100644
--- a/common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java
+++ b/common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java
@@ -41,6 +41,7 @@
private final String SPARK_NETWORK_IO_RETRYWAIT_KEY;
private final String SPARK_NETWORK_IO_LAZYFD_KEY;
private final String SPARK_NETWORK_VERBOSE_METRICS;
+ private final String SPARK_NETWORK_IO_ENABLETCPKEEPALIVE_KEY;
private final ConfigProvider conf;
@@ -63,6 +64,7 @@ public TransportConf(String module, ConfigProvider conf) {
SPARK_NETWORK_IO_RETRYWAIT_KEY = getConfKey("io.retryWait");
SPARK_NETWORK_IO_LAZYFD_KEY = getConfKey("io.lazyFD");
SPARK_NETWORK_VERBOSE_METRICS = getConfKey("io.enableVerboseMetrics");
+ SPARK_NETWORK_IO_ENABLETCPKEEPALIVE_KEY = getConfKey("io.enableTcpKeepAlive");
}
public int getInt(String name, int defaultValue) {
@@ -172,6 +174,14 @@ public boolean verboseMetrics() {
return conf.getBoolean(SPARK_NETWORK_VERBOSE_METRICS, false);
}
+ /**
+ * Whether to enable TCP keep-alive. If true, the TCP keep-alives are enabled, which removes
+ * connections that are idle for too long.
+ */
+ public boolean enableTcpKeepAlive() {
+ return conf.getBoolean(SPARK_NETWORK_IO_ENABLETCPKEEPALIVE_KEY, false);
+ }
+
/**
* Maximum number of retries when binding to a port before giving up.
*/
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org