private Map<String, ResourceConfig> refreshResourceConfigs(HelixDataAccessor accessor) { Map<String, ResourceConfig> refreshedResourceConfigs = Maps.newHashMap(); long startTime = System.currentTimeMillis(); PropertyKey.Builder keyBuilder = accessor.keyBuilder(); Set<PropertyKey> currentResourceConfigKeys = new HashSet<>(); for (String resourceConfig : accessor.getChildNames(keyBuilder.resourceConfigs())) { currentResourceConfigKeys.add(keyBuilder.resourceConfig(resourceConfig)); } Set<PropertyKey> cachedKeys = new HashSet<>(); Map<PropertyKey, ResourceConfig> cachedResourceConfigMap = Maps.newHashMap(); for (String resourceConfig : _resourceConfigMap.keySet()) { cachedKeys.add(keyBuilder.resourceConfig(resourceConfig)); cachedResourceConfigMap.put(keyBuilder.resourceConfig(resourceConfig), _resourceConfigMap.get(resourceConfig)); } cachedKeys.retainAll(currentResourceConfigKeys); Set<PropertyKey> reloadKeys = new HashSet<>(currentResourceConfigKeys); reloadKeys.removeAll(cachedKeys); Map<PropertyKey, ResourceConfig> updatedMap = refreshProperties(accessor, new LinkedList<>(reloadKeys), new ArrayList<>(cachedKeys), cachedResourceConfigMap); for (ResourceConfig resourceConfig : updatedMap.values()) { refreshedResourceConfigs.put(resourceConfig.getResourceName(), resourceConfig); } long endTime = System.currentTimeMillis(); LogUtil.logInfo(LOG, getEventId(), "Refresh " + refreshedResourceConfigs.size() + " resource configs for cluster " + _clusterName + ", took " + (endTime - startTime) + " ms"); return refreshedResourceConfigs; }
throw new HelixException( "Resources that in FULL_AUTO mode are not supported: " + resourceConfig .getResourceName()); Map<String, Map<String, String>> preferredMapping = new HashMap<>(); if (existingAssignment != null) { PartitionStateMap partitionStateMap = existingAssignment.getPartitionStateMap(resourceConfig.getResourceName()); constraintBasedStrategy.init(resourceConfig.getResourceName(), new ArrayList<>(resourceConfig.getPreferenceLists().keySet()), stateModelDefinition .getStateCountMap(_instanceConfigMap.size(), Map<String, Map<String, String>> stateMap = znRecord.getMapFields(); PartitionStateMap newStateMap = new PartitionStateMap(resourceConfig.getResourceName()); for (String partition : stateMap.keySet()) { newStateMap.setState(new Partition(partition), stateMap.get(partition)); resultAssignment.setState(resourceConfig.getResourceName(), newStateMap);
throw new HelixException( "Resources that in FULL_AUTO mode are not supported: " + resourceConfig .getResourceName()); Map<String, Map<String, String>> preferredMapping = new HashMap<>(); if (existingAssignment != null) { PartitionStateMap partitionStateMap = existingAssignment.getPartitionStateMap(resourceConfig.getResourceName()); constraintBasedStrategy.init(resourceConfig.getResourceName(), new ArrayList<>(resourceConfig.getPreferenceLists().keySet()), stateModelDefinition .getStateCountMap(_instanceConfigMap.size(), Map<String, Map<String, String>> stateMap = znRecord.getMapFields(); PartitionStateMap newStateMap = new PartitionStateMap(resourceConfig.getResourceName()); for (String partition : stateMap.keySet()) { newStateMap.setState(new Partition(partition), stateMap.get(partition)); resultAssignment.setState(resourceConfig.getResourceName(), newStateMap);