[ 
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: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to