use of alluxio.worker.block.meta.StorageTier in project alluxio by Alluxio.
the class BlockStoreMetaTest method getBlockList.
/**
* Tests the {@link BlockStoreMeta#getBlockList()} method.
*/
@Test
public void getBlockList() {
Map<String, List<Long>> tierAliasToBlockIds = new HashMap<>();
for (StorageTier tier : mMetadataManager.getTiers()) {
List<Long> blockIdsOnTier = new ArrayList<>();
for (StorageDir dir : tier.getStorageDirs()) {
blockIdsOnTier.addAll(dir.getBlockIds());
}
tierAliasToBlockIds.put(tier.getTierAlias(), blockIdsOnTier);
}
Map<String, List<Long>> actual = mBlockStoreMetaFull.getBlockList();
Assert.assertEquals(TieredBlockStoreTestUtils.TIER_ALIAS.length, actual.keySet().size());
Assert.assertEquals(tierAliasToBlockIds, actual);
}
use of alluxio.worker.block.meta.StorageTier in project alluxio by Alluxio.
the class BlockStoreMetaTest method getCapacityBytesOnDirs.
/**
* Tests the {@link BlockStoreMeta#getCapacityBytes()} method.
*/
@Test
public void getCapacityBytesOnDirs() {
Map<Pair<String, String>, Long> dirsToCapacityBytes = new HashMap<>();
for (StorageTier tier : mMetadataManager.getTiers()) {
for (StorageDir dir : tier.getStorageDirs()) {
dirsToCapacityBytes.put(new Pair<>(tier.getTierAlias(), dir.getDirPath()), dir.getCapacityBytes());
}
}
Assert.assertEquals(dirsToCapacityBytes, mBlockStoreMeta.getCapacityBytesOnDirs());
Assert.assertEquals(TieredBlockStoreTestUtils.getDefaultDirNum(), mBlockStoreMeta.getCapacityBytesOnDirs().values().size());
}
use of alluxio.worker.block.meta.StorageTier in project alluxio by Alluxio.
the class AllocatorTestBase method assertTempBlockMeta.
/**
* Given an allocator with the location, blockSize, tierAlias and dirIndex,
* we assert whether the block can be allocated.
*
* @param allocator the allocation manager of Alluxio managed data
* @param location the location in block store
* @param blockSize the size of block in bytes
* @param avail the block should be successfully allocated or not
* @param tierAlias the block should be allocated at this tier
* @param dirIndex the block should be allocated at this dir
*/
protected void assertTempBlockMeta(Allocator allocator, BlockStoreLocation location, int blockSize, boolean avail, String tierAlias, int dirIndex) throws Exception {
mTestBlockId++;
StorageDirView dirView = allocator.allocateBlockWithView(SESSION_ID, blockSize, location, getManagerView());
TempBlockMeta tempBlockMeta = dirView == null ? null : dirView.createTempBlockMeta(SESSION_ID, mTestBlockId, blockSize);
if (!avail) {
Assert.assertTrue(tempBlockMeta == null);
} else {
Assert.assertTrue(tempBlockMeta != null);
StorageDir pDir = tempBlockMeta.getParentDir();
StorageTier pTier = pDir.getParentTier();
Assert.assertTrue(pDir.getDirIndex() == dirIndex);
Assert.assertEquals(tierAlias, pTier.getTierAlias());
//update the dir meta info
pDir.addBlockMeta(new BlockMeta(mTestBlockId, blockSize, pDir));
}
}
use of alluxio.worker.block.meta.StorageTier in project alluxio by Alluxio.
the class EvictorContractTest method noNeedToEvictTest3.
/**
* Tests that no eviction plan is created when all directories are filled except for one
* directory.
*/
@Test
public void noNeedToEvictTest3() throws Exception {
// fill in all dirs except for one directory, then request the capacity of
// the directory with anyDirInTier
StorageDir dirLeft = mTestDir;
// start from BLOCK_ID
long blockId = BLOCK_ID;
for (StorageTier tier : mMetaManager.getTiers()) {
for (StorageDir dir : tier.getStorageDirs()) {
if (dir != dirLeft) {
TieredBlockStoreTestUtils.cache(SESSION_ID, blockId, dir.getCapacityBytes(), dir, mMetaManager, mEvictor);
blockId++;
}
}
}
Assert.assertTrue(mEvictor.freeSpaceWithView(dirLeft.getCapacityBytes(), BlockStoreLocation.anyDirInTier(dirLeft.getParentTier().getTierAlias()), mManagerView).isEmpty());
}
Aggregations