You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Suresh Srinivas (JIRA)" <ji...@apache.org> on 2013/07/10 10:05:48 UTC

[jira] [Commented] (HADOOP-9716) Move the Rpc request call ID generation to client side InvocationHandler

    [ 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