@Override
  public List<DataNodeId> getDataNodeIds() {
    List<DataNodeId> helixNodes = new ArrayList<>();
    Set<String> helixDataNodeIdStrings = new HashSet<>();
    helixClusterManager.getDataNodeIds().forEach(node -> helixNodes.add(node));
    if (check) {
      List<DataNodeId> staticDataNodeIds = staticClusterManager.getDataNodeIds();
      Set<String> staticDataNodeIdStrings = new HashSet<>();
      for (DataNodeId dataNodeId : staticDataNodeIds) {
        staticDataNodeIdStrings.add(dataNodeId.toString());
      }
      for (DataNodeId dataNodeId : helixNodes) {
        helixDataNodeIdStrings.add(dataNodeId.toString());
      }
      if (!staticDataNodeIdStrings.equals(helixDataNodeIdStrings)) {
        logger.debug("Static data nodes do not match Helix data nodes");
        helixClusterManagerMetrics.getDataNodeIdsMismatchCount.inc();
      }
    }
    return helixNodes;
  }
The list of {@link DataNodeId}s present in the underlying {@link StaticClusterManager}
Also verify that the underlying {@link HelixClusterManager} has the same set of nodes, if not, update a metric.
@return the list of {@link DataNodeId}s present in the underlying {@link StaticClusterManager}
ambry-clustermap/src/main/java/com/github/ambry/clustermap/CompositeClusterManager.java