flink
flink copied to clipboard
[FLINK-34456][configuration]Move all checkpoint-related options into CheckpointingOptions
What is the purpose of the change
According to the FLIP-406,Move all checkpoint-related options that are out of CheckpointingOptions
into CheckpointingOptions
. Deprecate the original ones.
Brief change log
- Move all configurations under
org.apache.flink.streaming.api.environment.ExecutionCheckpointingOptions
intoorg.apache.flink.configuration.CheckpointingOptions
- Mark
ExecutionCheckpointingOptions
as deprecated - Move
org.apache.flink.streaming.api.CheckpointingMode
toorg.apache.flink.configuration.CheckpointingMode
- Split
ExternalizedCheckpointCleanup
out ofCheckpointConfig
and move it to flink-core module
Verifying this change
This change is a minor rework and is already covered by existing tests.
Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes / no)
- The public API, i.e., is any changed class annotated with
@Public(Evolving)
: (yes / no) - The serializers: (yes / no / don't know)
- The runtime per-record code paths (performance sensitive): (yes / no / don't know)
- Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
- The S3 file system connector: (yes / no / don't know)
Documentation
- Does this pull request introduce a new feature? (yes / no)
- If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
@flinkbot run azure
CI report:
- a9adba5ef8ea6ca0d791a1958b4aaf8034645fab Azure: SUCCESS
Bot commands
The @flinkbot bot supports the following commands:-
@flinkbot run azure
re-run the last Azure build
@flinkbot run azure
@flinkbot run azure
@flinkbot run azure
@flinkbot run azure
Hi @spoon-lz , thanks for your contribution! At first glance of your PR, I would suggest keep the old
org.apache.flink.streaming.api.CheckpointingMode
and mark as deprecated. However it is required to start a discussion about such deprecation on dev mailing list first. I will start the discussion and work on the deprecation in Flink 1.19 (will soon be released this month).
If CheckpointingMode
is not moved, do we need to copy the same class in the flink-core module? Otherwise, dependency problems will occur.
Or wait until the discussion is over before modifying this PR.
Hi @spoon-lz , thanks for your contribution! At first glance of your PR, I would suggest keep the old
org.apache.flink.streaming.api.CheckpointingMode
and mark as deprecated. However it is required to start a discussion about such deprecation on dev mailing list first. I will start the discussion and work on the deprecation in Flink 1.19 (will soon be released this month).If
CheckpointingMode
is not moved, do we need to copy the same class in the flink-core module? Otherwise, dependency problems will occur. Or wait until the discussion is over before modifying this PR.
I suggest both keep the old one and the new introduced one. All the internal usage will use the new one, while only user-facing APIs leverage the old one.
We could wait the conclusion of the discussion.
@spoon-lz Sorry for the late reply, seems we come to an agreement in discussion. To be brief, we agree to deprecate the old class and introduce a new one. Corresponding APIs will be changed accordingly. There is one PR ready for this #24381 . I suggest building your PR on top of this after it is merged. WDYT?
@Zakelly I also saw the conclusion of the discussion in the email. I will re-edit this PR after #24381 is merged. Another question is, "Split ExternalizedCheckpointCleanup out of CheckpointConfig and move it to flink-core module". Does this change also need to be discussed?
@Zakelly I also saw the conclusion of the discussion in the email. I will re-edit this PR after #24381 is merged. Another question is, "Split ExternalizedCheckpointCleanup out of CheckpointConfig and move it to flink-core module". Does this change also need to be discussed?
I think this is much easier since it is only annotated with @\PublicEvolving. I think we can do this in a similar way without another discussion. A seperated PR is also good.
@Zakelly A separate PR seems more reasonable, I will submit a separate PR to split ExternalizedCheckpointCleanup
@Zakelly There are some references to org.apache.flink.streaming.api.CheckpointingMode
in ExecutionCheckpointingOptions
. When we move these configurations into CheckpointingOptions
, do we need to replace them with org.apache.flink .core.execution.CheckpointingMode
?
@Zakelly There are some references to
org.apache.flink.streaming.api.CheckpointingMode
inExecutionCheckpointingOptions
. When we move these configurations intoCheckpointingOptions
, do we need to replace them withorg.apache.flink .core.execution.CheckpointingMode
?
@spoon-lz
Firstly, we should keep ExecutionCheckpointingOptions
and mark it as deprecated.
Secondly, any new introduced(moved) options should use the new enum class. Right?
@flinkbot run azure
@Zakelly New code has been submitted.
@Zakelly The code has been modified, but I don’t know why. After I force push to the current branch, I can see the modification in my warehouse, but not in this PR. Do I need to submit a new PR?
@Zakelly The code has been modified, but I don’t know why. After I force push to the current branch, I can see the modification in my warehouse, but not in this PR. Do I need to submit a new PR?
Hi, Could you check your branch 'lz-CheckpointingOptions' in your repo ? Seems it doesn't include new commits.
@spoon-lz I didn't see any new commit on https://github.com/spoon-lz/flink/tree/lz-CheckpointingOptions
@Zakelly @masteryhx Sorry I made the mistake of committing to the wrong branch, the code has been updated.
@Zakelly @masteryhx Before this PR was merged, I found a new conflict with MaterializedTableManager.java
of the master branch. I have resolved this conflict and it can be merged.
I'll merge this once the CI green.