论文部分内容阅读
人们生产、生活等各个方面越来越依赖于计算机的广泛使用,建立高可靠、高可用计算机系统已成为现代社会发展的迫切要求。基于复制的容错技术,即将关键服务软件复制到分布式系统中一组计算机节点上运行,形成容错组,当某个(些)节点失败时,其它节点上的服务软件能正确运行,保证服务不会中断,从而屏蔽错误,可有效提高系统可靠性和可用性。主动复制和主从复制是常用的复制技术.主动复制中每个服务软件称为服务器复本(简称复本replica),每个复本起着相同作用,都接收并执行请求;而主从复制中只有一个服务软件执行请求,称为主服务器(primary),其它称为服务器副本(backup)。主动复制具有客户端请求响应快和可屏蔽拜占庭错误的优点,而主从复制占用较少计算资源,因此二者都获得了广泛应用。
复制技术关键在于维护复本(或主服务器/服务器副本)之间状态一致,本文主要研究维护主动复制和主从复制状态一致性关键技术。主动复制复本从相同初始状态起,为了维护复本之间状态一致,必须保证复本以一致顺序交付并执行请求:主从复制则要求主服务器失败后,当一个服务器副本成为新选举出的主服务器后能够进入原主服务器失败前最后的正确状态。然而,复制技术面临服务器节点崩溃、报文传输延迟不确定、报文丢失、服务器执行速度不一致以及多线程等诸多非确定性因素,维护状态一致性非常困难。针对现有工作的不足,本文主要的工作和贡献包括:
第一,客户请求全序化是复制技术正确的前提条件,本文提出异步分布环境下的一种非阻塞消息全序化协议NBTOP。非阻塞表现为当主动复制容错组发生演进时,容错组中的成员无需等待进入相同组视图后再继续计算,甚至当决定消息发生冲突时,容错组成员仍能继续各自的计算。NBTOP协议采用逻辑令牌环控制结构,成员利用再请求机制获得丢失的决定消息,通过“后继确认”机制解决决定消息冲突问题。进一步证明协议NBTOP满足全序性、一致性和终止性。
第二,多线程是一种重要的非确定源,即使交付了全序的请求,由于多线程并发执行,复本之间状态仍然可能不一致。因此,主动复制一般不支持多线程.但多线程能提高系统并发度、避免死锁并方便应用开发。基于面向对象技术,本文提出三种主动复制复本执行一致性算法ARCA_O、ARCA_P和ARCA_C,可分别支持多线程并发执行独立对象、同一对象独立属性和语义可交换请求,并证明其满足安全性和活性性质。三种算法均为分布式确定性算法,无需复本之间额外通信。
第三,针对主从复制状态更新频繁和主服务器失败后恢复慢的缺点,本文提出一非阻塞主从复制执行一致性算法NBCA_PB,采用全序多播机制,支持多线程并发执行,可有效提高系统响应时间和失败恢复时间。同时,证明算法NBCA_PB满足终止性、全序性、更新完整性和响应完整性。
第四,失败检测器是分布计算环境下所必需基础构件之一,作为一种重要的分布式系统应用,复制技术同样面临复本之间(或主服务器/服务器副本)相互判定是否失败的问题。基于概率统计,本文提出一新的QoS自适应失败检测器解决方案FDps,由统计器FDstat、配置器FDconf和基于PING-PONG策略协议算法FDpp等三部分组成。FDstat获得报文延迟规律、FDconf根据应用超时间隔和查询准确率QoS需求及FDstat结果动态配置FDpp所需参数并由FDpp实施自适应失败检测器。同时,证明FDpp在部分同步模型下可实现一个◇P类失败检测器。基于FDps失败检测器,本文还提出GMS-FDps组成员服务系统,它具有可移植性好,可扩展性强,用户接口丰富,系统开销少,失败检测速度快,误判率低,自稳定等特点。