/** * Returns the config for all the instances in the cluster. */ public static List<InstanceConfig> getInstanceConfigs(HelixManager helixManager) { HelixDataAccessor helixDataAccessor = helixManager.getHelixDataAccessor(); return helixDataAccessor.getChildValues(helixDataAccessor.keyBuilder().instanceConfigs()); }
properties = accessor.getChildValues(keyBuilder.liveInstances());
List<InstanceConfig> instanceConfigs = helixDataAccessor.getChildValues(propertyKeyBuilder.instanceConfigs()); long icFetchEnd = System.currentTimeMillis(); icFetchTime = icFetchEnd - icFetchStart;
@Test public void testHelixDataAccessorReadData() { accessor.getProperty(new ArrayList<>(propertyKeys), false); try { accessor.getProperty(new ArrayList<>(propertyKeys), true); Assert.fail(); } catch (HelixMetaDataAccessException ex) { } PropertyKey idealStates = accessor.keyBuilder().idealStates(); accessor.getChildValues(idealStates, false); try { accessor.getChildValues(idealStates, true); Assert.fail(); } catch (HelixMetaDataAccessException ex) { } accessor.getChildValuesMap(idealStates, false); try { accessor.getChildValuesMap(idealStates, true); Assert.fail(); } catch (HelixMetaDataAccessException ex) { } }
if (!affectedTables.isEmpty()) { long icFetchStart = System.currentTimeMillis(); List<InstanceConfig> instanceConfigs = helixDataAccessor.getChildValues(propertyKeyBuilder.instanceConfigs());
PropertyKey.Builder keyBuilder = accessor.keyBuilder(); List<LiveInstance> liveInstances = accessor.getChildValues(keyBuilder.liveInstances());
List<CurrentState> instanceCurrentStates = _helixDataAccessor.getChildValues(instanceCurrentStatesKey); if (instanceCurrentStates == null) { return PinotResourceManagerResponse.SUCCESS;
@Transition(from = "OFFLINE", to = "ONLINE") public void onBecomeOnlineFromOffline(Message message, NotificationContext context) { try { LOGGER.info("BrokerResourceOnlineOfflineStateModel.onBecomeOnlineFromOffline() : " + message); Builder keyBuilder = _helixManager.getHelixDataAccessor().keyBuilder(); String tableName = message.getPartitionName(); HelixDataAccessor helixDataAccessor = _helixManager.getHelixDataAccessor(); List<InstanceConfig> instanceConfigList = helixDataAccessor.getChildValues(keyBuilder.instanceConfigs()); TableConfig tableConfig = ZKMetadataProvider.getTableConfig(_propertyStore, tableName); _helixExternalViewBasedRouting.markDataResourceOnline(tableConfig, HelixHelper.getExternalViewForResource(_helixAdmin, _helixManager.getClusterName(), tableName), instanceConfigList); _tableQueryQuotaManager.initTableQueryQuota(tableConfig, HelixHelper .getExternalViewForResource(_helixAdmin, _helixManager.getClusterName(), BROKER_RESOURCE_INSTANCE)); } catch (Exception e) { LOGGER.error("Caught exception during OFFLINE -> ONLINE transition", e); Utils.rethrowException(e); throw new AssertionError("Should not reach this"); } }
public List<LiveInstance> getCurrentLiveInstances() { HelixDataAccessor helixDataAccessor = _helixZkManager.getHelixDataAccessor(); PropertyKey liveInstancePropertyKey = new Builder(_helixClusterName).liveInstances(); List<LiveInstance> liveInstances = helixDataAccessor.getChildValues(liveInstancePropertyKey); return liveInstances; }
private <T extends HelixProperty> List<T> preFetch(PropertyKey key) { if (_preFetchEnabled) { return _accessor.getChildValues(key); } else { return Collections.emptyList(); } }
private <T extends HelixProperty> List<T> preFetch(PropertyKey key) { if (_preFetchEnabled) { return _accessor.getChildValues(key); } else { return Collections.emptyList(); } }
private List<HelixProperty> getProperty(HelixDataAccessor accessor, String dataSpec, PropertyKey propertyKeys, PropertyKey propertyKey, String dataType) { List<HelixProperty> properties; if (Strings.isNullOrEmpty(dataSpec) || dataSpec.equals(MATCH_ALL_SYM)) { properties = accessor.getChildValues(propertyKeys); } else { HelixProperty data = accessor.getProperty(propertyKey); if (data == null) { throw new HelixException( String.format("Specified %s %s is not found!", dataType, dataSpec)); } properties = Collections.singletonList(data); } return properties; } }
private List<HelixProperty> getProperty(HelixDataAccessor accessor, String dataSpec, PropertyKey propertyKeys, PropertyKey propertyKey, String dataType) { List<HelixProperty> properties; if (Strings.isNullOrEmpty(dataSpec) || dataSpec.equals(MATCH_ALL_SYM)) { properties = accessor.getChildValues(propertyKeys); } else { HelixProperty data = accessor.getProperty(propertyKey); if (data == null) { throw new HelixException( String.format("Specified %s %s is not found!", dataType, dataSpec)); } properties = Collections.singletonList(data); } return properties; } }
public List<LiveInstance> getCurrentLiveInstances() { HelixDataAccessor helixDataAccessor = _helixZkManager.getHelixDataAccessor(); PropertyKey liveInstancePropertyKey = new Builder(_helixClusterName).liveInstances(); List<LiveInstance> liveInstances = helixDataAccessor.getChildValues(liveInstancePropertyKey); return liveInstances; }
protected void refresh(List<ExternalView> externalViewList, NotificationContext changeContext) { HelixDataAccessor accessor = changeContext.getManager().getHelixDataAccessor(); PropertyKey.Builder keyBuilder = accessor.keyBuilder(); List<InstanceConfig> configList = accessor.getChildValues(keyBuilder.instanceConfigs()); List<LiveInstance> liveInstances = accessor.getChildValues(keyBuilder.liveInstances()); refresh(externalViewList, configList, liveInstances); }
protected void refresh(List<ExternalView> externalViewList, NotificationContext changeContext) { HelixDataAccessor accessor = changeContext.getManager().getHelixDataAccessor(); PropertyKey.Builder keyBuilder = accessor.keyBuilder(); List<InstanceConfig> configList = accessor.getChildValues(keyBuilder.instanceConfigs()); List<LiveInstance> liveInstances = accessor.getChildValues(keyBuilder.liveInstances()); refresh(externalViewList, configList, liveInstances); }
private void refreshCache() { Builder propertyKeyBuilder = new PropertyKey.Builder(cluster); HelixDataAccessor helixDataAccessor = admin.getHelixDataAccessor(); List<LiveInstance> liveInstances = helixDataAccessor.getChildValues(propertyKeyBuilder.liveInstances()); refreshCache(liveInstances); }
@Override public void resetInstance(String clusterName, List<String> instanceNames) { // TODO: not mp-safe logger.info("Reset instances {} in cluster {}.", instanceNames == null ? "NULL" : HelixUtil.serializeByComma(instanceNames), clusterName); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); List<ExternalView> extViews = accessor.getChildValues(keyBuilder.externalViews()); Set<String> resetInstanceNames = new HashSet<String>(instanceNames); for (String instanceName : resetInstanceNames) { List<String> resetPartitionNames = new ArrayList<String>(); for (ExternalView extView : extViews) { Map<String, Map<String, String>> stateMap = extView.getRecord().getMapFields(); for (String partitionName : stateMap.keySet()) { Map<String, String> instanceStateMap = stateMap.get(partitionName); if (instanceStateMap.containsKey(instanceName) && instanceStateMap.get(instanceName) .equals(HelixDefinedState.ERROR.toString())) { resetPartitionNames.add(partitionName); } } resetPartition(clusterName, instanceName, extView.getResourceName(), resetPartitionNames); } } }
@Override public void resetInstance(String clusterName, List<String> instanceNames) { // TODO: not mp-safe logger.info("Reset instances {} in cluster {}.", instanceNames == null ? "NULL" : HelixUtil.serializeByComma(instanceNames), clusterName); HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); List<ExternalView> extViews = accessor.getChildValues(keyBuilder.externalViews()); Set<String> resetInstanceNames = new HashSet<String>(instanceNames); for (String instanceName : resetInstanceNames) { List<String> resetPartitionNames = new ArrayList<String>(); for (ExternalView extView : extViews) { Map<String, Map<String, String>> stateMap = extView.getRecord().getMapFields(); for (String partitionName : stateMap.keySet()) { Map<String, String> instanceStateMap = stateMap.get(partitionName); if (instanceStateMap.containsKey(instanceName) && instanceStateMap.get(instanceName) .equals(HelixDefinedState.ERROR.toString())) { resetPartitionNames.add(partitionName); } } resetPartition(clusterName, instanceName, extView.getResourceName(), resetPartitionNames); } } }
public static boolean pollForAllTasksBlock(HelixDataAccessor accessor, String instance, int numTask, long timeout) throws InterruptedException { PropertyKey propertyKey = accessor.keyBuilder().messages(instance); long startTime = System.currentTimeMillis(); while (true) { List<Message> messages = accessor.getChildValues(propertyKey); if (allTasksBlock(messages, numTask)) { return true; } else if (startTime + timeout < System.currentTimeMillis()) { return false; } else { Thread.sleep(100); } } }