多检查点的异步分布式恢复
1. 引言
如今,信息系统逐渐走向分布式,规模也不断扩大,它们融合了各类组件系统,并通过互联网等方式与其他系统相互连接。这些分布式系统通常采用广泛可得的产品来设计和开发,而非专门定制的产品,这就导致这些产品未必能为应用程序提供足够的可靠性和可用性。因此,探讨如何使系统具备高可靠性和可用性,以实现容错应用程序的运行,显得尤为重要。
分布式应用程序依靠多个处理器中的多个进程协作来实现。检查点和恢复是广为人知的时间冗余容错技术。在执行应用程序时,每个进程会将状态信息记录在日志中,以此创建检查点。若某个进程出现故障,系统会通过恢复保存的状态信息,将进程回滚到检查点,然后从该检查点重新启动应用程序。这样,系统就能容忍一些临时性故障,如硬件错误、进程崩溃、事务中止和通信死锁等,而且这些故障在恢复后不太可能再次出现。
系统在恢复后必须保持一致性。全局检查点是系统中所有进程所创建检查点的集合。许多文献已经提出了获取一致全局检查点和重启进程的协议。传统的检查点协议要求系统中的所有进程同步创建检查点,但在大规模分布式系统中,每个进程仅与部分进程进行通信,所以需要一种允许部分进程创建检查点的协议。此外,传统协议要求进程同步重启,这可能会因同步操作而导致恢复过程变慢。如果部分进程创建检查点以实现一致检查点,并且进程异步重启,恢复过程可能会陷入无限循环,即出现活锁。
接下来,我们将回顾传统的检查点和恢复协议,分析系统从一致区域检查点异步重启时活锁是如何产生的,然后提出一种无活锁的异步恢复协议,并对该协议进行评估。
2. 检查点与恢复
2.1 一致状态
分布式系统由通过通道相互连接的多个进程组成
超级会员免费看
订阅专栏 解锁全文
614

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



