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

caozhiqiang commented on HDFS-16613:
------------------------------------

[~tasanuma], Yes, with this change, the 
dfs.namenode.replication.max-streams-hard-limit configuration will only affect 
decommissioning DataNode, but will not distinguish between replication blocks 
and EC blocks. If you consider this configuration should only effect EC blocks, 
we can change code in DatanodeManager like below:

 
{code:java}
int maxReplicaTransfers = blockManager.getMaxReplicationStreams() - 
xmitsInProgress;;
int maxEcTransfers;
 if (nodeinfo.isDecommissionInProgress()) {   
   maxEcTransfers = blockManager.getReplicationStreamsHardLimit()
      - xmitsInProgress;
} else {   
   maxEcTransfers = blockManager.getMaxReplicationStreams()
      - xmitsInProgress;
}
int numReplicationTasks = (int) Math.ceil(
    (double) (totalReplicateBlocks * maxReplicaTransfers) / totalBlocks);
int numECTasks = (int) Math.ceil(
    (double) (totalECBlocks * maxEcTransfers) / totalBlocks); {code}
 

 

> EC: Improve performance of decommissioning dn with many ec blocks
> -----------------------------------------------------------------
>
>                 Key: HDFS-16613
>                 URL: https://issues.apache.org/jira/browse/HDFS-16613
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: ec, erasure-coding, namenode
>    Affects Versions: 3.4.0
>            Reporter: caozhiqiang
>            Assignee: caozhiqiang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.4.0
>
>         Attachments: image-2022-06-07-11-46-42-389.png, 
> image-2022-06-07-17-42-16-075.png, image-2022-06-07-17-45-45-316.png, 
> image-2022-06-07-17-51-04-876.png, image-2022-06-07-17-55-40-203.png, 
> image-2022-06-08-11-38-29-664.png, image-2022-06-08-11-41-11-127.png
>
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> In a hdfs cluster with a lot of EC blocks, decommission a dn is very slow. 
> The reason is unlike replication blocks can be replicated from any dn which 
> has the same block replication, the ec block have to be replicated from the 
> decommissioning dn.
> The configurations dfs.namenode.replication.max-streams and 
> dfs.namenode.replication.max-streams-hard-limit will limit the replication 
> speed, but increase these configurations will create risk to the whole 
> cluster's network. So it should add a new configuration to limit the 
> decommissioning dn, distinguished from the cluster wide max-streams limit.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to