基于Raft共识算法的分布式系统一致性问题研究
发布时间:2021-08-24 19:13
复制状态机作为分布式系统的主要容错手段,典型地使用复制日志来实现。该方法维持一组服务器上的多个复制日志彼此相同,同时要求每个状态机按照顺序执行日志中的命令,由此保证每台服务器产出相同的状态,从而可以容忍少数服务器故障。复制状态机方法需要使用分布式共识协议保证多个复制日志能够就下一个日志条目达成共识,同时需要在故障和消息延迟情况下保证多个状态机对外的数据一致。共识协议作为复制状态机的核心组件,需要被简洁高效地实现。但诸如Paxos、ViewStamped Replication、Zab这些主流的共识协议,算法本身难以理解,工程实现上也需要进行额外扩展或性能优化,不便于构建实际系统。此外,基于复制状态机构建满足给定一致性模型的分布式服务,需要根据服务特性和应用场景进行特定设计,没有通用的解决方案。基于以上问题,本文的研究内容如下:(1)本文分析对比主流的共识协议,基于可理解性和易于工程实现的需求,选择Raft协议作为核心算法。但现有Raft协议实现,大多数为实验性质,在完整性上有所欠缺或在正确性上缺乏验证,少数可行实现都是作为大型服务的一部分,没有封装成一个通用的基础库形式。因此本文从零开...
【文章来源】:西安电子科技大学陕西省 211工程院校 教育部直属院校
【文章页数】:99 页
【学位级别】:硕士
【部分图文】:
图2.1?Raft状态转移图??
图2.2?Raft任期??
正常运行期间,一致性检查总是从新条目的上一个索引位置进行的,所以领导者??和跟随者日志总是一致的。但是,当发生领导者崩溃或者网络分区时,跟随者的日志??就会和领导者存在冲突。图2.4给出了跟随者日志不同于领导者的几种形式。每个日??志条目中只给出了任期号,省去了客户端命令。跟随者可能缺失日志条目(图2.4中??的(a-b)),也可能拥有额外的不在领导者日志中的条目(图2.4中的(c-d)),或者两??者都有(图2.4中的(e-f))。??】2?3?4?5?6?7?8?9?10?11?12?索引??TTTTT'prniTTTTTTTTTI?任期为s?的?? ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄?领导者??(a)?1?I?1?4?4?5?5?6?6??(b)?1114??(c)?|?1?1?1?|?1?1?4?|?4?1?5?1?5?|?6?1?6?1?6?[7]?可能的?? ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄r?-r?■■? ̄ ̄r ̄_!?跟随者??(d)?1?1?1?|4[4|5|5|6|6[6|7|7??(e)?1?I?14?4?4?4??(〇?I?1?I?22233?3?33??图2.4日志不一致的可能情况??16??
本文编号:3360560
【文章来源】:西安电子科技大学陕西省 211工程院校 教育部直属院校
【文章页数】:99 页
【学位级别】:硕士
【部分图文】:
图2.1?Raft状态转移图??
图2.2?Raft任期??
正常运行期间,一致性检查总是从新条目的上一个索引位置进行的,所以领导者??和跟随者日志总是一致的。但是,当发生领导者崩溃或者网络分区时,跟随者的日志??就会和领导者存在冲突。图2.4给出了跟随者日志不同于领导者的几种形式。每个日??志条目中只给出了任期号,省去了客户端命令。跟随者可能缺失日志条目(图2.4中??的(a-b)),也可能拥有额外的不在领导者日志中的条目(图2.4中的(c-d)),或者两??者都有(图2.4中的(e-f))。??】2?3?4?5?6?7?8?9?10?11?12?索引??TTTTT'prniTTTTTTTTTI?任期为s?的?? ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄?领导者??(a)?1?I?1?4?4?5?5?6?6??(b)?1114??(c)?|?1?1?1?|?1?1?4?|?4?1?5?1?5?|?6?1?6?1?6?[7]?可能的?? ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄r?-r?■■? ̄ ̄r ̄_!?跟随者??(d)?1?1?1?|4[4|5|5|6|6[6|7|7??(e)?1?I?14?4?4?4??(〇?I?1?I?22233?3?33??图2.4日志不一致的可能情况??16??
本文编号:3360560
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3360560.html