Esempio n. 1
0
 /**
  * Updates the worker and block metadata for blocks removed from a worker.
  *
  * <p>NOTE: {@link #mBlocks} should already be locked before calling this method.
  *
  * @param workerInfo The worker metadata object
  * @param removedBlockIds A list of block ids removed from the worker
  */
 private void processWorkerRemovedBlocks(
     MasterWorkerInfo workerInfo, Collection<Long> removedBlockIds) {
   for (long removedBlockId : removedBlockIds) {
     MasterBlockInfo masterBlockInfo = mBlocks.get(removedBlockId);
     if (masterBlockInfo == null) {
       LOG.warn(
           "Worker {} removed block {} but block does not exist.",
           workerInfo.getId(),
           removedBlockId);
       // Continue to remove the remaining blocks.
       continue;
     }
     LOG.info("Block {} is removed on worker {}.", removedBlockId, workerInfo.getId());
     workerInfo.removeBlock(masterBlockInfo.getBlockId());
     masterBlockInfo.removeWorker(workerInfo.getId());
     if (masterBlockInfo.getNumLocations() == 0) {
       mLostBlocks.add(removedBlockId);
     }
   }
 }