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

Aaron T. Myers commented on HDFS-3507:
--------------------------------------

My preference is to introduce a new isInSafeMode or getSafeMode function to the 
ClientProtocol, instead of parameterizing the check. I've always found it a 
little bizarre that a method called "setSafeMode" actually may not set 
anything, and may be non-mutative depending upon a parameter. I don't feel 
super strongly about this, though. Nicholas, is there some reason you prefer 
keeping this as a single method?

Two comments on the correctness of the patch:

# The new parameter in the SetSafeModeRequestProto should be marked optional, 
defaulted to false, to maintain compatibility.
# Seems like the calls in DFSAdmin should be passing "true" for isChecked, so 
that the the active NN is used.

Another issue related to this: I'm not super happy with the current handling of 
setting (not getting) safemode in an HA setup, since an admin command will only 
affect a single NN. Imagine the scenario where an operator runs `hdfs dfsadmin 
-safemode enter' and then a failure occurs of the active NN, triggering a 
failover. Presently, this will have the side effect of causing HDFS to leave 
safe mode. I think when an operator calls `safemode -enter' they usually intend 
to put the HDFS _service_ into safemode, and not any particular NN. Perhaps we 
should make the the DFSAdmin command notice when a logical HA URI is being 
used, and make the appropriate RPC call to _all_ of the NNs, instead of just 
one? There's some related discussion about this on HDFS-3744, where we discuss 
the fact that one must call `hdfs dfsadmin -refreshNodes' on both NNs in an HA 
setup.

What are peoples' thoughts on this issue?
                
> DFS#isInSafeMode needs to execute only on Active NameNode
> ---------------------------------------------------------
>
>                 Key: HDFS-3507
>                 URL: https://issues.apache.org/jira/browse/HDFS-3507
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: ha
>    Affects Versions: 2.1.0-alpha, 3.0.0
>            Reporter: Vinay
>            Assignee: Vinay
>            Priority: Critical
>         Attachments: HDFS-3507.patch, HDFS-3507.patch
>
>
> Currently DFS#isInSafeMode is not Checking for the NN state. It can be 
> executed on any of the NNs.
> But HBase will use this API to check for the NN safemode before starting up 
> its service.
> If first NN configured is in standby then DFS#isInSafeMode will check standby 
> NNs safemode but hbase want state of Active NN.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to