@Override protected CurrentState getState(String resourceName) { PropertyKey.Builder keyBuilder = _helixDataAccessor.keyBuilder(); LiveInstance liveInstance = _helixDataAccessor.getProperty(keyBuilder.liveInstance(_instanceName)); String sessionId = liveInstance.getSessionId(); return _helixDataAccessor.getProperty(keyBuilder.currentState(_instanceName, sessionId, resourceName)); }
private List<String> getTagsForInstance(String instanceName) { InstanceConfig config = _helixDataAccessor.getProperty(_keyBuilder.instanceConfig(instanceName)); return config.getTags(); }
public Set<String> getAllServerTenantNames() { Set<String> tenantSet = new HashSet<>(); List<String> instancesInCluster = _helixAdmin.getInstancesInCluster(_helixClusterName); for (String instanceName : instancesInCluster) { InstanceConfig config = _helixDataAccessor.getProperty(_keyBuilder.instanceConfig(instanceName)); for (String tag : config.getTags()) { if (tag.equals(CommonConstants.Helix.UNTAGGED_BROKER_INSTANCE) || tag .equals(CommonConstants.Helix.UNTAGGED_SERVER_INSTANCE) || tag .equals(CommonConstants.Minion.UNTAGGED_INSTANCE)) { continue; } if (TagNameUtils.getTenantRoleFromTag(tag) == TenantRole.SERVER) { tenantSet.add(TagNameUtils.getTenantNameFromTag(tag)); } } } return tenantSet; }
public Set<String> getAllBrokerTenantNames() { Set<String> tenantSet = new HashSet<>(); List<String> instancesInCluster = _helixAdmin.getInstancesInCluster(_helixClusterName); for (String instanceName : instancesInCluster) { InstanceConfig config = _helixDataAccessor.getProperty(_keyBuilder.instanceConfig(instanceName)); for (String tag : config.getTags()) { if (tag.equals(CommonConstants.Helix.UNTAGGED_BROKER_INSTANCE) || tag .equals(CommonConstants.Helix.UNTAGGED_SERVER_INSTANCE) || tag .equals(CommonConstants.Minion.UNTAGGED_INSTANCE)) { continue; } if (TagNameUtils.getTenantRoleFromTag(tag) == TenantRole.BROKER) { tenantSet.add(TagNameUtils.getTenantNameFromTag(tag)); } } } return tenantSet; }
public static IdealState getTableIdealState(HelixManager manager, String resourceName) { final HelixDataAccessor accessor = manager.getHelixDataAccessor(); final Builder builder = accessor.keyBuilder(); return accessor.getProperty(builder.idealStates(resourceName)); }
ExternalView externalView = helixDataAccessor.getProperty(propertyKeyBuilder.externalView(tableThatChanged));
private void logSegmentsLoadingInfo() { InstanceDataManager instanceDataManager = _serverInstance.getInstanceDataManager(); if (instanceDataManager == null) { return; } HelixDataAccessor helixDataAccessor = _helixManager.getHelixDataAccessor(); Builder keyBuilder = helixDataAccessor.keyBuilder(); LiveInstance liveInstance = helixDataAccessor.getProperty(keyBuilder.liveInstance(_instanceId)); String sessionId = liveInstance.getSessionId(); List<String> tableNames = _helixAdmin.getResourcesInCluster(_helixClusterName); for (String tableName : tableNames) { PropertyKey currentStateKey = keyBuilder.currentState(_instanceId, sessionId, tableName); CurrentState currentState = helixDataAccessor.getProperty(currentStateKey); int numSegmentsLoaded = instanceDataManager.getAllSegmentsMetadata(tableName).size(); if (currentState != null && currentState.isValid()) { int numSegmentsToLoad = currentState.getPartitionStateMap().size(); LOGGER.info( "Segments are not fully loaded during server bootstrap, current progress: table: {}, segments loading progress [ {} / {} ]", tableName, numSegmentsLoaded, numSegmentsToLoad); } } }
@Override public void run() { HelixManager helixManager = _notificationContext.getManager(); HelixDataAccessor helixDataAccessor = helixManager.getHelixDataAccessor(); HelixProperty helixProperty = helixDataAccessor .getProperty(_message.getKey(helixDataAccessor.keyBuilder(), helixManager.getInstanceName())); // The absence of the shutdown message indicates it has been removed if (helixProperty == null) { eventBus.post(new ClusterManagerShutdownRequest()); } } }, 0, 1, TimeUnit.SECONDS);
ExternalView externalView = helixDataAccessor.getProperty(propertyKeyBuilder.externalView(tableName)); long evFetchEnd = System.currentTimeMillis(); evFetchTime += evFetchEnd - evFetchStart;
private int getNumSegmentsToLoad() { InstanceDataManager instanceDataManager = _serverInstance.getInstanceDataManager(); if (instanceDataManager == null) { return -1; } HelixDataAccessor helixDataAccessor = _helixManager.getHelixDataAccessor(); Builder keyBuilder = helixDataAccessor.keyBuilder(); int numSegmentsToLoad = 0; List<String> tableNames = _helixAdmin.getResourcesInCluster(_helixClusterName); for (String tableName : tableNames) { LiveInstance liveInstance = helixDataAccessor.getProperty(keyBuilder.liveInstance(_instanceId)); String sessionId = liveInstance.getSessionId(); PropertyKey currentStateKey = keyBuilder.currentState(_instanceId, sessionId, tableName); CurrentState currentState = helixDataAccessor.getProperty(currentStateKey); if (currentState != null && currentState.isValid()) { numSegmentsToLoad += currentState.getPartitionStateMap().size(); } } return numSegmentsToLoad; }
@Override public void run() { HelixManager helixManager = _notificationContext.getManager(); HelixDataAccessor helixDataAccessor = helixManager.getHelixDataAccessor(); HelixProperty helixProperty = helixDataAccessor.getProperty( _message.getKey(helixDataAccessor.keyBuilder(), helixManager.getInstanceName())); // The absence of the shutdown message indicates it has been removed if (helixProperty == null) { GobblinTaskRunner.this.stop(); } } }, 0, 1, TimeUnit.SECONDS);
toggleSucceed = true; PropertyKey liveInstanceKey = _keyBuilder.liveInstance(instanceName); LiveInstance liveInstance = _helixDataAccessor.getProperty(liveInstanceKey); if (liveInstance == null) { return toggle ? PinotResourceManagerResponse.FAILURE : PinotResourceManagerResponse.SUCCESS;
HelixDataAccessor dataAccessor = helixManager.getHelixDataAccessor(); PropertyKey idealStateKey = dataAccessor.keyBuilder().idealStates(resourceName); IdealState idealState = dataAccessor.getProperty(idealStateKey);
IdealState previousIdealState = dataAccessor.getProperty(idealStateKey); int retries = 0; while (true) { IdealState currentIdealState = dataAccessor.getProperty(idealStateKey);
if (_helixDataAccessor.getProperty(_keyBuilder.liveInstance(instanceName)) != null) { return PinotResourceManagerResponse.failure("Instance " + instanceName + " is still live");
private static void printStatus(final HelixManager manager) { System.out.println("CLUSTER STATUS"); HelixDataAccessor helixDataAccessor = manager.getHelixDataAccessor(); Builder keyBuilder = helixDataAccessor.keyBuilder(); System.out.println("External View \n" + helixDataAccessor.getProperty(keyBuilder.externalView("repository"))); }
@GET @Path("{instanceName}/messages/{messageId}") public Response getMessageOnInstance(@PathParam("clusterId") String clusterId, @PathParam("instanceName") String instanceName, @PathParam("messageId") String messageId) throws IOException { HelixDataAccessor accessor = getDataAccssor(clusterId); Message message = accessor.getProperty(accessor.keyBuilder().message(instanceName, messageId)); if (message != null) { return JSONRepresentation(message.getRecord()); } return notFound(); }
@GET @Path("{instanceName}/history") public Response getHistoryOnInstance(@PathParam("clusterId") String clusterId, @PathParam("instanceName") String instanceName) throws IOException { HelixDataAccessor accessor = getDataAccssor(clusterId); ParticipantHistory history = accessor.getProperty(accessor.keyBuilder().participantHistory(instanceName)); if (history != null) { return JSONRepresentation(history.getRecord()); } return notFound(); }
@Override public IdealState getResourceIdealState(String clusterName, String resourceName) { HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); return accessor.getProperty(keyBuilder.idealStates(resourceName)); }
@Override public boolean verify() throws Exception { PropertyKey.Builder keyBuilder = accessor.keyBuilder(); PropertyKey partitionStatusKey = keyBuilder.currentState(participant.getInstanceName(), participant.getSessionId(), resourceName); CurrentState currentState = accessor.getProperty(partitionStatusKey); return currentState != null && !currentState.getPartitionStateMap().isEmpty(); } }, timeout);