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

Jing Zhao commented on HDFS-5999:
---------------------------------

Thanks for the review, Nicholas!

bq. Let's call hasRollbackFSImage in FSEditLogLoader.
Here the issue is, we want to call this "check and save namespace for the 
rollback image" between 1) the check for starting rolling upgrade, and 2) 
create the rolling upgrade object in fsnamesystem. Otherwise the rolling 
upgrade object can be persisted into the rollback fsimage. Thus to call 
hasRollbackFSImage in FSEditLogLoader becomes difficult.

But HDFS-6000 will change this part of code and we no longer need to save 
namespace when starting rolling upgrade. So we can revisit 
startRollingUpgradeInternal there. What do you think?

> Do not create rollback fsimage when it already exists
> -----------------------------------------------------
>
>                 Key: HDFS-5999
>                 URL: https://issues.apache.org/jira/browse/HDFS-5999
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, ha, hdfs-client, namenode
>            Reporter: Jing Zhao
>            Assignee: Jing Zhao
>         Attachments: HDFS-5999.000.patch
>
>
> Currently in FSEditLogLoader#applyEditLogOp, if the op is 
> OP_START_LOG_SEGMENT, we do an extra rollback fsimage with condition 
> "totalEdits > 1".
> This may cause some issue when we restart a NN with new software. If there is 
> no extra checkpoint after the rollback image, the NN may generate a new 
> rollback image using the new software, and replace the old rollback image. 
> Then later if we want to do rollback the NN, which uses the old software, may 
> not be able to load the rollback image.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to