[tserver] validate scanner TTL vs RPC connection timeout

This patch adds a group validator for --scanner_ttl_ms and
--rpc_default_keepalive_time_ms flags.  The validator outputs a warning
(not an error though) if the TTL for an idle scanner is greater than the
timeout for an idle RPC connection.

Even if an idle scanner is kept alive at the server side for some time,
Kudu servers periodically close connections that have been idle at least
for --rpc_default_keepalive_time_ms time interval.  So, setting the
--rpc_default_keepalive_time_ms flag to a greater or equal value than
--scanner_ttl_ms helps keeping yet-to-be-used connections to idle
scanners open, avoiding inadvertent closure and re-opening connections
to scanners that might yet be sent continuation scan requests.  The new
constraint also helps to work around one particular bug [1] in the Kudu
Java client.

I didn't add a test for the newly added validator, but I manually
verified that the warning is output as expected when necessary.

[1] https://issues.apache.org/jira/browse/KUDU-3169

Change-Id: If1439dfb6eb82ba2be0472547b04e5a692879535
Reviewed-on: http://gerrit.cloudera.org:8080/19152
Tested-by: Alexey Serbin <alexey@apache.org>
Reviewed-by: Yuqi Du <shenxingwuying@gmail.com>
Reviewed-by: Yingchun Lai <acelyc1112009@gmail.com>
1 file changed