[ https://issues.apache.org/jira/browse/HADOOP-3799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12721805#action_12721805 ]
Tom White commented on HADOOP-3799: ----------------------------------- Hi Dhruba, A couple more comments: > BlockPlacementInterface#chooseTarget(). Make excludedNodes a > List<DatanodeDescriptor>. Implementations may choose to turn it into a map if > they need to, but for the interface, it should just be a list, shouldn't it? I think you missed this change. I'm not convinced that ReplicationPolicyChooser is needed. Couldn't we add a static method (e.g. getInstance()) to BlockPlacementPolicy to construct a BlockPlacementPolicy from the dfs.block.replicator.classname property? We can add an overloaded chooseTarget() method to BlockPlacementPolicy which doesn't take a chosenNodes argument (BTW this is misspelt as "choosenNodes" in BlockPlacementPolicy). > Design a pluggable interface to place replicas of blocks in HDFS > ---------------------------------------------------------------- > > Key: HADOOP-3799 > URL: https://issues.apache.org/jira/browse/HADOOP-3799 > Project: Hadoop Core > Issue Type: Improvement > Components: dfs > Reporter: dhruba borthakur > Assignee: dhruba borthakur > Attachments: BlockPlacementPluggable.txt, BlockPlacementPluggable2.txt > > > The current HDFS code typically places one replica on local rack, the second > replica on remote random rack and the third replica on a random node of that > remote rack. This algorithm is baked in the NameNode's code. It would be nice > to make the block placement algorithm a pluggable interface. This will allow > experimentation of different placement algorithms based on workloads, > availability guarantees and failure models. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.