Doris Gu created HDFS-11104:
-------------------------------

             Summary: BlockPlacementPolicyDefault choose favoredNodes in turn 
which may cause imbalance
                 Key: HDFS-11104
                 URL: https://issues.apache.org/jira/browse/HDFS-11104
             Project: Hadoop HDFS
          Issue Type: Bug
            Reporter: Doris Gu


if client transfer favoredNodes when it writes files into hdfs,chooseTarget in 
BlockPlacementPolicyDefault prior chooseTarget in turn:
{quote}
    DatanodeStorageInfo[] chooseTarget(String src,
      int numOfReplicas,
      Node writer,
      Set<Node> excludedNodes,
      long blocksize,
      List<DatanodeDescriptor> favoredNodes,
      BlockStoragePolicy storagePolicy) {
    try {
    ...

   *for (int i = 0; i < favoredNodes.size() && results.size() < numOfReplicas; 
i++)* {
        DatanodeDescriptor favoredNode = favoredNodes.get(i);
        // Choose a single node which is local to favoredNode.
        // 'results' is updated within chooseLocalNode
        final DatanodeStorageInfo target = chooseLocalStorage(favoredNode,
            favoriteAndExcludedNodes, blocksize, maxNodesPerRack,
            results, avoidStaleNodes, storageTypes, false);
      ...
{quote}
why not shuffle it?
{quote}
 *for (DatanodeDescriptor favoredNode : 
DFSUtil.shuffle(favoredNodes.toArray(new 
DatanodeDescriptor[favoredNodes.size()]))) *
{quote}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to