Adar Dembo has posted comments on this change. Change subject: KUDU-1409. Make krpc call timeouts more resistant to process or reactor pauses ......................................................................
Patch Set 3: (1 comment) Pretty clever solution, though I wonder how widespread this issue is outside of Impala. Just to make sure I understand, this is only a mitigation mechanism at best, because it can only reduce the likelihood of process pauses triggering Kudu timeouts, right? That is, a pause during the second stage will still result in a timeout even if the RPC result is sitting in the socket. Did you measure the effect on Impala, in a set of queries that would previously have triggered unnecessary timeouts? Relatedly, are you aware of any other client connectors that similarly try to work around process pauses? For example, I'd imagine this would be a bigger deal in the JVM where GC-related pauses are a more common thing; does Netty employ something like this to soften the blow for clients? http://gerrit.cloudera.org:8080/#/c/2745/3/src/kudu/rpc/connection.cc File src/kudu/rpc/connection.cc: Line 325: // T = 6s process unblocks, and the first-stage timeout fires (1s late) Nit: technically 1.5s as the first stage timeout was only 4.5s long, not 5s. -- To view, visit http://gerrit.cloudera.org:8080/2745 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I7bff0bc1573a059f12be8bd3f46e301275e78392 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <[email protected]> Gerrit-HasComments: Yes
