Github user tzulitai commented on a diff in the pull request:
https://github.com/apache/flink/pull/4688#discussion_r140190681
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java
---
@@ -258,6 +260,23 @@ public void start() throws Exception {
8));
}
+ @Override
+ public CompletableFuture<MultipleJobsDetails> requestJobDetails(Time
timeout) {
+ final int numberJobsRunning = jobManagerRunners.size();
+
+ ArrayList<CompletableFuture<JobDetails>> individualJobDetails =
new ArrayList<>(numberJobsRunning);
+
+ for (JobManagerRunner jobManagerRunner :
jobManagerRunners.values()) {
+
individualJobDetails.add(jobManagerRunner.getJobManagerGateway().requestJobDetails(timeout));
+ }
+
+ CompletableFuture<Collection<JobDetails>> combinedJobDetails =
FutureUtils.combineAll(individualJobDetails);
+
+ return combinedJobDetails.thenApply(
+ (Collection<JobDetails> jobDetails) ->
+ new MultipleJobsDetails(jobDetails.toArray(new
JobDetails[numberJobsRunning]), null));
--- End diff --
Can we somehow lessen the array <-> collection conversions here?
For example, I think in `FutureUtils.combineAll` the completed results were
actually originally an array before they were returned as a collection, and
then here we're converting it back to an array again.
---