コード例 #1
0
  @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();
  }
コード例 #2
0
  @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;
  }