分布式系统中基于移动代理的最优检查点容错算法
1. 引言
分布式系统拥有巨大的计算潜力,但容易受到故障的影响,这限制了其性能。为了提高系统的可靠性和可用性,人们开发了许多技术,其中基于检查点的回滚恢复是一种常见的容错方法。这种方法无需程序员额外努力,就能实现系统的容错。当系统发生故障时,它会将系统状态恢复到最近的一组一致检查点,即恢复线。
基于检查点的回滚恢复算法可分为三类:
- 协调(同步)算法
- 非协调(异步)算法
- 通信诱导检查点算法(CIC,也称为准同步算法)
本文提出了一种基于移动代理的最优检查点协议,旨在消除检查点算法不同阶段中的无用迁移,从而显著提高算法性能和减少网络流量。
2. 检查点协议
一组为每个进程设置的检查点被称为一致全局检查点状态(CGS)或恢复线。在检查点算法中,每个进程在检查点过程运行时,最多可能需要在稳定存储中存储两个检查点;否则,每个进程一个检查点就足以使系统保持一致。检查点具有一位版本号(v_no),所有进程最初都会以v_no = 0进行永久检查点。
该算法是非阻塞的,即即使检查点过程正在运行,进程也可以自由运行其应用程序。为避免孤儿消息,每个进程会在每个应用程序消息头中标记其最新检查点的v_no。当进程接收到应用程序消息时,会先比较消息的版本号(msg_v_no)和自身当前检查点的v_no。如果msg_v_no = (v_no + 1) mod 2且ckpt_state = P,则接收进程会认为发送者在发送消息之前已经进行了新的检查点,并且检查点过程正在进行中。此时,接收者会先以v_no = msg_v_no进行检查点,然后在处理消息之前将ckp
超级会员免费看
订阅专栏 解锁全文

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



