if (completedServers.size() < Integer.valueOf(idealState.getReplicas())) { throw new IllegalStateException( "Number of completed servers: " + completedServers.size() + " is less than num replicas: " + idealState .getReplicas());
int numReplicasInIdealState = Integer.parseInt(idealState.getReplicas());
int currentNumReplicas = Integer.parseInt(currentIdealState.getReplicas());
List<String> partitions = Lists.newArrayList(currentIdealState.getPartitionSet()); LinkedHashMap<String, Integer> states = new LinkedHashMap<>(); int numReplicasInIdealState = Integer.parseInt(currentIdealState.getReplicas()); final TableConfig offlineTableConfig = ZKMetadataProvider.getOfflineTableConfig(propertyStore, tableName); final int numReplicasInTableConfig = Integer.parseInt(offlineTableConfig.getValidationConfig().getReplication());
int nReplicasFromIdealState = 1; try { nReplicasFromIdealState = Integer.valueOf(idealState.getReplicas()); } catch (NumberFormatException e) {
public void setExistingTableConfig(TableConfig config, String tableNameWithType, TableType type) throws IOException { if (type == TableType.REALTIME) { ZKMetadataProvider.setRealtimeTableConfig(_propertyStore, tableNameWithType, TableConfig.toZnRecord(config)); ensureRealtimeClusterIsSetUp(config, tableNameWithType, config.getIndexingConfig()); } else if (type == TableType.OFFLINE) { // Update replica group partition assignment to the property store if applicable updateReplicaGroupPartitionAssignment(config); ZKMetadataProvider.setOfflineTableConfig(_propertyStore, tableNameWithType, TableConfig.toZnRecord(config)); IdealState idealState = _helixAdmin.getResourceIdealState(_helixClusterName, tableNameWithType); final String configReplication = config.getValidationConfig().getReplication(); if (configReplication != null && !config.getValidationConfig().getReplication() .equals(idealState.getReplicas())) { HelixHelper.updateIdealState(_helixZkManager, tableNameWithType, new Function<IdealState, IdealState>() { @Nullable @Override public IdealState apply(@Nullable IdealState idealState) { idealState.setReplicas(configReplication); return idealState; } }, RetryPolicies.exponentialBackoffRetryPolicy(5, 1000L, 1.2f)); } } }
private boolean checkBestPossibleStateCalculation(IdealState idealState) { // If replicas is 0, indicate the resource is not fully initialized or ready to be rebalanced if (idealState.getRebalanceMode() == IdealState.RebalanceMode.FULL_AUTO && !idealState .getReplicas().equals("0")) { Map<String, List<String>> preferenceLists = idealState.getPreferenceLists(); if (preferenceLists == null || preferenceLists.isEmpty()) { return false; } int emptyListCount = 0; for (List<String> preferenceList : preferenceLists.values()) { if (preferenceList.isEmpty()) { emptyListCount++; } } // If all lists are empty, rebalance fails completely return emptyListCount != preferenceLists.values().size(); } else { // For non FULL_AUTO RebalanceMode, rebalancing is not controlled by Helix return true; } }
private boolean checkBestPossibleStateCalculation(IdealState idealState) { // If replicas is 0, indicate the resource is not fully initialized or ready to be rebalanced if (idealState.getRebalanceMode() == IdealState.RebalanceMode.FULL_AUTO && !idealState .getReplicas().equals("0")) { Map<String, List<String>> preferenceLists = idealState.getPreferenceLists(); if (preferenceLists == null || preferenceLists.isEmpty()) { return false; } int emptyListCount = 0; for (List<String> preferenceList : preferenceLists.values()) { if (preferenceList.isEmpty()) { emptyListCount++; } } // If all lists are empty, rebalance fails completely return emptyListCount != preferenceLists.values().size(); } else { // For non FULL_AUTO RebalanceMode, rebalancing is not controlled by Helix return true; } }
/** * Get the number of replicas for each partition of this resource * * @return number of replicas */ public int getReplicaCount(int eligibleInstancesCount) { String replicaStr = getReplicas(); int replica = 0; try { replica = Integer.parseInt(replicaStr); } catch (NumberFormatException ex) { if (replicaStr .equalsIgnoreCase(ResourceConfig.ResourceConfigConstants.ANY_LIVEINSTANCE.name())) { replica = eligibleInstancesCount; } else { logger.error("Can not determine the replica count for resource " + getResourceName() + ", set to 0."); } } return replica; }
/** * Get the number of replicas for each partition of this resource * * @return number of replicas */ public int getReplicaCount(int eligibleInstancesCount) { String replicaStr = getReplicas(); int replica = 0; try { replica = Integer.parseInt(replicaStr); } catch (NumberFormatException ex) { if (replicaStr .equalsIgnoreCase(ResourceConfig.ResourceConfigConstants.ANY_LIVEINSTANCE.name())) { replica = eligibleInstancesCount; } else { logger.error("Can not determine the replica count for resource " + getResourceName() + ", set to 0."); } } return replica; }
/** * Returns the number of replicas for a given resource. * @param resourceName * @return */ public int getReplicas(String resourceName) { int replicas = -1; Map<String, IdealState> idealStateMap = _idealStateCache.getIdealStateMap(); if (idealStateMap.containsKey(resourceName)) { String replicasStr = idealStateMap.get(resourceName).getReplicas(); if (replicasStr != null) { if (replicasStr.equals(IdealState.IdealStateConstants.ANY_LIVEINSTANCE.toString())) { replicas = _liveInstanceMap.size(); } else { try { replicas = Integer.parseInt(replicasStr); } catch (Exception e) { LogUtil.logError(LOG, _eventId, "invalid replicas string: " + replicasStr + " for " + (_isTaskCache ? "TASK" : "DEFAULT") + "pipeline"); } } } else { LogUtil.logError(LOG, _eventId, "idealState for resource: " + resourceName + " does NOT have replicas for " + (_isTaskCache ? "TASK" : "DEFAULT") + "pipeline"); } } return replicas; }
/** * Returns the number of replicas for a given resource. * @param resourceName * @return */ public int getReplicas(String resourceName) { int replicas = -1; Map<String, IdealState> idealStateMap = _idealStateCache.getIdealStateMap(); if (idealStateMap.containsKey(resourceName)) { String replicasStr = idealStateMap.get(resourceName).getReplicas(); if (replicasStr != null) { if (replicasStr.equals(IdealState.IdealStateConstants.ANY_LIVEINSTANCE.toString())) { replicas = _liveInstanceMap.size(); } else { try { replicas = Integer.parseInt(replicasStr); } catch (Exception e) { LogUtil.logError(LOG, _eventId, "invalid replicas string: " + replicasStr + " for " + (_isTaskCache ? "TASK" : "DEFAULT") + "pipeline"); } } } else { LogUtil.logError(LOG, _eventId, "idealState for resource: " + resourceName + " does NOT have replicas for " + (_isTaskCache ? "TASK" : "DEFAULT") + "pipeline"); } } return replicas; }
int replica = Integer.parseInt(idealState.getReplicas()); } catch (Exception e) { _logger.error("", e);
String replicaStr = getReplicas(); if (replicaStr == null) { logger.error("invalid ideal-state. missing replicas in auto mode. record was: " + _record.getId());
int replica = Integer.parseInt(idealState.getReplicas()); } catch (Exception e) { _logger.error("", e);
String replicaStr = getReplicas(); if (replicaStr == null) { logger.error("invalid ideal-state. missing replicas in auto mode. record was: " + _record.getId());
BuiltInStateModelDefinitions.valueOf(is.getStateModelDefRef()).getStateModelDefinition(); String topState = stateModelDef.getStatesPriorityList().get(0); int replica = Integer.valueOf(is.getReplicas());
@Override public boolean verify() { HelixDataAccessor accessor = new ZKHelixDataAccessor(_clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient)); Builder keyBuilder = accessor.keyBuilder(); int numberOfPartitions = accessor.getProperty(keyBuilder.idealStates(_resourceName)).getRecord().getListFields() .size(); ClusterDataCache cache = new ClusterDataCache(); cache.refresh(accessor); String masterValue = cache.getStateModelDef(cache.getIdealState(_resourceName).getStateModelDefRef()) .getStatesPriorityList().get(0); int replicas = Integer.parseInt(cache.getIdealState(_resourceName).getReplicas()); return verifyBalanceExternalView(accessor.getProperty(keyBuilder.externalView(_resourceName)) .getRecord(), numberOfPartitions, masterValue, replicas, cache.getLiveInstances().size(), cache.getIdealState(_resourceName).getMaxPartitionsPerInstance()); }
cache.getStateModelDef(cache.getIdealState(_resourceName).getStateModelDefRef()) .getStatesPriorityList().get(0); int replicas = Integer.parseInt(cache.getIdealState(_resourceName).getReplicas()); String instanceGroupTag = cache.getIdealState(_resourceName).getInstanceGroupTag(); int instances = 0;
int replicas = Integer.parseInt(cache.getIdealState(_resourceName).getReplicas()); String instanceGroupTag = cache.getIdealState(_resourceName).getInstanceGroupTag(); int instances = 0;