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

上传人:gs****r 文档编号:1611217 上传时间:2019-03-08 格式:DOC 页数:6 大小:52KB
下载 相关 举报
基于分布式同步时钟的paxos算法改进.doc_第1页
第1页 / 共6页
基于分布式同步时钟的paxos算法改进.doc_第2页
第2页 / 共6页
基于分布式同步时钟的paxos算法改进.doc_第3页
第3页 / 共6页
基于分布式同步时钟的paxos算法改进.doc_第4页
第4页 / 共6页
基于分布式同步时钟的paxos算法改进.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、基于分布式同步时钟的 paxos 算法改进【摘要】 本文分析了出现数据一致方面的问题,对解决数据一致性的 paxos算法中存在的主要问题进行了阐述,重点对一个 accept与accepted过程只能通过一个议案问题和通过议案的时间受议案的长度影响问题进行了研究。在 paxos算法的基础上,利用 proposor提交多个议案编号,结合议案被服务器集群过半存储的前提,对算法进行了改进。测试结果表明了算法的正确性和合理性。 【关键词】 paxos 算法 一次提交多个议案 过半存储 一、引言 数据一致性问题是分布式领域的经典问题,同时也是难点问题1。以服务器为中心的服务模型下,单点故障会导致服务器无法

2、对外提供服务,因此需要引入多台服务器。这样将会带来数据一致性问题,因此必须有一个副本控制协议来实现数据的一致性。2本文的分布式存储系统由成百上千个设备组成,若一次只能提交一条议案,引入逻辑时钟同步是一个巨大的开销。本文提出的一次提交多个议案编号的方案可以降低该开销。一次提交多个议案编号的设计中假若议案编号的议案缺失,会使得系统卡在此编号上,使得服务器无法运行下一条议案。因此得设计一个方法保证议案在被批准前时刻存在。 服务器的服务能力受其自身网络的硬件条件的制约。单台服务器所能对外提供的服务能力是有限路数的,很多是受带宽、网卡处理能力的影响,这是典型的单点问题。当单台服务器达到服务能力的上限时,

3、则采用用多台服务器来对外提供更强的服务能力。此时需要解决数据的一致性问题。 单点问题的解决方案大多是采用备份以及多服务器,多服务器意味着多中心的出现,多个中心如何保证数据一致性,以及对外提供更快速的服务是需首要解决的问题。尤其是互联网时代中的各种交易平台(如果多中心没有一致会使得业务收到影响) ,达成一致性所用的时间将会影响用户体验和平台的性能。因而,设计合理的响应时间的一致性算法对实际的应用来说是有意义的。 本文提出了基于全局逻辑时钟同步分布式系统一致全局状态的一种方法。本文设计了一个一致性算法并进行了系统仿真。 二、相关工作 2.1 全局时钟 分布式系统中,全局时钟需要能对发生在系统中的事

4、件进行排序。一个时钟要能用于刻画事件发生先后顺序,且对于因果序其要满足的条件:对于任意事件 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 算法分为两步骤:通过一

5、个决议的过程分为两个阶段4,5,6(若是 fastpaxos则首先,是 leader选举;其次是通过一个决议7):1.准备阶段(prepear,promise) ,2.批准阶段(accept,accepted) 。随着运行 paxos算法的机器数的增多算法达到一致性的时间会延长。还可得知机器数少,达到一致性的时间更短。Paxos 算法通过一条议案的转态转移如下图所示: 2.3 改进的算法 改进的算法转态转移图如下: 我们约定: 1.一个客户端要执行与全局相关的事件 e的时,需要向时钟系统申请一个编号,之后才能执行。来保证 e的操作能被其他客户端收到。 2.定义事件系统为;存储、记录以及执行全局

6、相关的所有事件的执行顺序的系统。事件系统是按照时钟进行事件推演的。即,将事件系统的推演定义为:整个系统执行操作的顺序是按照给定的逻辑时钟编号进行执行的,即各个节点先执行 C(event1)为 1的 event1,在执行C(event2)为 2的 event2 3. 进程内,进程 pi只有执行完一条指令,才能提出下一条指令的时钟申请。 基于 paxos算法的分布式时钟能够用来为系统运行提供一个时序。各个节点向该时钟系统申请执行议案,且严格的按照 paxos时钟的时序来执行。 单个的授时中心是不可靠的,因此需要多个授时中心,但是多个授时中心的时钟又是难以保证时时刻刻一致只能在一定的精度范围内的保持

7、一致。故为了完成在多节点的情况下能授给任何节点相同的时钟,可以在这些分布式授时中心上运行一致性算法 paxos来为事件系统的执行提供时钟协作信号。从而使得事务系统中发生在各个节点中进程的事件都可以被注册唯一的编号,即 C(event)是唯一的,只要其是经过我们的时钟系统提出了申请。 如何标记议案使得其在全局中是唯一。是一个较易做到的。例如使用自身的 IP和 PORT可以区别出本机和本机的其他进程,给议案一个标记 step使其在本进程内同其他的议案相区别开,同时使带 step的议案单调递增的被本进程执行。 本文对这种标记议案使其在全局中唯一的标记定义为 ID。 2.4 一次提交多个议案的算法的正

8、确性说明 上述算法设计进程内:任意连续的两个事件之间会增加 Ci的值。.进程间:(a)如果事件 a代表了进程 Pi发送消息 m的事件,那么消息m包含的时间戳 Tm=Ci(a).(b)在收到消息 m后,时钟系统会设置 Cj的值使得它大于等于它的当前值并大于 Tm。 在时钟系统中的 learner中会使得编号单调递增。 2.5 仿真实验设计与实现 实验环境 操作系统:ubuntu 15.04 处理器:Xeon E5-2620 , 主频:2.00GHz, 内存:32GB 的服务器 虚拟 12台机器(每台 1G) 。 编程技术和工具:Linux C、C+。 时钟系统源码:libpaxos(开源的) ,

9、 (也可以用 SB_ paxos) 。 三、结束语 经实验验证,采用本文所述策略使得在有大量请求时效率会高于原paxos算法。关于 paxos算法,若通过设置不同的 paxos组可实现不同范围内的同步。可以通过修改配置文件来构建更大范围的应用。所以,下一阶段工作是进行利用改进后的 paxos算法构建应用软件的研究。 参 考 文 献 1周婧,王意洁,阮炜,等. 面向海量数据的数据一致性研究J.计算机科学,2006,33(4):137-140. 2谈华芳,孙丽丽,侯紫峰.一种多副本一致性控制方法J.计算机工程.2006(11) 3LAMPORT L.Time,clocks and the orde

10、ring of events in a distributed systemJCommun ACM (CACM) , 1978, 21(7):558-565 4许子灿,吴荣泉.基于消息传递的 Paxos算法研究J.计算机工程,2011,37(21):287-290. 5 Lamport L. Paxos made simple. ACM SIGACT News 32,4 (Dec.2001) ,18-25. 6 LAMPORT L.The partime ParimentM. ACM Transaction on Computer Systems,1998,16(2):133-169. 7LAMPORT L. Fast paxosJ.Distributed Computing,2006,2(19):79-103.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。