基于分布式同步时钟paxos算法改进.docVIP

基于分布式同步时钟paxos算法改进.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于分布式同步时钟paxos算法改进

基于分布式同步时钟paxos算法改进   【摘要】 本文分析了出现数据一致方面的问题,对解决数据一致性的paxos算法中存在的主要问题进行了阐述,重点对一个accept与accepted过程只能通过一个议案问题和通过议案的时间受议案的长度影响问题进行了研究。在paxos算法的基础上,利用proposor提交多个议案编号,结合议案被服务器集群过半存储的前提,对算法进行了改进。测试结果表明了算法的正确性和合理性。   【关键词】 paxos算法 一次提交多个议案 过半存储   一、引言   数据一致性问题是分布式领域的经典问题,同时也是难点问题[1]。以服务器为中心的服务模型下,单点故障会导致服务器无法对外提供服务,因此需要引入多台服务器。这样将会带来数据一致性问题,因此必须有一个副本控制协议来实现数据的一致性。[2]本文的分布式存储系统由成百上千个设备组成,若一次只能提交一条议案,引入逻辑时钟同步是一个巨大的开销。本文提出的一次提交多个议案编号的方案可以降低该开销。一次提交多个议案编号的设计中假若议案编号的议案缺失,会使得系统卡在此编号上,使得服务器无法运行下一条议案。因此得设计一个方法保证议案在被批准前时刻存在。   服务器的服务能力受其自身网络的硬件条件的制约。单台服务器所能对外提供的服务能力是有限路数的,很多是受带宽、网卡处理能力的影响,这是典型的单点问题。当单台服务器达到服务能力的上限时,则采用用多台服务器来对外提供更强的服务能力。此时需要解决数据的一致性问题。   单点问题的解决方案大多是采用备份以及多服务器,多服务器意味着多中心的出现,多个中心如何保证数据一致性,以及对外提供更快速的服务是需首要解决的问题。尤其是互联网时代中的各种交易平台(如果多中心没有一致会使得业务收到影响),达成一致性所用的时间将会影响用户体验和平台的性能。因而,设计合理的响应时间的一致性算法对实际的应用来说是有意义的。   本文提出了基于全局逻辑时钟同步分布式系统一致全局状态的一种方法。本文设计了一个一致性算法并进行了系统仿真。   二、相关工作   2.1全局时钟   分布式系统中,全局时钟需要能对发生在系统中的事件进行排序。一个时钟要能用于刻画事件发生先后顺序,且对于因果序其要满足的条件:对于任意事件a,b:如果a-b,那么Cfunction(a) Cfunction (b)。Cfunction定义为一个函数――为进程中的任意事件a分配编号Cfunction (a)。即:   IR1.每个进程Pi在任意连续的两个事件之间会增加Ci的值。   IR2.(a)如果事件a代表了进程Pi发送消息m的事件,那么消息m包含的时间戳Tm=Ci(a).   (b)在收到消息m后,进程Pj会设置Cj的值使得它大于等于它的当前值并大于Tm。[3]   2.2 Paxos算法   Paxos算法分为两步骤:通过一个决议的过程分为两个阶段[4,5,6](若是fastpaxos则首先,是leader选举;其次是通过一个决议[7]):1.准备阶段(prepear,promise),2.批准阶段(accept,accepted)。随着运行paxos算法的机器数的增多算法达到一致性的时间会延长。还可得知机器数少,达到一致性的时间更短。Paxos算法通过一条议案的转态转移如下图所示:   2.3改进的算法   改进的算法转态转移图如下:   我们约定:   1.一个客户端要执行与全局相关的事件e的时,需要向时钟系统申请一个编号,之后才能执行。来保证e的操作能被其他客户端收到。   2.定义事件系统为;存储、记录以及执行全局相关的所有事件的执行顺序的系统。事件系统是按照时钟进行事件推演的。即,将事件系统的推演定义为:整个系统执行操作的顺序是按照给定的逻辑时钟编号进行执行的,即各个节点先执行C(event1)为1的event1,在执行C(event2)为2的event2   3. 进程内,进程pi只有执行完一条指令,才能提出下一条指令的时钟申请。   基于paxos算法的分布式时钟能够用来为系统运行提供一个时序。各个节点向该时钟系统申请执行议案,且严格的按照paxos时钟的时序来执行。   单个的授时中心是不可靠的,因此需要多个授时中心,但是多个授时中心的时钟又是难以保证时时刻刻一致只能在一定的精度范围内的保持一致。故为了完成在多节点的情况下能授给任何节点相同的时钟,可以在这些分布式授时中心上运行一致性算法paxos来为事件系统的执行提供时钟协作信号。从而使得事务系统中发生在各个节点中进程的事件都可以被注册唯一的编号,即C(event)是唯一的,只要其是经过我们的时钟系统提出了申请。   如何标记议案使得其在全局中是唯一。是一

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档