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

Kihwal Lee commented on HDFS-9945:
----------------------------------

This patch adds a new dfsadmin command that talks to the specified datanode to 
stop all writers. Since it is a new method and feature, the risk of breaking 
existing code is low.

The only notable change to the existing code is making {{replaceBlock()}} 
update the {{blockReceiver}} class variable instead of its own local variable. 
We want {{evictWriters()}} to also stop replications and balancer-related write 
activities. Because of this change, {{sendOOB()}} was updated to not send if 
{{isDatanode}} is true. Prior to this change, {{sendOOB()}} was not called at 
all when {{replaceBlock()}} is in progress, because {{blockReceiver}}, the 
class variable, was still null.


> Datanode command for evicting writers
> -------------------------------------
>
>                 Key: HDFS-9945
>                 URL: https://issues.apache.org/jira/browse/HDFS-9945
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>          Components: datanode
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>         Attachments: HDFS-9945.patch
>
>
> It will be useful if there is a command to evict writers from a datanode. 
> When a set of datanodes are being decommissioned, they can get blocked by 
> slow writers at the end.  It was rare in the old days since mapred jobs 
> didn't last too long, but with many different types of apps running on 
> today's YARN cluster, we are often see very long tail in datanode 
> decommissioning.
> I propose a new dfsadmin command, {{evictWriters}}, to be added. I initially 
> thought about having namenode automatically telling datanodes on 
> decommissioning, but realized that having a command is more flexible. E.g. 
> users can choose not to do this at all, choose when to evict writers, or 
> whether to try multiple times for whatever reasons.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to