jihoonson commented on a change in pull request #8697: HRTR: make pending task execution handling to go through all tasks on not finding worker slots URL: https://github.com/apache/incubator-druid/pull/8697#discussion_r356338730
########## File path: indexing-service/src/main/java/org/apache/druid/indexing/overlord/hrtr/HttpRemoteTaskRunner.java ########## @@ -313,6 +325,25 @@ private void scheduleCompletedTaskStatusCleanupFromZk() ); } + /** + * Must not be used outside of this class and {@link HttpRemoteTaskRunnerResource} + */ + @SuppressWarnings("GuardedBy") // Read on workersWithUnacknowledgedTask is safe + public Map<String, ImmutableWorkerInfo> getWorkersEligibleToRunTasks() + { + return Maps.transformEntries( + Maps.filterEntries( + workers, + input -> !lazyWorkers.containsKey(input.getKey()) && + !workersWithUnacknowledgedTask.containsKey(input.getKey()) && + !blackListedWorkers.containsKey(input.getKey()) && Review comment: Hmm, this looks racy because each concurrent map is updated under different locks. But is this ok because this method is called periodically? ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org