public synchronized void updateCurrentServingInstance() { synchronized (_currentServingInstance) { Map<String, InstanceTopicPartitionHolder> instanceMap = new HashMap<String, InstanceTopicPartitionHolder>(); Map<String, Set<TopicPartition>> instanceToTopicPartitionsMap = HelixUtils.getInstanceToTopicPartitionsMap(_helixZkManager); List<String> liveInstances = HelixUtils.liveInstances(_helixZkManager); for (String instanceName : liveInstances) { InstanceTopicPartitionHolder instance = new InstanceTopicPartitionHolder(instanceName); instanceMap.put(instanceName, instance); } for (String instanceName : instanceToTopicPartitionsMap.keySet()) { if (instanceMap.containsKey(instanceName)) { instanceMap.get(instanceName) .addTopicPartitions(instanceToTopicPartitionsMap.get(instanceName)); } } _currentServingInstance.clear(); _currentServingInstance.addAll(instanceMap.values()); } }
HelixUtils.getInstanceToTopicPartitionsMap(_helixManager); Set<TopicPartition> unassignedTopicPartitions = HelixUtils.getUnassignedPartitions(_helixManager);
HelixUtils.getInstanceToTopicPartitionsMap(_helixManager); Set<TopicPartition> unassignedTopicPartitions = HelixUtils.getUnassignedPartitions(_helixManager); if (instanceToTopicPartitionMap.isEmpty() && unassignedTopicPartitions.isEmpty()) {
Map<String, InstanceTopicPartitionHolder> instanceMap = new HashMap<>(); Map<String, Set<TopicPartition>> instanceToTopicPartitionsMap = HelixUtils.getInstanceToTopicPartitionsMap(_helixZkManager); List<String> liveInstances = HelixUtils.liveInstances(_helixZkManager); Set<String> blacklistedInstances = new HashSet<>(getBlacklistedInstances());