故障恢复技术:检查点、通信协议与日志恢复的全面解析
1. 检查点实现方式
检查点支持可以在系统层面和用户层面实现,具体如下:
- 系统层面实现 :可在操作系统内核中实现,能捕获支持用户进程的内核数据结构,但缺乏可移植性。
- 用户层面实现 :通过与用户程序链接的库实现,可利用系统调用模拟并发和增量检查点,不过无法直接访问内核数据结构,但可在用户层面进行模拟。
| 实现层面 | 优点 | 缺点 |
|---|---|---|
| 系统层面 | 能捕获内核数据结构 | 缺乏可移植性 |
| 用户层面 | 可模拟检查点 | 无法直接访问内核数据结构 |
2. 编译器支持检查点
编译器可生成支持检查点的代码,其优势在于能决定需保存的变量,避免保存不必要的数据。然而,确定程序执行中最适合进行检查点的位置通常是不可判定的。可采用以下启发式方法:
- 程序员向编译器提供插入检查点的位置或存储数据变量的提示。
- 通过迭代运行应用程序并观察其行为来训练编译器。
- 在支持自动垃圾回收的语言中,每次主要垃圾回收后的执行点是低成本进行检查点的便利位置。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



