You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sz...@apache.org on 2013/08/15 07:06:06 UTC
svn commit: r1514159 - in /hadoop/common/branches/branch-1: CHANGES.txt
src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java
Author: szetszwo
Date: Thu Aug 15 05:06:06 2013
New Revision: 1514159
URL: http://svn.apache.org/r1514159
Log:
HDFS-4898. BlockPlacementPolicyWithNodeGroup.chooseRemoteRack() fails to properly fallback to local rack. (szetszwo)
Modified:
hadoop/common/branches/branch-1/CHANGES.txt
hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java
Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1514159&r1=1514158&r2=1514159&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Thu Aug 15 05:06:06 2013
@@ -126,6 +126,9 @@ Release 1.3.0 - unreleased
MAPREDUCE-5367. Local jobs all use same local working directory
(Sandy Ryza)
+ HDFS-4898. BlockPlacementPolicyWithNodeGroup.chooseRemoteRack() fails to
+ properly fallback to local rack. (szetszwo)
+
Release 1.2.2 - unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java?rev=1514159&r1=1514158&r2=1514159&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java (original)
+++ hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyWithNodeGroup.java Thu Aug 15 05:06:06 2013
@@ -169,16 +169,17 @@ public class BlockPlacementPolicyWithNod
long blocksize, int maxReplicasPerRack, List<DatanodeDescriptor> results,
boolean avoidStaleNodes) throws NotEnoughReplicasException {
int oldNumOfReplicas = results.size();
- // randomly choose one node from remote racks
+
+ final String rackLocation = NetworkTopology.getFirstHalf(
+ localMachine.getNetworkLocation());
try {
- chooseRandom(
- numOfReplicas,
- "~" + NetworkTopology.getFirstHalf(localMachine.getNetworkLocation()),
- excludedNodes, blocksize, maxReplicasPerRack, results,
- avoidStaleNodes);
+ // randomly choose from remote racks
+ chooseRandom(numOfReplicas, "~" + rackLocation, excludedNodes, blocksize,
+ maxReplicasPerRack, results, avoidStaleNodes);
} catch (NotEnoughReplicasException e) {
+ // fall back to the local rack
chooseRandom(numOfReplicas - (results.size() - oldNumOfReplicas),
- localMachine.getNetworkLocation(), excludedNodes, blocksize,
+ rackLocation, excludedNodes, blocksize,
maxReplicasPerRack, results, avoidStaleNodes);
}
}