|
@@ -36,6 +36,7 @@ import org.apache.hadoop.fs.FileSystem;
|
|
import org.apache.hadoop.hdfs.DFSConfigKeys;
|
|
import org.apache.hadoop.hdfs.DFSConfigKeys;
|
|
import org.apache.hadoop.hdfs.DFSTestUtil;
|
|
import org.apache.hadoop.hdfs.DFSTestUtil;
|
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
|
|
|
+import org.apache.hadoop.hdfs.StorageType;
|
|
import org.apache.hadoop.hdfs.TestBlockStoragePolicy;
|
|
import org.apache.hadoop.hdfs.TestBlockStoragePolicy;
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
|
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
|
@@ -612,8 +613,10 @@ public class TestReplicationPolicyWithNodeGroup {
|
|
replicaList, rackMap, first, second);
|
|
replicaList, rackMap, first, second);
|
|
assertEquals(3, first.size());
|
|
assertEquals(3, first.size());
|
|
assertEquals(1, second.size());
|
|
assertEquals(1, second.size());
|
|
|
|
+ List<StorageType> excessTypes = new ArrayList<StorageType>();
|
|
|
|
+ excessTypes.add(StorageType.DEFAULT);
|
|
DatanodeStorageInfo chosen = replicator.chooseReplicaToDelete(
|
|
DatanodeStorageInfo chosen = replicator.chooseReplicaToDelete(
|
|
- null, null, (short)3, first, second);
|
|
|
|
|
|
+ null, null, (short)3, first, second, excessTypes);
|
|
// Within first set {dataNodes[0], dataNodes[1], dataNodes[2]},
|
|
// Within first set {dataNodes[0], dataNodes[1], dataNodes[2]},
|
|
// dataNodes[0] and dataNodes[1] are in the same nodegroup,
|
|
// dataNodes[0] and dataNodes[1] are in the same nodegroup,
|
|
// but dataNodes[1] is chosen as less free space
|
|
// but dataNodes[1] is chosen as less free space
|
|
@@ -624,16 +627,18 @@ public class TestReplicationPolicyWithNodeGroup {
|
|
assertEquals(1, second.size());
|
|
assertEquals(1, second.size());
|
|
// Within first set {dataNodes[0], dataNodes[2]}, dataNodes[2] is chosen
|
|
// Within first set {dataNodes[0], dataNodes[2]}, dataNodes[2] is chosen
|
|
// as less free space
|
|
// as less free space
|
|
|
|
+ excessTypes.add(StorageType.DEFAULT);
|
|
chosen = replicator.chooseReplicaToDelete(
|
|
chosen = replicator.chooseReplicaToDelete(
|
|
- null, null, (short)2, first, second);
|
|
|
|
|
|
+ null, null, (short)2, first, second, excessTypes);
|
|
assertEquals(chosen, storages[2]);
|
|
assertEquals(chosen, storages[2]);
|
|
|
|
|
|
replicator.adjustSetsWithChosenReplica(rackMap, first, second, chosen);
|
|
replicator.adjustSetsWithChosenReplica(rackMap, first, second, chosen);
|
|
assertEquals(0, first.size());
|
|
assertEquals(0, first.size());
|
|
assertEquals(2, second.size());
|
|
assertEquals(2, second.size());
|
|
// Within second set, dataNodes[5] with less free space
|
|
// Within second set, dataNodes[5] with less free space
|
|
|
|
+ excessTypes.add(StorageType.DEFAULT);
|
|
chosen = replicator.chooseReplicaToDelete(
|
|
chosen = replicator.chooseReplicaToDelete(
|
|
- null, null, (short)1, first, second);
|
|
|
|
|
|
+ null, null, (short)1, first, second, excessTypes);
|
|
assertEquals(chosen, storages[5]);
|
|
assertEquals(chosen, storages[5]);
|
|
}
|
|
}
|
|
|
|
|