[
https://issues.apache.org/jira/browse/HDFS-8204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14512675#comment-14512675
]
Tsz Wo Nicholas Sze commented on HDFS-8204:
-------------------------------------------
> ... may causes 2 replicas ends in same node after running balance.
Indeed, it won't happen. The target datanode will reject to receive the
replica since it already has it. So this is a bug only making the scheduling
inefficient but won't cause 2 replicas moved to the same node.
Try your new test without the Dispatcher change. It still passes and you will
find ReplicaAlreadyExistsException in the log.
> Mover/Balancer should not schedule two replicas to the same DN
> --------------------------------------------------------------
>
> Key: HDFS-8204
> URL: https://issues.apache.org/jira/browse/HDFS-8204
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: balancer & mover
> Reporter: Walter Su
> Assignee: Walter Su
> Attachments: HDFS-8204.001.patch, HDFS-8204.002.patch
>
>
> Balancer moves blocks between Datanode(Ver. <2.6 ).
> Balancer moves blocks between StorageGroups ( introduced by HDFS-6584) , in
> the new version(Ver. >=2.6) .
> function
> {code}
> class DBlock extends Locations<StorageGroup>
> DBlock.isLocatedOn(StorageGroup loc)
> {code}
> is flawed, may causes 2 replicas ends in same node after running balance.
> For example:
> We have 2 nodes. Each node has two storages.
> We have (DN0, SSD), (DN0, DISK), (DN1, SSD), (DN1, DISK).
> We have a block with ONE_SSD storage policy.
> The block has 2 replicas. They are in (DN0,SSD) and (DN1,DISK).
> Replica in (DN0,SSD) should not be moved to (DN1,SSD) after running Balancer.
> Otherwise DN1 has 2 replicas.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)