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

Kihwal Lee commented on HDFS-5924:
----------------------------------

bq. By seeing the patch attached, waiting will happen if only local datanode is 
restarted for upgrade. Is that enough? no need to wait if other node in the 
pipeline is being upgraded.?

It will wait for a non-local datanode if the node is the only one in the write 
pipeline. Otherwise, clients will simply apply the normal pipeline recovery 
procedure, which will take less time.  The abandoned replica will get 
block-reported when the datanode restarts. If the client did pipeline recovery, 
NN can mark it as corrupt right away since the generation number wouldn't 
match. If the report comes before the  pipeline recovery, it will be added in 
the replica list of the BlockInfoUnderConstruction, if not already there. When 
the pipeline recovery performed by the client, the outdated replica will get 
removed.

> Utilize OOB upgrade message processing for writes
> -------------------------------------------------
>
>                 Key: HDFS-5924
>                 URL: https://issues.apache.org/jira/browse/HDFS-5924
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, ha, hdfs-client, namenode
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>         Attachments: HDFS-5924_RBW_RECOVERY.patch, 
> HDFS-5924_RBW_RECOVERY.patch
>
>
> After HDFS-5585 and HDFS-5583, clients and datanodes can coordinate 
> shutdown-restart in order to minimize failures or locality loss.
> In this jira, HDFS client is made aware of the restart OOB ack and perform 
> special write pipeline recovery. Datanode is also modified to load marked RBW 
> replicas as RBW instead of RWR as long as the restart did not take long. 
> For clients, it considers doing this kind of recovery only when there is only 
> one node left in the pipeline or the restarting node is a local datanode.  
> For both clients and datanodes, the timeout or expiration is configurable, 
> meaning this feature can be turned off by setting timeout variables to 0.



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

Reply via email to