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

Ming Ma commented on HDFS-8647:
-------------------------------

Most of the test failures are due to mismatch between BlockManager and function 
definition of {{chooseReplicasToDelete}}; BlockManager should swap 
{{addedNode}} and {{delNodeHint}}.

After the fix, the only failed unit test left is 
{{TestBalancer#testBalancerWithPinnedBlocks}}. Can you please investigate if it 
is related to the patch?

Nits:
* {{public}} can be removed from {{public DatanodeStorageInfo 
chooseReplicaToDelete}}.
* {{final List<DatanodeStorageInfo> moreThanOne = new 
ArrayList<DatanodeStorageInfo>();}} Given hadoop uses JDK7, you can simplify 
this with type inference {{final List<DatanodeStorageInfo> moreThanOne = new 
ArrayList<>();}} Same for other places in the patch.
* {{chooseReplicaToDelete}}’s parameter {{Collection<DatanodeStorageInfo> 
first}}. How about name it {{moreThanOne}} instead? Similarly for {{second}}.


> Abstract BlockManager's rack policy into BlockPlacementPolicy
> -------------------------------------------------------------
>
>                 Key: HDFS-8647
>                 URL: https://issues.apache.org/jira/browse/HDFS-8647
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Ming Ma
>            Assignee: Brahma Reddy Battula
>         Attachments: HDFS-8647-001.patch, HDFS-8647-002.patch, 
> HDFS-8647-003.patch, HDFS-8647-004.patch, HDFS-8647-004.patch, 
> HDFS-8647-005.patch, HDFS-8647-006.patch
>
>
> Sometimes we want to have namenode use alternative block placement policy 
> such as upgrade domains in HDFS-7541.
> BlockManager has built-in assumption about rack policy in functions such as 
> useDelHint, blockHasEnoughRacks. That means when we have new block placement 
> policy, we need to modify BlockManager to account for the new policy. Ideally 
> BlockManager should ask BlockPlacementPolicy object instead. That will allow 
> us to provide new BlockPlacementPolicy without changing BlockManager.



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

Reply via email to