zhuzhurk commented on a change in pull request #18766: URL: https://github.com/apache/flink/pull/18766#discussion_r806501405
########## File path: docs/content.zh/docs/dev/datastream/fault-tolerance/checkpointing.md ########## @@ -195,5 +195,44 @@ Flink 现在为没有迭代(iterations)的作业提供一致性的处理保 请注意在环形边上游走的记录(以及与之相关的状态变化)在故障时会丢失。 +## 部分任务结束后的 Checkpoint + +从版本 1.14 开始 Flink 支持在部分任务结束后继续进行Checkpoint。 +如果一部分数据源是有限数据集,那么就可以出现这种情况。 +从版本 1.15 开始,这一特性被默认打开。如果想要关闭这一功能,可以执行: + +```java +Configuration config = new Configuration(); +config.set(ExecutionCheckpointingOptions.ENABLE_CHECKPOINTS_AFTER_TASKS_FINISH, false); +StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(config); +``` + +在这种情况下,结束的任务不会参与 Checkpoint 的过程。在实现自定义的算子或者 UDF (用户自定义函数)时需要考虑这一点。 + +为了支持部分任务结束后的 Checkpoint 操作,我们调整了 [任务的生命周期]({{<ref "docs/internals/task_lifecycle" >}}) 并且引入了 +{{< javadoc file="org/apache/flink/streaming/api/operators/StreamOperator.html#finish--" name="StreamOperator#finish" >}} 方法。 +在这一方法中,用户需要写出所有缓存的数据。在 finish 方法调用后的 Checkpoint 中,这一任务一定不能再有缓存的数据,因为在 `finish()` 后没有办法来输出这些数据。 +在大部分情况下,`finish()` 后这一任务的状态为空,唯一的例外是如果其中某些算子中包含外部系统事务的句柄(例如为了实现恰好一次语义), +在这种情况下,在 `finish()` 后进行的 checkpoint 操作应该保留这些句柄,并且在结束 checkpoint (即任务退出前所等待的 checkpoint )时提交。 Review comment: Maybe remove the spaces around the Chinese brackets? ########## File path: docs/content.zh/docs/dev/datastream/fault-tolerance/checkpointing.md ########## @@ -195,5 +195,44 @@ Flink 现在为没有迭代(iterations)的作业提供一致性的处理保 请注意在环形边上游走的记录(以及与之相关的状态变化)在故障时会丢失。 +## 部分任务结束后的 Checkpoint + +从版本 1.14 开始 Flink 支持在部分任务结束后继续进行Checkpoint。 +如果一部分数据源是有限数据集,那么就可以出现这种情况。 +从版本 1.15 开始,这一特性被默认打开。如果想要关闭这一功能,可以执行: + +```java +Configuration config = new Configuration(); +config.set(ExecutionCheckpointingOptions.ENABLE_CHECKPOINTS_AFTER_TASKS_FINISH, false); +StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(config); +``` + +在这种情况下,结束的任务不会参与 Checkpoint 的过程。在实现自定义的算子或者 UDF (用户自定义函数)时需要考虑这一点。 + +为了支持部分任务结束后的 Checkpoint 操作,我们调整了 [任务的生命周期]({{<ref "docs/internals/task_lifecycle" >}}) 并且引入了 +{{< javadoc file="org/apache/flink/streaming/api/operators/StreamOperator.html#finish--" name="StreamOperator#finish" >}} 方法。 +在这一方法中,用户需要写出所有缓存的数据。在 finish 方法调用后的 Checkpoint 中,这一任务一定不能再有缓存的数据,因为在 `finish()` 后没有办法来输出这些数据。 Review comment: maybe `缓存` -> `缓冲`? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org