praveenc7 commented on code in PR #15109: URL: https://github.com/apache/pinot/pull/15109#discussion_r2112671214
########## pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java: ########## @@ -4764,6 +4777,48 @@ public Map<String, Integer> minimumInstancesRequiredForTags() { return tagMinInstanceMap; } + @Nullable + public List<QueryWorkloadConfig> getAllQueryWorkloadConfigs() { + return ZKMetadataProvider.getAllQueryWorkloadConfigs(_propertyStore); + } + + @Nullable + public QueryWorkloadConfig getQueryWorkloadConfig(String queryWorkloadName) { + return ZKMetadataProvider.getQueryWorkloadConfig(_propertyStore, queryWorkloadName); + } + + public void setQueryWorkloadConfig(QueryWorkloadConfig queryWorkloadConfig) { + if (!ZKMetadataProvider.setQueryWorkloadConfig(_propertyStore, queryWorkloadConfig)) { + throw new RuntimeException("Failed to set workload config for queryWorkloadName: " + + queryWorkloadConfig.getQueryWorkloadName()); + } + _queryWorkloadManager.propagateWorkload(queryWorkloadConfig); + } + + public void sendQueryWorkloadRefreshMessage(Map<String, QueryWorkloadRefreshMessage> instanceToRefreshMessageMap) { + instanceToRefreshMessageMap.forEach((instance, message) -> { + Criteria criteria = new Criteria(); + criteria.setRecipientInstanceType(InstanceType.PARTICIPANT); + criteria.setInstanceName(instance); + criteria.setSessionSpecific(true); + + int numMessagesSent = _helixZkManager.getMessagingService().send(criteria, message, null, -1); + if (numMessagesSent > 0) { + LOGGER.info("Sent {} query workload config refresh messages to instance: {}", numMessagesSent, instance); + } else { + LOGGER.warn("No query workload config refresh message sent to instance: {}", instance); + } + }); + } + + public void deleteQueryWorkloadConfig(String workload) { + ZKMetadataProvider.deleteQueryWorkloadConfig(_propertyStore, workload); Review Comment: I was thinking, initially we can rely on restarts to get rid of the local-state on the host. But that could be expensive, let me send a refresh message -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org