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

Harshakiran Reddy commented on HDFS-14660:
------------------------------------------

{code:java}
if (HAServiceState.OBSERVER.equals(namesystem.getState()) &&
                !header.hasStateId()) {
{code}
Nothing major but may be the if condition can be flipped checking state id 
would be cheaper than checking the state. Apart from this and modifications to 
the test, to check standbyexception, else LGTM.

> [SBN Read] ObserverNameNode should throw StandbyException for requests not 
> from ObserverProxyProvider
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-14660
>                 URL: https://issues.apache.org/jira/browse/HDFS-14660
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Chao Sun
>            Assignee: Chao Sun
>            Priority: Major
>         Attachments: HDFS-14660.000.patch, HDFS-14660.001.patch
>
>
> In a HDFS HA cluster with consistent reads enabled (HDFS-12943), clients 
> could be using either {{ObserverReadProxyProvider}}, 
> {{ConfiguredProxyProvider}}, or something else. Since observer is just a 
> special type of SBN and we allow transitions between them, a client NOT using 
> {{ObserverReadProxyProvider}} will need to have 
> {{dfs.ha.namenodes.<nameservice>}} include all NameNodes in the cluster, and 
> therefore, it may send request to a observer node.
> For this case, we should check whether the {{stateId}} in the incoming RPC 
> header is set or not, and throw an {{StandbyException}} when it is not. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to