关键词:
分布式系统
一致性协议
分发与排序分离
多管道通信
故障恢复
摘要:
随着互联网的广泛普及和网络应用的蓬勃发展,传统的集中式服务系统已经无法有效地应对海量用户请求和满足用户对服务高可靠性的要求。在这种背景下,新兴的分布式服务系统成为了解决这一难题的关键。在分布式系统中,一致性协议是最为核心的部分,因为它确保所有节点对用户请求处理的一致性,以及保证面对节点故障等分布式环境常见问题时能够恢复系统的正常运行。然而,当前的一致性协议面临用户请求处理性能不足和故障恢复效果不佳的问题。这是因为它们在降低协议性能的通信成本和领导者瓶颈问题上处理不佳。此外,由于协议的请求处理过程设计复杂,其的故障恢复设计也将变得更加复杂。对此,本文提出了一种新的一致性协议——TPChain(Two Pieces of Chain)协议。它创新地将所有节点组织为前链和后链形式,并基于这两段链结构来处理用户请求和进行节点故障恢复,具体研究内容如下:
(1)为解决用户请求处理性能不足问题,TPChain协议基于将用户请求的数据分发和排序控制的分离处理以及多管道通信,提出了新的用户请求处理模型和算法。该算法在保留单领导者高效排序的基础上,通过将请求的分发处理分摊到前链的F+1个节点,以此降低领导者的负载压力,从而减轻了领导者瓶颈对性能的影响。同时,领导者和F+1个前链节点均使用独立管道传输消息,不仅降低了系统整体的通信成本,还确保了系统中所有节点分发消息的并发度。此外,TPChain协议通过减少读请求在冲洗阶段的驻留时间优化本地单调读方法。最后,本文从理论证明了所提出的请求处理算法的正确性。
(2)为解决节点故障导致系统运行中断的问题,TPChain协议基于内部消息集成故障恢复机制,提出了新的简单的多管道故障恢复模型和算法。首先,该协议通过限制领导者由F+1个前链节点产生和多管道按照先前链再后链的链式拓扑规则产生、修复,降低了故障恢复设计复杂度。然后,针对系统存在的各种故障情况,该协议设计相应的节点和多管道的故障恢复算法,保证了系统的稳定性。最后,本文从理论证明了所提出的多管道故障恢复算法的正确性。
为了评估TPChain协议,本文设计了一个基于事件驱动处理的微服务架构的协议通用实现框架,能够满足各种一致性协议快速实现需求。在此框架基础上,本文实现了TPChain协议以及其他多种协议,并将它们应用于构建分布式键值型存储系统。经过多种场景的测试,TPChain协议性能提升显著:吞吐量提高约2倍以上,延迟降低26%;本地单调读性能提升了2倍。同时,面对各种可能节点故障情况,TPChain协议以毫秒级时间恢复节点和所有管道,相比使用外部协调器协议的秒级恢复时间,更加高效。此外,TPChain协议不会出现因协调器宕机而导致故障无法修复,保证了系统的稳定性和自主性。这些测试结果充分证明了TPChain协议的用户请求处理过程和多管道故障恢复算法的有效性、优越性。