[
https://issues.apache.org/jira/browse/FLINK-6626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16721051#comment-16721051
]
TisonKun commented on FLINK-6626:
---------------------------------
It sounds reasonable.
{{Dispacther}} has the write bit to {{/Flink/cluster_id/job_id/}}(thus
{{job_id/jobgraph}} and {{job_id/checkpoint/}}) while {{CheckpointCoordinator}}
has that to {{/Flink/cluster_id/job_id/checkpoint/}}.
When the job submitted, {{Dispatcher}} wrote the jobgraph and while the job was
running, {{CheckpointCoordinator}} wrote the completed checkpoint(along with
delete previous checkpoint on demand). After job terminated, not
{{CheckpointCoordinator}} but {{Dispatcher}} decided whether delete
{{/Flink/cluster_id/job_id/}} at once or not.
About how to make the decision, maybe we can extend {{CheckpointProperties}} a
bit(mainly deal with JobNotFinished). Given that "it does not make much sense
to keep only checkpoints without a job or a job without checkpoints", we are
going to retain both or none of them.
> Unifying lifecycle management of SubmittedJobGraph- and
> CompletedCheckpointStore
> --------------------------------------------------------------------------------
>
> Key: FLINK-6626
> URL: https://issues.apache.org/jira/browse/FLINK-6626
> Project: Flink
> Issue Type: Improvement
> Components: Distributed Coordination
> Affects Versions: 1.3.0, 1.4.0
> Reporter: Till Rohrmann
> Priority: Major
>
> Currently, Flink uses the {{SubmittedJobGraphStore}} to persist {{JobGraphs}}
> such that they can be recovered in case of failures. The
> {{SubmittedJobGraphStore}} is managed by by the {{JobManager}}. Additionally,
> Flink has the {{CompletedCheckpointStore}} which stores checkpoints for a
> given {{ExecutionGraph}}/job. The {{CompletedCheckpointStore}} is managed by
> the {{CheckpointCoordinator}}.
> The {{SubmittedJobGraphStore}} and the {{CompletedCheckpointStore}} are
> somewhat related because in the latter we store checkpoints for jobs
> contained in the former. I think it would be nice wrt lifecycle management to
> let the {{SubmittedJobGraphStore}} manage the lifecycle of the
> {{CompletedCheckpointStore}}, because often it does not make much sense to
> keep only checkpoints without a job or a job without checkpoints.
> An idea would be when we register a job with the {{SubmittedJobGraphStore}}
> then it returns a {{CompletedCheckpointStore}}. This store can then be given
> to the {{CheckpointCoordinator}} to store the checkpoints. When a job enters
> a terminal state it could be the responsibility of the
> {{SubmittedJobGraphStore}} to decide what to do with the job data
> ({{JobGraph}} and {{Checkpoints}}), e.g. keeping it or cleaning it up.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)