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

Reply via email to