[ 
https://issues.apache.org/jira/browse/HDFS-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jinglun updated HDFS-13388:
---------------------------
    Description: 
In HDFS-7858 RequestHedgingProxyProvider was designed to "first simultaneously 
call multiple configured NNs to decide which is the active Namenode and then 
for subsequent calls it will invoke the previously successful NN ." But the 
current code call multiple configured NNs every time even when we already got 
the successful NN. 
 That's because in RetryInvocationHandler.java, ProxyDescriptor's member 
proxyInfo is assigned only when it is constructed or when failover occurs. 
RequestHedgingProxyProvider.currentUsedProxy is null in both cases, so the only 
proxy we can get is always a dynamic proxy handled by 
RequestHedgingInvocationHandler.class. RequestHedgingInvocationHandler.class 
handles invoked method by calling multiple configured NNs.

  was:
In HDFS-7858 RequestHedgingProxyProvider was designed to "first simultaneously 
call multiple configured NNs to decide which is the active Namenode and then 
for subsequent calls it will invoke the previously successful NN ." But the 
current code call multiple configured NNs every time even when we already got 
the successful NN. 
 That's because in RetryInvocationHandler.java, ProxyDescriptor's member 
proxyInfo is assigned only when it is constructed or when failover occurs. 
RequestHedgingProxyProvider.currentUsedProxy is null in both cases, so the only 
proxy we can get is always a dynamic proxy handled by 
RequestHedgingInvocationHandler.class. RequestHedgingInvocationHandler.class 
handles invoked method by call multiple configured NNs.


> RequestHedgingProxyProvider calls multiple configured NNs all the time
> ----------------------------------------------------------------------
>
>                 Key: HDFS-13388
>                 URL: https://issues.apache.org/jira/browse/HDFS-13388
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs-client
>            Reporter: Jinglun
>            Priority: Major
>         Attachments: HADOOP-13388.0001.patch
>
>
> In HDFS-7858 RequestHedgingProxyProvider was designed to "first 
> simultaneously call multiple configured NNs to decide which is the active 
> Namenode and then for subsequent calls it will invoke the previously 
> successful NN ." But the current code call multiple configured NNs every time 
> even when we already got the successful NN. 
>  That's because in RetryInvocationHandler.java, ProxyDescriptor's member 
> proxyInfo is assigned only when it is constructed or when failover occurs. 
> RequestHedgingProxyProvider.currentUsedProxy is null in both cases, so the 
> only proxy we can get is always a dynamic proxy handled by 
> RequestHedgingInvocationHandler.class. RequestHedgingInvocationHandler.class 
> handles invoked method by calling multiple configured NNs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to