系统故障恢复技术:日志与检查点机制解析
1. 日志协议
日志回滚恢复结合了检查点和日志记录,使进程在故障发生后能从最近的检查点开始重新执行。当与外界频繁交互时,这种方法尤为有用,因为它允许进程重复执行并与发送给外界的消息保持一致,而无需在发送消息前进行高成本的检查点操作。此外,基于日志的恢复通常不受多米诺效应影响,允许进程按需使用非协调检查点。
1.1 分段确定性假设
日志恢复依赖于分段确定性(PWD)假设。在此假设下,回滚恢复协议能识别每个进程执行的所有非确定性事件,并为每个此类事件记录一个决定因素,其中包含在恢复期间重新执行该事件所需的所有信息。如果PWD假设成立,基于日志的回滚恢复协议就能恢复故障进程,并按故障前的执行顺序重新执行。
常见的非确定性事件包括接收消息、从外界接收输入,或基于某些非确定性操作(如中断接收)在进程内进行内部状态转移。不同的回滚恢复实现对PWD假设下涵盖的实际非确定性事件范围有所不同。例如,某个实现可能仅涵盖PWD假设下来自其他进程的消息接收,无法重新执行受其他形式非确定性事件(如异步中断)影响的执行。PWD假设下涵盖的事件范围是一个实现问题。
1.2 可恢复和稳定状态区间
如果有足够信息在系统未来发生任何故障时重新执行到某个状态区间,则该状态区间是可恢复的。若启动该状态区间的非确定性事件的决定因素记录在稳定存储中,则该状态区间是稳定的。可恢复状态区间一定是稳定的,但稳定状态区间不一定可恢复。
1.3 日志恢复示例
假设在一个执行过程中,唯一的非确定性事件是消息传递。若进程P1和P2在记录对应消息m6和m5传递的决定因素之前发生故障,而其他
超级会员免费看
订阅专栏 解锁全文

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



