[ 
https://issues.apache.org/jira/browse/HDFS-9006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ming Ma updated HDFS-9006:
--------------------------
    Attachment: HDFS-9006-2.patch

Thanks [~eddyxu] for the great input! Here is the updated patch.

bq. We can make class members in ... to be private final.
Fixed {{BlockPlacementStatusWithUpgradeDomain}}. 
{{BlockPlacementPolicyWithUpgradeDomain}}'s class members can't be final as 
they are inited during {{initialize}} call.
bq. Since we are using JDK7 now, we can use type inference ...
Fixed. Also updated other modified files in the patch.
bq. Can you make some adjustments on the comments for ...
Good point. I have updated the comment to explain the algorithm better as you 
suggest.
bq. Regarding of #3, what is the typical relationship between rack and upgrade 
domains
In our deployment, we use machine position within the rack as upgrade domain 
id. But it is possible to config the cluster to have the same upgrade domain 
cover more than one machine position; for example, machines at position {1,2} 
within any rack have upgrade domain 1, {3,4} have upgrade domain 2, etc.
bq. what kind of implication it will have to the current data availability 
model?
Great point. I have updated the description for the method to explain the 
correctness of the approach. In short, upgrade domain policy will keep "any 
block should be on at least two racks" policy.

> Provide BlockPlacementPolicy that supports upgrade domain
> ---------------------------------------------------------
>
>                 Key: HDFS-9006
>                 URL: https://issues.apache.org/jira/browse/HDFS-9006
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Ming Ma
>            Assignee: Ming Ma
>         Attachments: HDFS-9006-2.patch, HDFS-9006.patch
>
>
> As part of the upgrade domain feature, we need to provide the actual upgrade 
> domain block placement.
> Namenode provides a mechanism to specify custom block placement policy. We 
> can use that to implement BlockPlacementPolicy with upgrade domain support.
> {noformat}
> <property>
> <name>dfs.block.replicator.classname</name>
> <value>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyWithUpgradeDomain</value>
> </property>
> {noformat}



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

Reply via email to