Checkpoint(检查点)是计算机系统和数据库/分布式系统中非常核心的机制,用来定期保存系统状态,以便在故障后能快速恢复,而不必从头重跑。下面从原理、流程和典型应用三个层面说明。
系统在运行过程中会不断产生状态变化(如内存数据、计算进度)。
如果每次都全量保存,成本太高;如果完全不保存,故障后就要从头开始。
Checkpoint 的本质:
在某一时刻,把“当前可信状态”持久化保存下来,作为恢复的起点。
之后只需要:
触发方式通常有:
Checkpoint 会保存:
保存位置通常是:
当系统崩溃:
以关系型数据库为例:
以 Flink、Spark Streaming 为例:
这常借助:
| 对比项 | Checkpoint | Snapshot |
|---|---|---|
| 目的 | 故障恢复 | 备份 / 分析 |
| 频率 | 高 | 低 |
| 是否可增量 | 通常支持 | 通常支持 |
| 是否用于恢复 | 是 | 可选 |
Checkpoint 就是通过“定期保存可信状态 + 重放增量变化”,用较小的代价实现系统容错和快速恢复。
如果你愿意,我也可以结合**具体系统(如 MySQL、Flink、TensorFlow)**来讲 Checkpoint 的实现细节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。