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

Arpit Agarwal commented on HDFS-6005:
-------------------------------------

Hi Suresh,

The patch looks good. The new approach is much nicer. Minor points, +1 
otherwise.
# {{restoreBlockFilesFromTrash}} - the initialization {{File restoreDirectory = 
null;}} was intended to be outside the for loop. This avoids recomputing 
{{restoreDirectory}} for each child of the same {{trashRoot}}. The move looks 
unintentional since there is an assignment to null followed by a check for null.
# Nitpick - Incomplete comment in TestDataNodeRollingUpgrade.java: {{// Ensure 
trash is}}.

> Simplify Datanode rollback and downgrade
> ----------------------------------------
>
>                 Key: HDFS-6005
>                 URL: https://issues.apache.org/jira/browse/HDFS-6005
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, namenode
>            Reporter: Suresh Srinivas
>            Assignee: Suresh Srinivas
>         Attachments: HDFS-6005.01.patch, HDFS-6005.02.patch, HDFS-6005.patch
>
>
> Problem:
> When rolling upgrade fails, the cluster can either be downgraded or rolled 
> back. With the current functionality in this feature branch, it is possible 
> to downgrade namenode, while datanode is incorrectly rolled back. This does 
> not affect the cluster state. The old blocks that appear back on the datanode 
> due to rollback will be deleted. Similarly it is also possible to rollback 
> namenode, while datanode is not rolled back. This can cause problem where old 
> blocks do not appear back on the datanode and can result in missing blocks.
> Solution:
> I propose making the following changes:
> During rollback or downgrade, the entire cluster must be restarted. The 
> datanodes always restore the deleted blocks on restart and go back to trash 
> disabled mode. There is no need for datanodes to be started up 
> -rollingUpgrade -rollback, anymore.
> # On namenode downgrade, the restored blocks are deleted.
> # On namenode rollback, the restored blocks will be retained and any newly 
> created blocks (since the start of rolling upgrade) are deleted.
> This is much simpler operationally and solves the problem described above.



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

Reply via email to