Hello Mike Percy, Alexey Serbin, Kudu Jenkins, Adar Dembo, Grant Henke,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/12338
to look at the new patch set (#9).
Change subject: KUDU-1868: Part 1: Add timer-based RPC timeouts
......................................................................
KUDU-1868: Part 1: Add timer-based RPC timeouts
Currently, the Java client requires some kind of event to detect the
timeout of an RPC: either a response from the server in the chain of
sub-RPCs or a socket read timeout on the connection. This patch adds a
timer task to actively time out an RPC once it passes its deadline.
Part 2 will eliminate socket read timeouts from the Java client, except
possibly in the case of negotiation, which will fully resolve KUDU-1868.
There is one test included, which checks that timeouts occur without an
"outside stimulus" like a response from the server.
This patch should not degrade the performance of the client. Even though
every timer task holds a reference to its RPC, when the RPC completes it
cancels the timer task, which will make the timer release it at the next
tick. This means the RPC and its task should be available to be GC'd
after the next tick of the timer.
Change-Id: I8d823b63ac0a41cc5e42b63a7c19e0ef777e1dea
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/BatchResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToMasterRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/DeleteTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/DeleteTableResponse.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableLocationsRequest.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/IsAlterTableDoneRequest.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/IsCreateTableDoneRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesResponse.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletServersRequest.java
M
java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletServersResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletsRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletsResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/OperationResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResultIterator.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java
M
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
33 files changed, 422 insertions(+), 184 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/38/12338/9
--
To view, visit http://gerrit.cloudera.org:8080/12338
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I8d823b63ac0a41cc5e42b63a7c19e0ef777e1dea
Gerrit-Change-Number: 12338
Gerrit-PatchSet: 9
Gerrit-Owner: Will Berkeley <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Grant Henke <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy <[email protected]>
Gerrit-Reviewer: Will Berkeley <[email protected]>