Andrew Sherman has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12672


Change subject: IMPALA-8143: Enhance DoRpcWithRetry().
......................................................................

IMPALA-8143: Enhance DoRpcWithRetry().

Allow callers of RpcMgr::DoRpcWithRetry to specify a time to sleep if
the remote service is busy. Allow callers to specify a logging lambda
that is called for rpc failures. Using this feature, change QueryState
to use DoRpcWithRetry for reporting execution status.

Reviewers should note that the following changes to retry parameters
were made, somewhat arbitrarily. I welcome suggestions as to the correct
values.
 Cancel: add a 3 second sleep if service is busy.
 RemoteShutdown: add a 3 second sleep if service is busy.
 ReportExecStatus: Try up to 2 times to do the rpc, add a 3 second sleep
 if service is busy.

TESTING:

Ran all end-to-end tests.

Add a new test to rpc-mgr-test.cc which tests RpcMgr::DoRpcWithRetry in
two ways. Firstly we test the case where the remote service is busy
(which we force by filling up the queue), and secondly we exercise
DoRpcWithRetry by passing lambdas that simulate failures.

Change the service-side fault injection mechanism of
CancelQueryFInstances and RemoteShutdown to use DebugAction.  Clean up
unused values of FaultInjectionUtil.RpcCallType and match values with
test_rpc_timeout.py.

Change-Id: Ia9693151c35e02235665b3c285a48c585973d390
---
M be/src/rpc/impala-service-pool.cc
M be/src/rpc/impala-service-pool.h
M be/src/rpc/rpc-mgr-test.cc
M be/src/rpc/rpc-mgr.h
M be/src/rpc/rpc-mgr.inline.h
M be/src/runtime/coordinator-backend-state.cc
M be/src/runtime/query-state.cc
M be/src/runtime/query-state.h
M be/src/service/client-request-state.cc
M be/src/service/control-service.cc
M be/src/service/control-service.h
M be/src/testutil/fault-injection-util.h
M tests/custom_cluster/test_rpc_timeout.py
13 files changed, 326 insertions(+), 90 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/72/12672/1
--
To view, visit http://gerrit.cloudera.org:8080/12672
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia9693151c35e02235665b3c285a48c585973d390
Gerrit-Change-Number: 12672
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Sherman <asher...@cloudera.com>
Gerrit-Reviewer: Michael Ho <k...@cloudera.com>
Gerrit-Reviewer: Thomas Marshall <tmarsh...@cloudera.com>

Reply via email to