code: protected boolean reportHeartBeat(DatanodeID node) {
      if (node != null && shouldUpdateNodes()) {
        reportRegister(node);
        synchronized(this) {
          if (outStandingHeartbeats.remove(node)) {
            outStandingReports.add(node);
            return true;
          }
        }
      }
      return false;
    }
docs: Processes a heartbeat from the datanode and determines whether we should
  send a ClearPrimary command to it.
  
  @param node
  the datanode that has reported
  @return whether or not we should send a ClearPrimary command to this
  datanode