[ 
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)

Reply via email to