Modified: hadoop/common/branches/branch-1-win/src/test/org/apache/hadoop/hdfs/server/namenode/TestReplicationPolicy.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1-win/src/test/org/apache/hadoop/hdfs/server/namenode/TestReplicationPolicy.java?rev=1369804&r1=1369803&r2=1369804&view=diff ============================================================================== --- hadoop/common/branches/branch-1-win/src/test/org/apache/hadoop/hdfs/server/namenode/TestReplicationPolicy.java (original) +++ hadoop/common/branches/branch-1-win/src/test/org/apache/hadoop/hdfs/server/namenode/TestReplicationPolicy.java Mon Aug 6 12:08:17 2012 @@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs.server.na import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import org.apache.hadoop.conf.Configuration; @@ -37,7 +38,8 @@ public class TestReplicationPolicy exten private static final Configuration CONF = new Configuration(); private static final NetworkTopology cluster; private static final NameNode namenode; - private static final ReplicationTargetChooser replicator; + private static final BlockPlacementPolicy replicator; + private static final String filename = "/dummyfile.txt"; private static final DatanodeDescriptor dataNodes[] = new DatanodeDescriptor[] { new DatanodeDescriptor(new DatanodeID("h1:5020"), "/d1/r1"), @@ -90,30 +92,30 @@ public class TestReplicationPolicy exten FSConstants.MIN_BLOCKS_FOR_WRITE*BLOCK_SIZE, 4); // overloaded DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 1); assertEquals(targets[0], dataNodes[0]); - targets = replicator.chooseTarget( - 2, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 2); assertEquals(targets[0], dataNodes[0]); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 3, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 3, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 3); assertEquals(targets[0], dataNodes[0]); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); assertTrue(cluster.isOnSameRack(targets[1], targets[2])); - targets = replicator.chooseTarget( - 4, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 4, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 4); assertEquals(targets[0], dataNodes[0]); assertTrue(cluster.isOnSameRack(targets[1], targets[2]) || @@ -134,43 +136,49 @@ public class TestReplicationPolicy exten * @throws Exception */ public void testChooseTarget2() throws Exception { - List<Node> excludedNodes; + HashMap<Node, Node> excludedNodes; DatanodeDescriptor[] targets; + BlockPlacementPolicyDefault repl = (BlockPlacementPolicyDefault)replicator; + List<DatanodeDescriptor> chosenNodes = new ArrayList<DatanodeDescriptor>(); - excludedNodes = new ArrayList<Node>(); - excludedNodes.add(dataNodes[1]); - targets = replicator.chooseTarget( - 0, dataNodes[0], excludedNodes, BLOCK_SIZE); + excludedNodes = new HashMap<Node, Node>(); + excludedNodes.put(dataNodes[1], dataNodes[1]); + targets = repl.chooseTarget( + 0, dataNodes[0], chosenNodes, excludedNodes, BLOCK_SIZE); assertEquals(targets.length, 0); excludedNodes.clear(); - excludedNodes.add(dataNodes[1]); - targets = replicator.chooseTarget( - 1, dataNodes[0], excludedNodes, BLOCK_SIZE); + chosenNodes.clear(); + excludedNodes.put(dataNodes[1], dataNodes[1]); + targets = repl.chooseTarget( + 1, dataNodes[0], chosenNodes, excludedNodes, BLOCK_SIZE); assertEquals(targets.length, 1); assertEquals(targets[0], dataNodes[0]); excludedNodes.clear(); - excludedNodes.add(dataNodes[1]); - targets = replicator.chooseTarget( - 2, dataNodes[0], excludedNodes, BLOCK_SIZE); + chosenNodes.clear(); + excludedNodes.put(dataNodes[1], dataNodes[1]); + targets = repl.chooseTarget( + 2, dataNodes[0], chosenNodes, excludedNodes, BLOCK_SIZE); assertEquals(targets.length, 2); assertEquals(targets[0], dataNodes[0]); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); excludedNodes.clear(); - excludedNodes.add(dataNodes[1]); - targets = replicator.chooseTarget( - 3, dataNodes[0], excludedNodes, BLOCK_SIZE); + chosenNodes.clear(); + excludedNodes.put(dataNodes[1], dataNodes[1]); + targets = repl.chooseTarget( + 3, dataNodes[0], chosenNodes, excludedNodes, BLOCK_SIZE); assertEquals(targets.length, 3); assertEquals(targets[0], dataNodes[0]); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); assertTrue(cluster.isOnSameRack(targets[1], targets[2])); excludedNodes.clear(); - excludedNodes.add(dataNodes[1]); - targets = replicator.chooseTarget( - 4, dataNodes[0], excludedNodes, BLOCK_SIZE); + chosenNodes.clear(); + excludedNodes.put(dataNodes[1], dataNodes[1]); + targets = repl.chooseTarget( + 4, dataNodes[0], chosenNodes, excludedNodes, BLOCK_SIZE); assertEquals(targets.length, 4); assertEquals(targets[0], dataNodes[0]); for(int i=1; i<4; i++) { @@ -196,30 +204,30 @@ public class TestReplicationPolicy exten (FSConstants.MIN_BLOCKS_FOR_WRITE-1)*BLOCK_SIZE, 0); // no space DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 1); assertEquals(targets[0], dataNodes[1]); - targets = replicator.chooseTarget( - 2, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 2); assertEquals(targets[0], dataNodes[1]); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 3, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 3, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 3); assertEquals(targets[0], dataNodes[1]); assertTrue(cluster.isOnSameRack(targets[1], targets[2])); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 4, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 4, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 4); assertEquals(targets[0], dataNodes[1]); for(int i=1; i<4; i++) { @@ -251,23 +259,23 @@ public class TestReplicationPolicy exten } DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 1); assertFalse(cluster.isOnSameRack(targets[0], dataNodes[0])); - targets = replicator.chooseTarget( - 2, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 2); assertFalse(cluster.isOnSameRack(targets[0], dataNodes[0])); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 3, dataNodes[0], null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 3, dataNodes[0], BLOCK_SIZE); assertEquals(targets.length, 3); for(int i=0; i<3; i++) { assertFalse(cluster.isOnSameRack(targets[i], dataNodes[0])); @@ -291,21 +299,21 @@ public class TestReplicationPolicy exten */ public void testChooseTarget5() throws Exception { DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, NODE, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, NODE, BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, NODE, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, NODE, BLOCK_SIZE); assertEquals(targets.length, 1); - targets = replicator.chooseTarget( - 2, NODE, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, NODE, BLOCK_SIZE); assertEquals(targets.length, 2); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 3, NODE, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 3, NODE, BLOCK_SIZE); assertEquals(targets.length, 3); assertTrue(cluster.isOnSameRack(targets[1], targets[2])); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); @@ -323,23 +331,23 @@ public class TestReplicationPolicy exten chosenNodes.add(dataNodes[0]); DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 1); assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0])); - targets = replicator.chooseTarget( - 2, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 2); assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0])); assertFalse(cluster.isOnSameRack(targets[0], targets[1])); - targets = replicator.chooseTarget( - 3, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 3, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 3); assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0])); assertFalse(cluster.isOnSameRack(targets[0], targets[2])); @@ -358,17 +366,17 @@ public class TestReplicationPolicy exten chosenNodes.add(dataNodes[1]); DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 1); assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0])); - targets = replicator.chooseTarget( - 2, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 2); assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0])); assertFalse(cluster.isOnSameRack(dataNodes[0], targets[1])); @@ -387,29 +395,29 @@ public class TestReplicationPolicy exten chosenNodes.add(dataNodes[2]); DatanodeDescriptor[] targets; - targets = replicator.chooseTarget( - 0, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 0, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 0); - targets = replicator.chooseTarget( - 1, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 1); assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0])); assertFalse(cluster.isOnSameRack(dataNodes[2], targets[0])); - targets = replicator.chooseTarget( - 1, dataNodes[2], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 1, dataNodes[2], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 1); assertTrue(cluster.isOnSameRack(dataNodes[2], targets[0])); assertFalse(cluster.isOnSameRack(dataNodes[0], targets[0])); - targets = replicator.chooseTarget( - 2, dataNodes[0], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[0], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 2); assertTrue(cluster.isOnSameRack(dataNodes[0], targets[0])); - targets = replicator.chooseTarget( - 2, dataNodes[2], chosenNodes, null, BLOCK_SIZE); + targets = replicator.chooseTarget(filename, + 2, dataNodes[2], chosenNodes, BLOCK_SIZE); assertEquals(targets.length, 2); assertTrue(cluster.isOnSameRack(dataNodes[2], targets[0])); }
