[ 
https://issues.apache.org/jira/browse/HADOOP-9716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13704294#comment-13704294
 ] 

Suresh Srinivas commented on HADOOP-9716:
-----------------------------------------

Current chain of calls is for method invocation is:
* Method is invoked on proxy
* It passes it to InvocationHandler.
* Method invocation delegates it to Invoker
* Invoker creates a new RPC request, which results in new call with a new call 
ID

In this jira, I propose making the following change:
* InvocationHandler generates a new call ID before method.invoke() call.
* Stores the call ID in a ThreadLocal variable in {{Client}} class. It also 
stores ThreadLocal variable in {{Client}} class for number of retry attempts.
* {{Client#call}} method simply uses the generated callID.
* InvocationHandler does not generate new call ID for retry attempts.

                
> Move the Rpc request call ID generation to client side InvocationHandler
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-9716
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9716
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Suresh Srinivas
>
> Currently when RetryInvocationHandler is used to retry an RPC request, a new 
> RPC request call ID is generated. This jira proposes moving call ID 
> generation to InvocationHandler so that retried RPC requests retain the same 
> call ID. This is needed for RetryCache functionality proposed in HDFS-4942.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to