Github user dawidwys commented on a diff in the pull request:
https://github.com/apache/flink/pull/6283#discussion_r202319384
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/jobgraph/JobGraph.java ---
@@ -339,12 +339,28 @@ public void
setSnapshotSettings(JobCheckpointingSettings settings) {
* Gets the settings for asynchronous snapshots. This method returns
null, when
* checkpointing is not enabled.
*
- * @return The snapshot settings, or null, if checkpointing is not
enabled.
+ * @return The snapshot settings
*/
public JobCheckpointingSettings getCheckpointingSettings() {
return snapshotSettings;
}
+ /**
+ * Checks if the checkpointing was enabled for this job graph
+ *
+ * @return true if checkpointing enabled
+ */
+ public boolean isCheckpointingEnabled() {
+
+ if (snapshotSettings == null) {
+ return false;
+ }
+
+ long checkpointInterval =
snapshotSettings.getCheckpointCoordinatorConfiguration().getCheckpointInterval();
+ return checkpointInterval > 0 &&
+ checkpointInterval < Long.MAX_VALUE;
--- End diff --
I don't think it is true (about the checkpoint enabling). I thought the
same based on some javadocs, but it turned out that `snapshotSetting` is always
set in
`org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator#configureCheckpointing`.
That's why I added this method.
The problem with the second method is that the `CheckpointCoordinator` is
created while constructing `ExecutionGraph` which requires the restartstrategy.
I thought adding this method was the least invasive one.
---