[ 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)