You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by sz...@apache.org on 2013/09/18 17:12:53 UTC
svn commit: r1524444 [3/3] - in
/hadoop/common/branches/HDFS-2832/hadoop-hdfs-project/hadoop-hdfs: ./
src/main/java/org/apache/hadoop/hdfs/
src/main/java/org/apache/hadoop/hdfs/protocol/
src/main/java/org/apache/hadoop/hdfs/protocolPB/ src/main/java/or...
Modified: hadoop/common/branches/HDFS-2832/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicyWithNodeGroup.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-2832/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicyWithNodeGroup.java?rev=1524444&r1=1524443&r2=1524444&view=diff
==============================================================================
--- hadoop/common/branches/HDFS-2832/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicyWithNodeGroup.java (original)
+++ hadoop/common/branches/HDFS-2832/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicyWithNodeGroup.java Wed Sep 18 15:12:52 2013
@@ -36,6 +36,7 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.DFSTestUtil;
import org.apache.hadoop.hdfs.HdfsConfiguration;
+import org.apache.hadoop.hdfs.StorageType;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.net.NetworkTopology;
@@ -57,41 +58,57 @@ public class TestReplicationPolicyWithNo
private BlockPlacementPolicy replicator;
private static final String filename = "/dummyfile.txt";
- private final static DatanodeDescriptor dataNodes[] = new DatanodeDescriptor[] {
- DFSTestUtil.getDatanodeDescriptor("1.1.1.1", "/d1/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("2.2.2.2", "/d1/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("3.3.3.3", "/d1/r1/n2"),
- DFSTestUtil.getDatanodeDescriptor("4.4.4.4", "/d1/r2/n3"),
- DFSTestUtil.getDatanodeDescriptor("5.5.5.5", "/d1/r2/n3"),
- DFSTestUtil.getDatanodeDescriptor("6.6.6.6", "/d1/r2/n4"),
- DFSTestUtil.getDatanodeDescriptor("7.7.7.7", "/d2/r3/n5"),
- DFSTestUtil.getDatanodeDescriptor("8.8.8.8", "/d2/r3/n6")
- };
-
- private final static DatanodeDescriptor dataNodesInBoundaryCase[] =
- new DatanodeDescriptor[] {
- DFSTestUtil.getDatanodeDescriptor("1.1.1.1", "/d1/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("2.2.2.2", "/d1/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("3.3.3.3", "/d1/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("4.4.4.4", "/d1/r1/n2"),
- DFSTestUtil.getDatanodeDescriptor("5.5.5.5", "/d1/r2/n3"),
- DFSTestUtil.getDatanodeDescriptor("6.6.6.6", "/d1/r2/n3")
- };
-
- private final static DatanodeDescriptor dataNodesInMoreTargetsCase[] =
- new DatanodeDescriptor[] {
- DFSTestUtil.getDatanodeDescriptor("1.1.1.1", "/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("2.2.2.2", "/r1/n1"),
- DFSTestUtil.getDatanodeDescriptor("3.3.3.3", "/r1/n2"),
- DFSTestUtil.getDatanodeDescriptor("4.4.4.4", "/r1/n2"),
- DFSTestUtil.getDatanodeDescriptor("5.5.5.5", "/r1/n3"),
- DFSTestUtil.getDatanodeDescriptor("6.6.6.6", "/r1/n3"),
- DFSTestUtil.getDatanodeDescriptor("7.7.7.7", "/r2/n4"),
- DFSTestUtil.getDatanodeDescriptor("8.8.8.8", "/r2/n4"),
- DFSTestUtil.getDatanodeDescriptor("9.9.9.9", "/r2/n5"),
- DFSTestUtil.getDatanodeDescriptor("10.10.10.10", "/r2/n5"),
- DFSTestUtil.getDatanodeDescriptor("11.11.11.11", "/r2/n6"),
- DFSTestUtil.getDatanodeDescriptor("12.12.12.12", "/r2/n6"),
+ private static final DatanodeStorageInfo[] storages;
+ private static final DatanodeDescriptor[] dataNodes;
+ static {
+ final String[] racks = {
+ "/d1/r1/n1",
+ "/d1/r1/n1",
+ "/d1/r1/n2",
+ "/d1/r2/n3",
+ "/d1/r2/n3",
+ "/d1/r2/n4",
+ "/d2/r3/n5",
+ "/d2/r3/n6"
+ };
+ storages = DFSTestUtil.createDatanodeStorageInfos(racks);
+ dataNodes = DFSTestUtil.toDatanodeDescriptor(storages);
+ }
+
+ private static final DatanodeStorageInfo[] storagesInBoundaryCase;
+ private static final DatanodeDescriptor[] dataNodesInBoundaryCase;
+ static {
+ final String[] racksInBoundaryCase = {
+ "/d1/r1/n1",
+ "/d1/r1/n1",
+ "/d1/r1/n1",
+ "/d1/r1/n2",
+ "/d1/r2/n3",
+ "/d1/r2/n3"
+ };
+ storagesInBoundaryCase = DFSTestUtil.createDatanodeStorageInfos(racksInBoundaryCase);
+ dataNodesInBoundaryCase = DFSTestUtil.toDatanodeDescriptor(storagesInBoundaryCase);
+ }
+
+ private static final DatanodeStorageInfo[] storagesInMoreTargetsCase;
+ private final static DatanodeDescriptor[] dataNodesInMoreTargetsCase;
+ static {
+ final String[] racksInMoreTargetsCase = {
+ "/r1/n1",
+ "/r1/n1",
+ "/r1/n2",
+ "/r1/n2",
+ "/r1/n3",
+ "/r1/n3",
+ "/r2/n4",
+ "/r2/n4",
+ "/r2/n5",
+ "/r2/n5",
+ "/r2/n6",
+ "/r2/n6"
+ };
+ storagesInMoreTargetsCase = DFSTestUtil.createDatanodeStorageInfos(racksInMoreTargetsCase);
+ dataNodesInMoreTargetsCase = DFSTestUtil.toDatanodeDescriptor(storagesInMoreTargetsCase);
};
private final static DatanodeDescriptor NODE =
@@ -142,11 +159,12 @@ public class TestReplicationPolicyWithNo
* Return false if two targets are found on the same NodeGroup.
*/
private static boolean checkTargetsOnDifferentNodeGroup(
- DatanodeDescriptor[] targets) {
+ DatanodeStorageInfo[] targets) {
if(targets.length == 0)
return true;
Set<String> targetSet = new HashSet<String>();
- for(DatanodeDescriptor node:targets) {
+ for(DatanodeStorageInfo storage:targets) {
+ final DatanodeDescriptor node = storage.getDatanodeDescriptor();
String nodeGroup = NetworkTopology.getLastHalf(node.getNetworkLocation());
if(targetSet.contains(nodeGroup)) {
return false;
@@ -156,34 +174,50 @@ public class TestReplicationPolicyWithNo
}
return true;
}
-
- private DatanodeDescriptor[] chooseTarget(int numOfReplicas) {
+
+ private boolean isOnSameRack(DatanodeStorageInfo left, DatanodeStorageInfo right) {
+ return isOnSameRack(left.getDatanodeDescriptor(), right);
+ }
+
+ private boolean isOnSameRack(DatanodeDescriptor left, DatanodeStorageInfo right) {
+ return cluster.isOnSameRack(left, right.getDatanodeDescriptor());
+ }
+
+ private boolean isOnSameNodeGroup(DatanodeStorageInfo left, DatanodeStorageInfo right) {
+ return isOnSameNodeGroup(left.getDatanodeDescriptor(), right);
+ }
+
+ private boolean isOnSameNodeGroup(DatanodeDescriptor left, DatanodeStorageInfo right) {
+ return cluster.isOnSameNodeGroup(left, right.getDatanodeDescriptor());
+ }
+
+ private DatanodeStorageInfo[] chooseTarget(int numOfReplicas) {
return chooseTarget(numOfReplicas, dataNodes[0]);
}
- private DatanodeDescriptor[] chooseTarget(int numOfReplicas,
+ private DatanodeStorageInfo[] chooseTarget(int numOfReplicas,
DatanodeDescriptor writer) {
return chooseTarget(numOfReplicas, writer,
- new ArrayList<DatanodeDescriptor>());
+ new ArrayList<DatanodeStorageInfo>());
}
- private DatanodeDescriptor[] chooseTarget(int numOfReplicas,
- List<DatanodeDescriptor> chosenNodes) {
+ private DatanodeStorageInfo[] chooseTarget(int numOfReplicas,
+ List<DatanodeStorageInfo> chosenNodes) {
return chooseTarget(numOfReplicas, dataNodes[0], chosenNodes);
}
- private DatanodeDescriptor[] chooseTarget(int numOfReplicas,
- DatanodeDescriptor writer, List<DatanodeDescriptor> chosenNodes) {
+ private DatanodeStorageInfo[] chooseTarget(int numOfReplicas,
+ DatanodeDescriptor writer, List<DatanodeStorageInfo> chosenNodes) {
return chooseTarget(numOfReplicas, writer, chosenNodes, null);
}
- private DatanodeDescriptor[] chooseTarget(
+ private DatanodeStorageInfo[] chooseTarget(
int numOfReplicas,
DatanodeDescriptor writer,
- List<DatanodeDescriptor> chosenNodes,
+ List<DatanodeStorageInfo> chosenNodes,
Set<Node> excludedNodes) {
return replicator.chooseTarget(filename, numOfReplicas, writer, chosenNodes,
- false, excludedNodes, BLOCK_SIZE);
+ false, excludedNodes, BLOCK_SIZE, StorageType.DEFAULT);
}
/**
@@ -201,32 +235,36 @@ public class TestReplicationPolicyWithNo
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L,
HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L, 4, 0); // overloaded
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0);
assertEquals(targets.length, 0);
targets = chooseTarget(1);
assertEquals(targets.length, 1);
- assertEquals(targets[0], dataNodes[0]);
+ assertEquals(storages[0], targets[0]);
+
targets = chooseTarget(2);
assertEquals(targets.length, 2);
- assertEquals(targets[0], dataNodes[0]);
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertEquals(storages[0], targets[0]);
+
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3);
assertEquals(targets.length, 3);
- assertEquals(targets[0], dataNodes[0]);
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]));
- assertFalse(cluster.isOnSameNodeGroup(targets[1], targets[2]));
+ assertEquals(storages[0], targets[0]);
+
+ assertFalse(isOnSameRack(targets[0], targets[1]));
+ assertTrue(isOnSameRack(targets[1], targets[2]));
+ assertFalse(isOnSameNodeGroup(targets[1], targets[2]));
targets = chooseTarget(4);
assertEquals(targets.length, 4);
- assertEquals(targets[0], dataNodes[0]);
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]) ||
- cluster.isOnSameRack(targets[2], targets[3]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[2]));
+ assertEquals(storages[0], targets[0]);
+
+ assertTrue(isOnSameRack(targets[1], targets[2]) ||
+ isOnSameRack(targets[2], targets[3]));
+ assertFalse(isOnSameRack(targets[0], targets[2]));
// Make sure no more than one replicas are on the same nodegroup
verifyNoTwoTargetsOnSameNodeGroup(targets);
@@ -235,10 +273,10 @@ public class TestReplicationPolicyWithNo
HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L, 0, 0);
}
- private void verifyNoTwoTargetsOnSameNodeGroup(DatanodeDescriptor[] targets) {
+ private void verifyNoTwoTargetsOnSameNodeGroup(DatanodeStorageInfo[] targets) {
Set<String> nodeGroupSet = new HashSet<String>();
- for (DatanodeDescriptor target: targets) {
- nodeGroupSet.add(target.getNetworkLocation());
+ for (DatanodeStorageInfo target: targets) {
+ nodeGroupSet.add(target.getDatanodeDescriptor().getNetworkLocation());
}
assertEquals(nodeGroupSet.size(), targets.length);
}
@@ -253,36 +291,37 @@ public class TestReplicationPolicyWithNo
*/
@Test
public void testChooseTarget2() throws Exception {
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
BlockPlacementPolicyDefault repl = (BlockPlacementPolicyDefault)replicator;
- List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>();
+ List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>();
Set<Node> excludedNodes = new HashSet<Node>();
excludedNodes.add(dataNodes[1]);
targets = repl.chooseTarget(filename, 4, dataNodes[0], chosenNodes, false,
- excludedNodes, BLOCK_SIZE);
+ excludedNodes, BLOCK_SIZE, StorageType.DEFAULT);
assertEquals(targets.length, 4);
- assertEquals(targets[0], dataNodes[0]);
+ assertEquals(storages[0], targets[0]);
+
assertTrue(cluster.isNodeGroupAware());
// Make sure no replicas are on the same nodegroup
for (int i=1;i<4;i++) {
- assertFalse(cluster.isOnSameNodeGroup(targets[0], targets[i]));
+ assertFalse(isOnSameNodeGroup(targets[0], targets[i]));
}
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]) ||
- cluster.isOnSameRack(targets[2], targets[3]));
- assertFalse(cluster.isOnSameRack(targets[1], targets[3]));
+ assertTrue(isOnSameRack(targets[1], targets[2]) ||
+ isOnSameRack(targets[2], targets[3]));
+ assertFalse(isOnSameRack(targets[1], targets[3]));
excludedNodes.clear();
chosenNodes.clear();
excludedNodes.add(dataNodes[1]);
- chosenNodes.add(dataNodes[2]);
+ chosenNodes.add(storages[2]);
targets = repl.chooseTarget(filename, 1, dataNodes[0], chosenNodes, true,
- excludedNodes, BLOCK_SIZE);
+ excludedNodes, BLOCK_SIZE, StorageType.DEFAULT);
System.out.println("targets=" + Arrays.asList(targets));
assertEquals(2, targets.length);
//make sure that the chosen node is in the target.
int i = 0;
- for(; i < targets.length && !dataNodes[2].equals(targets[i]); i++);
+ for(; i < targets.length && !storages[2].equals(targets[i]); i++);
assertTrue(i < targets.length);
}
@@ -301,32 +340,32 @@ public class TestReplicationPolicyWithNo
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L,
(HdfsConstants.MIN_BLOCKS_FOR_WRITE-1)*BLOCK_SIZE, 0L, 0, 0); // no space
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0);
assertEquals(targets.length, 0);
targets = chooseTarget(1);
assertEquals(targets.length, 1);
- assertEquals(targets[0], dataNodes[1]);
+ assertEquals(storages[1], targets[0]);
targets = chooseTarget(2);
assertEquals(targets.length, 2);
- assertEquals(targets[0], dataNodes[1]);
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertEquals(storages[1], targets[0]);
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3);
assertEquals(targets.length, 3);
- assertEquals(targets[0], dataNodes[1]);
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertEquals(storages[1], targets[0]);
+ assertTrue(isOnSameRack(targets[1], targets[2]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(4);
assertEquals(targets.length, 4);
- assertEquals(targets[0], dataNodes[1]);
+ assertEquals(storages[1], targets[0]);
assertTrue(cluster.isNodeGroupAware());
verifyNoTwoTargetsOnSameNodeGroup(targets);
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]) ||
- cluster.isOnSameRack(targets[2], targets[3]));
+ assertTrue(isOnSameRack(targets[1], targets[2]) ||
+ isOnSameRack(targets[2], targets[3]));
dataNodes[0].updateHeartbeat(
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L,
@@ -351,28 +390,28 @@ public class TestReplicationPolicyWithNo
(HdfsConstants.MIN_BLOCKS_FOR_WRITE-1)*BLOCK_SIZE, 0L, 0, 0);
}
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0);
assertEquals(targets.length, 0);
targets = chooseTarget(1);
assertEquals(targets.length, 1);
- assertFalse(cluster.isOnSameRack(targets[0], dataNodes[0]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]));
targets = chooseTarget(2);
assertEquals(targets.length, 2);
- assertFalse(cluster.isOnSameRack(targets[0], dataNodes[0]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3);
assertEquals(targets.length, 3);
for(int i=0; i<3; i++) {
- assertFalse(cluster.isOnSameRack(targets[i], dataNodes[0]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[i]));
}
verifyNoTwoTargetsOnSameNodeGroup(targets);
- assertTrue(cluster.isOnSameRack(targets[0], targets[1]) ||
- cluster.isOnSameRack(targets[1], targets[2]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[2]));
+ assertTrue(isOnSameRack(targets[0], targets[1]) ||
+ isOnSameRack(targets[1], targets[2]));
+ assertFalse(isOnSameRack(targets[0], targets[2]));
}
/**
@@ -385,7 +424,7 @@ public class TestReplicationPolicyWithNo
@Test
public void testChooseTarget5() throws Exception {
setupDataNodeCapacity();
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0, NODE);
assertEquals(targets.length, 0);
@@ -394,12 +433,12 @@ public class TestReplicationPolicyWithNo
targets = chooseTarget(2, NODE);
assertEquals(targets.length, 2);
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3, NODE);
assertEquals(targets.length, 3);
- assertTrue(cluster.isOnSameRack(targets[1], targets[2]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertTrue(isOnSameRack(targets[1], targets[2]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
verifyNoTwoTargetsOnSameNodeGroup(targets);
}
@@ -413,27 +452,27 @@ public class TestReplicationPolicyWithNo
@Test
public void testRereplicate1() throws Exception {
setupDataNodeCapacity();
- List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>();
- chosenNodes.add(dataNodes[0]);
- DatanodeDescriptor[] targets;
+ List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>();
+ chosenNodes.add(storages[0]);
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0, chosenNodes);
assertEquals(targets.length, 0);
targets = chooseTarget(1, chosenNodes);
assertEquals(targets.length, 1);
- assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]));
targets = chooseTarget(2, chosenNodes);
assertEquals(targets.length, 2);
- assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertTrue(isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3, chosenNodes);
assertEquals(targets.length, 3);
- assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0]));
- assertFalse(cluster.isOnSameNodeGroup(dataNodes[0], targets[0]));
- assertFalse(cluster.isOnSameRack(targets[0], targets[2]));
+ assertTrue(isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameNodeGroup(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(targets[0], targets[2]));
}
/**
@@ -446,22 +485,22 @@ public class TestReplicationPolicyWithNo
@Test
public void testRereplicate2() throws Exception {
setupDataNodeCapacity();
- List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>();
- chosenNodes.add(dataNodes[0]);
- chosenNodes.add(dataNodes[1]);
+ List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>();
+ chosenNodes.add(storages[0]);
+ chosenNodes.add(storages[1]);
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0, chosenNodes);
assertEquals(targets.length, 0);
targets = chooseTarget(1, chosenNodes);
assertEquals(targets.length, 1);
- assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]));
targets = chooseTarget(2, chosenNodes);
assertEquals(targets.length, 2);
- assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0]) &&
- cluster.isOnSameRack(dataNodes[0], targets[1]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]) &&
+ isOnSameRack(dataNodes[0], targets[1]));
}
/**
@@ -474,33 +513,33 @@ public class TestReplicationPolicyWithNo
@Test
public void testRereplicate3() throws Exception {
setupDataNodeCapacity();
- List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>();
- chosenNodes.add(dataNodes[0]);
- chosenNodes.add(dataNodes[3]);
+ List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>();
+ chosenNodes.add(storages[0]);
+ chosenNodes.add(storages[3]);
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0, chosenNodes);
assertEquals(targets.length, 0);
targets = chooseTarget(1, chosenNodes);
assertEquals(targets.length, 1);
- assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0]));
- assertFalse(cluster.isOnSameRack(dataNodes[3], targets[0]));
+ assertTrue(isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameRack(dataNodes[3], targets[0]));
targets = chooseTarget(1, dataNodes[3], chosenNodes);
assertEquals(targets.length, 1);
- assertTrue(cluster.isOnSameRack(dataNodes[3], targets[0]));
- assertFalse(cluster.isOnSameNodeGroup(dataNodes[3], targets[0]));
- assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0]));
+ assertTrue(isOnSameRack(dataNodes[3], targets[0]));
+ assertFalse(isOnSameNodeGroup(dataNodes[3], targets[0]));
+ assertFalse(isOnSameRack(dataNodes[0], targets[0]));
targets = chooseTarget(2, chosenNodes);
assertEquals(targets.length, 2);
- assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0]));
- assertFalse(cluster.isOnSameNodeGroup(dataNodes[0], targets[0]));
+ assertTrue(isOnSameRack(dataNodes[0], targets[0]));
+ assertFalse(isOnSameNodeGroup(dataNodes[0], targets[0]));
targets = chooseTarget(2, dataNodes[3], chosenNodes);
assertEquals(targets.length, 2);
- assertTrue(cluster.isOnSameRack(dataNodes[3], targets[0]));
+ assertTrue(isOnSameRack(dataNodes[3], targets[0]));
}
/**
@@ -583,7 +622,7 @@ public class TestReplicationPolicyWithNo
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L, 0, 0);
}
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(0, dataNodesInBoundaryCase[0]);
assertEquals(targets.length, 0);
@@ -592,7 +631,7 @@ public class TestReplicationPolicyWithNo
targets = chooseTarget(2, dataNodesInBoundaryCase[0]);
assertEquals(targets.length, 2);
- assertFalse(cluster.isOnSameRack(targets[0], targets[1]));
+ assertFalse(isOnSameRack(targets[0], targets[1]));
targets = chooseTarget(3, dataNodesInBoundaryCase[0]);
assertEquals(targets.length, 3);
@@ -613,15 +652,13 @@ public class TestReplicationPolicyWithNo
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L,
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L, 0, 0);
}
- List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>();
- chosenNodes.add(dataNodesInBoundaryCase[0]);
- chosenNodes.add(dataNodesInBoundaryCase[5]);
- DatanodeDescriptor[] targets;
+ List<DatanodeStorageInfo> chosenNodes = new ArrayList<DatanodeStorageInfo>();
+ chosenNodes.add(storagesInBoundaryCase[0]);
+ chosenNodes.add(storagesInBoundaryCase[5]);
+ DatanodeStorageInfo[] targets;
targets = chooseTarget(1, dataNodesInBoundaryCase[0], chosenNodes);
- assertFalse(cluster.isOnSameNodeGroup(targets[0],
- dataNodesInBoundaryCase[0]));
- assertFalse(cluster.isOnSameNodeGroup(targets[0],
- dataNodesInBoundaryCase[5]));
+ assertFalse(isOnSameNodeGroup(dataNodesInBoundaryCase[0], targets[0]));
+ assertFalse(isOnSameNodeGroup(dataNodesInBoundaryCase[5], targets[0]));
assertTrue(checkTargetsOnDifferentNodeGroup(targets));
}
@@ -654,7 +691,7 @@ public class TestReplicationPolicyWithNo
2*HdfsConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 0L, 0, 0);
}
- DatanodeDescriptor[] targets;
+ DatanodeStorageInfo[] targets;
// Test normal case -- 3 replicas
targets = chooseTarget(3, dataNodesInMoreTargetsCase[0]);
assertEquals(targets.length, 3);