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 (#7). 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, 401 insertions(+), 181 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/38/12338/7 -- 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: 7 Gerrit-Owner: Will Berkeley <wdberke...@gmail.com> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Grant Henke <granthe...@apache.org> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Will Berkeley <wdberke...@gmail.com>