[
https://issues.apache.org/jira/browse/FLINK-13698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906060#comment-16906060
]
Stephan Ewen commented on FLINK-13698:
--------------------------------------
I would suggest to have the {{CheckpointCoordinator}} and the
{{Scheduler}}/{{ExecutionGraph}} in the same thread.
That makes a lot of things much easier.
- The checkpoint timer logic should be factored out into the periodic
checkpoint trigger.
- The actual call
- All cleanup and writing of state should be delegated to the I/O executor.
-> mainly state release as a "fire and forget" execution in the I/O executor
-> writing out master-hook data and checkpoint metadata needs to happen in
the I/O executor, with a Future whose completion is again handles in the main
thread executor.
> Rework threading model of CheckpointCoordinator
> -----------------------------------------------
>
> Key: FLINK-13698
> URL: https://issues.apache.org/jira/browse/FLINK-13698
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / Checkpointing
> Affects Versions: 1.10.0
> Reporter: Piotr Nowojski
> Assignee: Biao Liu
> Priority: Critical
>
> Currently {{CheckpointCoordinator}} and {{CheckpointFailureManager}} code is
> executed by multiple different threads (mostly {{ioExecutor}}, but not only).
> It's causing multiple concurrency issues, for example:
> https://issues.apache.org/jira/browse/FLINK-13497
> Proper fix would be to rethink threading model there. At first glance it
> doesn't seem that this code should be multi threaded, except of parts doing
> the actual IO operations, so it should be possible to run everything in one
> single ExecutionGraph's thread and just run asynchronously necessary IO
> operations with some feedback loop ("mailbox style").
> I would strongly recommend fixing this issue before adding new features in
> the \{{CheckpointCoordinator}} component.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)