@Override public List<Block> getBlocksInTheSameRegion(Block block) { int bufferId = assignor.assign(block.getBlockId(), block.getPrimaryDiskId(), block.getReplicaLevel()); BufferRegion region = getBufferRegion(bufferId, block.getReplicaLevel()); return region.getBufferedBlocks(); }
@Override public List<Block> getBlocksCorrespondingToSpecifiedDisk(int diskId) { List<Block> result = new ArrayList<>(); for (List<BufferRegion> regions : regionTable.values()) { for (BufferRegion region : regions) { for (Block block : region.getBufferedBlocks()) { if (block.getOwnerDiskId() == diskId) result.add(block); } } } return result; }