void setClusterMetrics(ClusterMetrics status) {
    long currentTime = EnvironmentEdgeManager.currentTime();

    if (currentTime > lastFullRefresh + (CACHE_TIME / 2)) {
      this.status = status;
      // Only count the refresh if it includes user tables ( eg more than meta and namespace ).
      lastFullRefresh = scheduleFullRefresh() ? currentTime : lastFullRefresh;
    } else {
      refreshLocalityChangedRegions(this.status, status);
      this.status = status;
    }
  }
Create a cache for region to list of servers
@return A new Cache.
hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionHDFSBlockLocationFinder.java