[
https://issues.apache.org/jira/browse/IMPALA-8143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Sherman updated IMPALA-8143:
-----------------------------------
Description:
DoRpcWithRetry() is a templated utility function that is currently in
control-service.h that is used to retry synchronous Krpc calls. It makes a call
to a Krpc function that is is passed as a lambda function. It sets the krpc
timeout to the ‘krpc_timeout‘ parameter and calls the Krpc function a number of
times controlled by the ‘times_to_try’ parameter.
Possible improvements:
* Move code to rpc-mgr.inline.h
* Add a configurable sleep if RpcMgr::IsServerTooBusy() says the remote
server’s queue is full.
* Do we want exponential backoff? How can we test this?
* how long should the sleep be for existing clients?
* Make QueryState::ReportExecStatus() use DoRpcWithRetry()
* Consider if asynchronous code like that in KrpcDataStreamSender::Channel
can also use DoRpcWithRetry()
* Replace FAULT_INJECTION_RPC_DELAY with DebugAction
was:
DoRpcWithRetry() is a templated utility function that is currently in
control-service.h that is used to retry synchronous Krpc calls. It makes a call
to a Krpc function that is is passed as a lambda function. It sets the krpc
timeout to the ‘krpc_timeout‘ parameter and calls the Krpc function a number of
times controlled by the ‘times_to_try’ parameter.
Possible improvements:
* Move code to rpc-mgr.inline.h
* Add a configurable sleep if RpcMgr::IsServerTooBusy() says the remote
server’s queue is full.
* Make QueryState::ReportExecStatus() use DoRpcWithRetry()
* Consider if asynchronous code like that in KrpcDataStreamSender::Channel
can also use DoRpcWithRetry()
* Replace FAULT_INJECTION_RPC_DELAY with DebugAction
> Add features to DoRpcWithRetry()
> --------------------------------
>
> Key: IMPALA-8143
> URL: https://issues.apache.org/jira/browse/IMPALA-8143
> Project: IMPALA
> Issue Type: Task
> Reporter: Andrew Sherman
> Assignee: Andrew Sherman
> Priority: Major
>
> DoRpcWithRetry() is a templated utility function that is currently in
> control-service.h that is used to retry synchronous Krpc calls. It makes a
> call to a Krpc function that is is passed as a lambda function. It sets the
> krpc timeout to the ‘krpc_timeout‘ parameter and calls the Krpc function a
> number of times controlled by the ‘times_to_try’ parameter.
> Possible improvements:
> * Move code to rpc-mgr.inline.h
> * Add a configurable sleep if RpcMgr::IsServerTooBusy() says the remote
> server’s queue is full.
> * Do we want exponential backoff? How can we test this?
> * how long should the sleep be for existing clients?
> * Make QueryState::ReportExecStatus() use DoRpcWithRetry()
> * Consider if asynchronous code like that in KrpcDataStreamSender::Channel
> can also use DoRpcWithRetry()
> * Replace FAULT_INJECTION_RPC_DELAY with DebugAction
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]