温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Checkpoint检查点是什么原理

发布时间:2026-10-19 01:21:51 来源:亿速云 阅读:116 作者:小樊 栏目:数据库

“Checkpoint(检查点)”这个概念在不同领域含义不同,但核心思想一致:在运行过程中记录一份“可恢复的状态快照”,以便在出错、中断或需要回溯时,能从这个点继续,而不是从头再来。

下面按常见场景讲原理:


一、数据库 / 分布式系统里的 Checkpoint(最常见)

原理

系统持续运行,会产生大量操作日志(WAL / Redo Log)。
如果每次崩溃都从“最开始”重放日志,成本极高。

Checkpoint 的做法:

  1. 在某一时刻,把内存中的状态(或脏页)刷到持久化存储
  2. 记录“此时日志位置 = Checkpoint 点”
  3. 之后崩溃恢复时:
    • 只需从最近一次 Checkpoint 开始
    • 重放 Checkpoint 之后的日志

✅ 本质:用空间换时间 + 限制日志重放范围


二、深度学习 / 训练中的 Checkpoint

原理

训练可能:

  • 断电
  • 显存炸了
  • 想换超参继续训

Checkpoint 会保存:

  • 模型参数(weights)
  • 优化器状态(动量、学习率)
  • 当前 epoch / step
  • 随机种子状态(可选)

恢复时:

model.load_state_dict(checkpoint['model'])
optimizer.load_state_dict(checkpoint['optimizer'])

✅ 本质:把“训练进度”序列化保存


三、流式计算(Flink / Spark Streaming)

原理

流式任务不能停,但要保证精确一次(Exactly-once)

Checkpoint 机制:

  1. 协调者发“做 Checkpoint”指令
  2. 各算子:
    • 暂停处理
    • 把状态存到可靠存储
  3. 全部确认后,Checkpoint 成功
  4. 失败就从最近 Checkpoint 重放

✅ 本质:分布式快照(Chandy–Lamport 算法思想)


四、操作系统 / 文件系统

如文件系统 fsck、虚拟机快照:

  • 把内存 + 磁盘状态存一份
  • 崩溃后回到快照点

五、一句话总结原理

Checkpoint = 在关键时刻,把“当前可信状态”固化下来,作为安全和效率的边界。

如果你说的是某一个具体场景(比如 Flink、PyTorch、数据库崩溃恢复),我可以讲得更细。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手