我试图了解在 Apache Flink 中使用未对齐检查点的权衡。虽然我知道未对齐的检查点可以通过跳过对齐阶段来减少背压下的检查点持续时间,但文档提到它会带来额外的 I/O 开销。
我的问题是:
任何澄清或示例将不胜感激!
未对齐的检查点通过在未处理的记录上推进检查点屏障来跳过对齐。那些跳过的记录包含在检查点中,从而导致额外的 I/O 并增加检查点的大小。
如果您研究此表 - https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/ops/state/checkpoints_vs_savepoints/#capability-and-limitations - 您会看到未对齐的检查点不如对齐的检查点通用。这是因为在线事件不一定使用用于将状态写入检查点的状态序列化器序列化为检查点。
对于一次性保证,未对齐的检查点完全支持一次性。