Flink 任务管理器是否与深度存储服务对话?

Does Flink task managers ever talk to the deep store service?

我有兴趣更好地了解 Flink 如何执行检查点(或保存点)。以下是我的好奇心:

Flink Job manager 是否从任务管理器收集所有状态,然后将这些数据推送到深度存储服务(如 GCP 或 S3)?或者,每个任务管理器和作业管理器是否相互独立地推送状态。

总体设计是每个任务管理器写入其管理的状态,作业管理器写入元数据。这些机器(或容器)中的每一个都直接写入分布式文件系统,它们都需要使用相同的 URI。

不过,细节有点复杂。检查点(或保存点)由许多文件组成,每个状态块都写入其自己的文件中。除了任何小于 state.backend.fs.memory-threshold 的状态块都由作业管理器收集并内联写入元数据。这有助于避免写入大量小文件,这可能是 S3 等对象存储的问题。