ClusterConfig clusterConfig = new ClusterConfig(CLUSTER_NAME); clusterConfig.setTopologyAwareEnabled(true); clusterConfig.setTopology("/Rack/Host"); clusterConfig.setFaultZoneType("Rack");
@Override public ZNRecord update(ZNRecord currentData) { if (currentData == null) { throw new HelixException("Cluster: " + clusterName + ": cluster config is null"); } ClusterConfig clusterConfig = new ClusterConfig(currentData); Map<String, String> disabledInstances = new TreeMap<>(); if (clusterConfig.getDisabledInstances() != null) { disabledInstances.putAll(clusterConfig.getDisabledInstances()); } if (enabled) { disabledInstances.keySet().removeAll(instances); } else { for (String disabledInstance : instances) { if (!disabledInstances.containsKey(disabledInstance)) { disabledInstances.put(disabledInstance, String.valueOf(System.currentTimeMillis())); } } } clusterConfig.setDisabledInstances(disabledInstances); return clusterConfig.getRecord(); } }, AccessOption.PERSISTENT);
private void setSingleThrottlingConfig(StateTransitionThrottleConfig.RebalanceType rebalanceType, StateTransitionThrottleConfig.ThrottleScope scope, int maxStateTransitions) { ClusterConfig clusterConfig = _configAccessor.getClusterConfig(CLUSTER_NAME); StateTransitionThrottleConfig anyTypeInstanceThrottle = new StateTransitionThrottleConfig(rebalanceType, scope, maxStateTransitions); List<StateTransitionThrottleConfig> currentThrottleConfigs = clusterConfig.getStateTransitionThrottleConfigs(); currentThrottleConfigs.add(anyTypeInstanceThrottle); clusterConfig.setStateTransitionThrottleConfigs(currentThrottleConfigs); _configAccessor.setClusterConfig(CLUSTER_NAME, clusterConfig); }
/* package */ ClusterConfig createClusterConfig(String[] quotaTypes, String[] quotaRatio, boolean addDefaultQuota) { ClusterConfig clusterConfig = new ClusterConfig(testClusterName); if (quotaTypes != null && quotaRatio != null) { for (int i = 0; i < quotaTypes.length; i++) { clusterConfig.setTaskQuotaRatio(quotaTypes[i], quotaRatio[i]); } } if (addDefaultQuota) { clusterConfig.setTaskQuotaRatio(AssignableInstance.DEFAULT_QUOTA_TYPE, defaultQuotaRatio); } return clusterConfig; } }
@Test public void testInvalidInitialization() { try { AssignableInstance ai = new AssignableInstance(null, null, null); Assert.fail("Expecting IllegalArgumentException"); } catch (IllegalArgumentException e) { Assert.assertTrue(e.getMessage().contains("cannot be null")); } try { ClusterConfig clusterConfig = new ClusterConfig("testCluster"); InstanceConfig instanceConfig = new InstanceConfig("instance"); LiveInstance liveInstance = new LiveInstance("another-instance"); AssignableInstance ai = new AssignableInstance(clusterConfig, instanceConfig, liveInstance); Assert.fail("Expecting IllegalArgumentException"); } catch (IllegalArgumentException e) { Assert.assertTrue(e.getMessage().contains("don't match")); } }
public void testThreadLeak() throws InterruptedException { ClusterConfig clusterConfig = _manager.getConfigAccessor().getClusterConfig(CLUSTER_NAME); clusterConfig.resetTaskQuotaRatioMap(); clusterConfig.setTaskQuotaRatio(DEFAULT_QUOTA_TYPE, 1); clusterConfig.setTaskQuotaRatio("A", 1); _manager.getConfigAccessor().setClusterConfig(CLUSTER_NAME, clusterConfig); _availableQuotaTypes = clusterConfig.getTaskQuotaRatioMap().keySet();
ClusterConfig config = new ClusterConfig(record); ConfigAccessor configAccessor = getConfigAccessor(); try { new HelixConfigScopeBuilder(HelixConfigScope.ConfigScopeProperty.CLUSTER) .forCluster(clusterId).build(); configAccessor.remove(clusterScope, config.getRecord());
/** * Get IdealState rules defined in the cluster config. * * @return */ public Map<String, Map<String, String>> getIdealStateRules() { Map<String, Map<String, String>> idealStateRuleMap = new HashMap<>(); for (String simpleKey : getRecord().getSimpleFields().keySet()) { if (simpleKey.startsWith(IDEAL_STATE_RULE_PREFIX)) { String simpleValue = getRecord().getSimpleField(simpleKey); String[] rules = simpleValue.split("(?<!\\\\),"); Map<String, String> singleRule = Maps.newHashMap(); for (String rule : rules) { String[] keyValue = rule.split("(?<!\\\\)="); if (keyValue.length >= 2) { singleRule.put(keyValue[0], keyValue[1]); } } idealStateRuleMap.put(simpleKey, singleRule); } } return idealStateRuleMap; }
if (!instanceConfig.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instance))) { long disabledTime = instanceConfig.getInstanceEnabledTime(); if (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances() .containsKey(instance)) { long batchDisableTime = Long.parseLong(clusterConfig.getDisabledInstances().get(instance)); if (disabledTime == -1 || disabledTime > batchDisableTime) { disabledTime = batchDisableTime;
private void setupMockCluster() { List<LiveInstance> liveInstanceList = new ArrayList<>(); Map<String, InstanceConfig> instanceConfigs = new HashMap<>(); for (String instance : instanceNames) { LiveInstance liveInstance = new LiveInstance(instance); liveInstanceList.add(liveInstance); InstanceConfig config = new InstanceConfig(instance); instanceConfigs.put(instance, config); } cache.setLiveInstances(liveInstanceList); cache.setInstanceConfigMap(instanceConfigs); ClusterConfig clusterConfig = new ClusterConfig("test"); clusterConfig.setTopologyAwareEnabled(false); cache.setClusterConfig(clusterConfig); states.put("OFFLINE", 0); states.put(topState, nReplicas); }
@Test public void testP2PMessageEnabled() throws Exception { preSetup(); ClusterConfig clusterConfig = new ClusterConfig(_clusterName); clusterConfig.enableP2PMessage(true); setClusterConfig(clusterConfig); testP2PMessage(clusterConfig, true); }
clusterConfig.setTopologyAwareEnabled(true); clusterConfig.setTopology("/Rack/Instance"); clusterConfig.setFaultZoneType("Rack"); configAccessor.setClusterConfig(CLUSTER_NAME, clusterConfig); clusterConfig.setTopologyAwareEnabled(false);
clusterConfig.setTopology("/zone/instance"); clusterConfig.setFaultZoneType("zone"); configAccessor.setClusterConfig(CLUSTER_NAME, clusterConfig);
@Test(dataProvider = "failedCurrentStateInput") public void testTopStateFailedHandoff(TestCaseConfig cfg) { ClusterConfig clusterConfig = new ClusterConfig(_clusterName); clusterConfig.setMissTopStateDurationThreshold(5000L); setClusterConfig(clusterConfig); runTestWithNoInjection(cfg, true); }
protected void enableP2PInCluster(String clusterName, ConfigAccessor configAccessor, boolean enable) { // enable p2p message in cluster. if (enable) { ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); clusterConfig.enableP2PMessage(true); configAccessor.setClusterConfig(clusterName, clusterConfig); } else { ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); clusterConfig.getRecord().getSimpleFields() .remove(HelixConfigProperty.P2P_MESSAGE_ENABLED.name()); configAccessor.setClusterConfig(clusterName, clusterConfig); } }
ClusterConfig clusterConfig = new ClusterConfig(CLUSTER_NAME); clusterConfig.setPersistBestPossibleAssignment(true); ClusterDataCache cache = event.getAttribute(AttributeName.ClusterDataCache.name()); cache.setClusterConfig(clusterConfig);
clusterConfig.getStateTransitionThrottleConfigs();
Map<String, String> typeQuotaRatio = _clusterConfig.getTaskQuotaRatioMap(); Map<String, String> resourceCapacity = _liveInstance.getResourceCapacityMap();
participantCapacity = cache.getClusterConfig().getMaxConcurrentTaskPerInstance();
protected void enableTopologyAwareRebalance(HelixZkClient zkClient, String clusterName, Boolean enabled) { ConfigAccessor configAccessor = new ConfigAccessor(zkClient); ClusterConfig clusterConfig = configAccessor.getClusterConfig(clusterName); clusterConfig.setTopologyAwareEnabled(enabled); configAccessor.setClusterConfig(clusterName, clusterConfig); }