Joe McDonnell has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/22254


Change subject: IN-PROGRESS: IMPALA-13253: Add option to enable keepalive for 
client connections
......................................................................

IN-PROGRESS: IMPALA-13253: Add option to enable keepalive for client connections

Client connections can drop without an explicit close. This can
happen if client machine resets or there is a network disruption.
Some load balancers have an idle timeout that result in the
connection becoming invalid without an explicit teardown. With
short idle timeouts (e.g. AWS LB has a timeout of 350 seconds),
this can impact many connections.

This adds the enable_client_tcp_keepalive startup option to control
whether to turn on TCP keepalive for client connections. It also
provides startup options to tune the parameters for TPC keepalive:
client_keepalive_idle_time_sec - idle time before doing keepalive probes
client_keepalive_retry_time_sec - time between keepalive probes
client_keepalive_num_retries - number of keepalive probes

Thrift has preexisting support for turning on keepalive, but that
support uses the OS defaults for keepalive settings. To add the
ability to tune the keepalive settings, this implements a wrapper
around the Thrift socket (both TLS and non-TLS) and manually sets
the keepalive options on the socket (mirroring code from Kudu's
Socket::SetTcpKeepAlive).

This currently does not turn it on by default, but that may
change in a future version of this patch.

TODO:
 - Write unit tests for this
 - Decide on default values

Change-Id: I9e50f263006c456bc0797b8306aa4065e9713450
---
M be/src/rpc/thrift-server.cc
M be/src/rpc/thrift-server.h
M be/src/rpc/thrift-util.cc
M be/src/rpc/thrift-util.h
M be/src/service/impala-server.cc
5 files changed, 166 insertions(+), 4 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/54/22254/1
--
To view, visit http://gerrit.cloudera.org:8080/22254
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e50f263006c456bc0797b8306aa4065e9713450
Gerrit-Change-Number: 22254
Gerrit-PatchSet: 1
Gerrit-Owner: Joe McDonnell <[email protected]>

Reply via email to