private void handleLiveInstanceChange(List<LiveInstance> liveInstances) {
      try {
        if (!liveStateInitialized) {
          logger.info("Received initial notification for live instance change from helix cluster {} in dc {}",
              helixClusterName, dcName);
          liveStateInitialized = true;
        } else {
          logger.info("Live instance change triggered from helix cluster {} in dc {}", helixClusterName, dcName);
        }
        logger.debug("Detailed live instances from helix cluster {} in dc {} are: {}", helixClusterName, dcName,
            liveInstances);
        synchronized (notificationLock) {
          updateInstanceLiveness(liveInstances);
          helixClusterManagerMetrics.liveInstanceChangeTriggerCount.inc();
        }
      } catch (Throwable t) {
        errorCount.incrementAndGet();
        throw t;
      }
    }
Triggered whenever there is a change in the list of live instances.
@param liveInstances the list of all live instances (not a change set) at the time of this call.
ambry-clustermap/src/main/java/com/github/ambry/clustermap/HelixClusterManager.java