[ https://issues.apache.org/jira/browse/FLINK-8234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16294969#comment-16294969 ]
ASF GitHub Bot commented on FLINK-8234: --------------------------------------- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/5168#discussion_r157476788 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java --- @@ -357,6 +362,28 @@ public void start() throws Exception { return CompletableFuture.completedFuture(jobManagerServices.blobServer.getPort()); } + @Override + public CompletableFuture<Either<Throwable, SerializedJobExecutionResult>> getJobExecutionResult( + final JobID jobId, + final Time timeout) { + final Either<Throwable, SerializedJobExecutionResult> jobExecutionResult = + jobExecutionResultCache.get(jobId); + if (jobExecutionResult == null) { + return FutureUtils.completedExceptionally(new JobExecutionResultNotFoundException(jobId)); + } else { + return CompletableFuture.completedFuture(jobExecutionResult); + } + } + + @Override + public CompletableFuture<Boolean> isJobExecutionResultPresent(final JobID jobId, final Time timeout) { + final boolean jobExecutionResultPresent = jobExecutionResultCache.contains(jobId); + if (!jobManagerRunners.containsKey(jobId) && !jobExecutionResultPresent) { + return FutureUtils.completedExceptionally(new FlinkJobNotFoundException(jobId)); + } + return CompletableFuture.completedFuture(jobExecutionResultPresent); --- End diff -- I think the logic should be something like ``` if (jobExecutionResultPresent || jobManagerRunners.containsKey(jobId)) { return CompletableFuture.completedFuture(true); } else { return FutureUtils.completedExceptionally(new FlinkJobNotFoundException(jobId)); } ``` > Cache JobExecutionResult from finished JobManagerRunners > -------------------------------------------------------- > > Key: FLINK-8234 > URL: https://issues.apache.org/jira/browse/FLINK-8234 > Project: Flink > Issue Type: Sub-task > Components: Distributed Coordination > Affects Versions: 1.5.0 > Reporter: Till Rohrmann > Assignee: Gary Yao > Labels: flip-6 > Fix For: 1.5.0 > > > In order to serve the {{JobExecutionResults}} we have to cache them in the > {{Dispatcher}} after the {{JobManagerRunner}} has finished. The cache should > have a configurable size and should periodically clean up stale entries in > order to avoid memory leaks. -- This message was sent by Atlassian JIRA (v6.4.14#64029)