/** * return true if IdealState = ExternalView * @return */ public int isStable(String tableName) { IdealState idealState = helixAdmin.getResourceIdealState(clusterName, tableName); ExternalView externalView = helixAdmin.getResourceExternalView(clusterName, tableName); Map<String, Map<String, String>> mapFieldsIS = idealState.getRecord().getMapFields(); Map<String, Map<String, String>> mapFieldsEV = externalView.getRecord().getMapFields(); int numDiff = 0; for (String segment : mapFieldsIS.keySet()) { Map<String, String> mapIS = mapFieldsIS.get(segment); Map<String, String> mapEV = mapFieldsEV.get(segment); for (String server : mapIS.keySet()) { String state = mapIS.get(server); if (mapEV == null || mapEV.get(server) == null || !mapEV.get(server).equals(state)) { LOGGER.info( "Mismatch: segment " + segment + " server:" + server + " expected state:" + state + " actual state:" + ( (mapEV == null || mapEV.get(server) == null) ? "null" : mapEV.get(server))); numDiff = numDiff + 1; } } } return numDiff; }
public void fixTableIdealState(String tableName) throws Exception { IdealState idealState = _helixAdmin.getResourceIdealState(_clusterName, tableName); if (idealState == null) { LOGGER.info("No IDEALSTATE found for table " + tableName);
/** * return true if IdealState = ExternalView * @return */ public int isStable(String tableName) { IdealState idealState = helixAdmin.getResourceIdealState(clusterName, tableName); ExternalView externalView = helixAdmin.getResourceExternalView(clusterName, tableName); Map<String, Map<String, String>> mapFieldsIS = idealState.getRecord().getMapFields(); Map<String, Map<String, String>> mapFieldsEV = externalView.getRecord().getMapFields(); int numDiff = 0; for (String segment : mapFieldsIS.keySet()) { Map<String, String> mapIS = mapFieldsIS.get(segment); Map<String, String> mapEV = mapFieldsEV.get(segment); for (String server : mapIS.keySet()) { String state = mapIS.get(server); if (mapEV == null || mapEV.get(server) == null || !mapEV.get(server).equals(state)) { LOGGER.info("Mismatch: segment" + segment + " server:" + server + " state:" + state); numDiff = numDiff + 1; } } } return numDiff; }
IdealState resourceIdealState = helixAdmin.getResourceIdealState(clusterName, resourceName); ExternalView resourceExternalView = helixAdmin.getResourceExternalView(clusterName, resourceName); Map<String, Map<String, String>> mapFieldsFromIS = resourceIdealState.getRecord().getMapFields();
IdealState currentIdealState = helixAdmin.getResourceIdealState(clusterName, offlineTableName); int currentNumReplicas = Integer.parseInt(currentIdealState.getReplicas());
helix.getResourceIdealState(zkPath, tableName).getRecord().getMapFields();
return; IdealState currentIdealState = helixAdmin.getResourceIdealState(clusterName, tableName); List<String> partitions = Lists.newArrayList(currentIdealState.getPartitionSet()); LinkedHashMap<String, Integer> states = new LinkedHashMap<>();
IdealState idealState = zkHelixAdmin.getResourceIdealState(_clusterName, table); ExternalView externalView = zkHelixAdmin.getResourceExternalView(_clusterName, table); Set<String> segmentsFromIdealState = idealState.getPartitionSet();
@Override public void enableBatchMessageMode(String clusterName, String resourceName, boolean enabled) { logger.info("{} batch message mode for resource {} in cluster {}.", enabled ? "Enable" : "Disable", resourceName, clusterName); // TODO: Change IdealState to ResourceConfig when configs are migrated to ResourceConfig IdealState idealState = getResourceIdealState(clusterName, resourceName); if (idealState == null) { throw new HelixException("Cluster " + clusterName + ", resource: " + resourceName + ", ideal-state does not exist"); } idealState.setBatchMessageMode(enabled); setResourceIdealState(clusterName, resourceName, idealState); }
@Override public void enableBatchMessageMode(String clusterName, String resourceName, boolean enabled) { logger.info("{} batch message mode for resource {} in cluster {}.", enabled ? "Enable" : "Disable", resourceName, clusterName); // TODO: Change IdealState to ResourceConfig when configs are migrated to ResourceConfig IdealState idealState = getResourceIdealState(clusterName, resourceName); if (idealState == null) { throw new HelixException("Cluster " + clusterName + ", resource: " + resourceName + ", ideal-state does not exist"); } idealState.setBatchMessageMode(enabled); setResourceIdealState(clusterName, resourceName, idealState); }
IdealState idealState = getResourceIdealState(clusterName, resourceName); if (idealState == null) { throw new HelixException("Resource: " + resourceName + " has NOT been added yet");
IdealState idealState = getResourceIdealState(clusterName, resourceName); if (idealState == null) { throw new HelixException("Resource: " + resourceName + " has NOT been added yet");
IdealState idealState = _admin.getResourceIdealState(CLUSTER_NAME, TEST_DB2); idealState.setDisableExternalView(true); _admin.setResourceIdealState(CLUSTER_NAME, TEST_DB2, idealState);
IdealState.RebalanceMode.FULL_AUTO + ""); IdealState idealState = _admin.getResourceIdealState(CLUSTER_NAME, TEST_DB1); idealState.setDisableExternalView(true); _admin.setResourceIdealState(CLUSTER_NAME, TEST_DB1, idealState);