一种全局逻辑时钟同步分布式方法与流程

文档序号:12278949阅读:749来源:国知局

本发明属于数据处理领域,尤其涉及一种全局逻辑时钟同步分布式方法。



背景技术:

数据一致性问题是分布式领域的经典问题,同时也是难点问题。以服务器为中心的服务模型下,单点故障会导致服务器无法对外提供服务,因此需要引入多台服务器。这样将会带来数据一致性问题,因此必须有一个副本控制协议来实现数据的一致性。服务器的服务能力受其自身网络的硬件条件的制约。单台服务器所能对外提供的服务能力是有限路数的,很多是受带宽、网卡处理能力的影响,这是典型的单点问题。当单台服务器达到服务能力的上限时,则采用用多台服务器来对外提供更强的服务能力。此时需要解决数据的一致性问题。单点问题的解决方案大多是采用备份以及多服务器,多服务器意味着多中心的出现,多个中心如何保证数据一致性,以及对外提供更快速的服务是需首要解决的问题。尤其是互联网时代中的各种交易平台(如果多中心没有一致会使得业务收到影响),达成一致性所用的时间将会影响用户体验和平台的性能。因而,设计合理的响应时间的一致性算法对实际的应用来说是有意义的。



技术实现要素:

为了解决上述问题,本发明提供一种全局逻辑时钟同步分布式方法,对解决数据一致性中存在的主要问题进行了阐述,只能通过一个议案问题和通过议案的时间受议案的长度影响问题进行了研究,结合议案被服务器集群过半存储的前提,对算法进行了改进。

本发明一种全局逻辑时钟同步分布式方法是通过以下技术方案来实现的:

一种全局逻辑时钟同步分布式方法,包括以下几个步骤:

步骤1:一连接客户端执行与全局相关的事件m时,向时钟系统申请一个编码A;

步骤2:系统执行操作的顺序是按照给定的逻辑时钟编号进行执行的,进程pi只有执行完一条指令,才能提出下一条指令的时钟申请。

所述时钟系统包括多个授时中心,并且采用paxos算法保证多个授时中心的一致性。

所述时钟系统授时过程如下:

(a)如果事件a代表了进程Pi发送消息m的事件,那么消息m包含的时间戳Tm=Ci(a);

(b)在收到消息m后,时钟系统会设置Cj的值使得它大于等于它的当前值并大于Tm。

时钟系统还设置有自主学习单元,自主学习单元会使得编号单调递增。

本发明具有的有益效果:

采用本发明所述系统使得在有大量请求时效率更高;并且可以通过修改配置文件来构建更大范围的应用。

具体实施方式

分布式系统中,全局时钟需要能对发生在系统中的事件进行排序。一个时钟要能用于刻画事件发生先后顺序,且对于因果序其要满足的条件:对于任意事件a,b:如果a->b,那么Cfunction(a)<Cfunction(b)。

Cfunction定义为一个函数,即为进程中的任意事件a分配编号Cfunction(a)。即:

(1)每个进程Pi在任意连续的两个事件之间会增加Ci的值;

(2)如果事件a代表了进程Pi发送消息m的事件,那么消息m包含的时间戳Tm=Ci(a);

(3)在收到消息m后,进程Pj会设置Cj的值使得它大于等于它的当前值并大于Tm。

一种全局逻辑时钟同步分布式方法,包括以下几个步骤:

步骤1:一连接客户端执行与全局相关的事件m时,向时钟系统申请一个编码A;之后才能执行,来保证事件m的操作能被其他客户端收到;

步骤2:系统执行操作的顺序是按照给定的逻辑时钟编号进行执行的,即各个节点先执行C(event1)为1的event1,在执行C(event2)为2的event2……进程pi只有执行完一条指令,才能提出下一条指令的时钟申请。

所述时钟系统包括多个授时中心;但是多个授时中心的时钟又是难以保证时时刻刻一致只能在一定的精度范围内的保持一致。故为了完成在多节点的情况下能授给任何节点相同的时钟,可以在这些分布式授时中心上运行一致性算法paxos来为事件系统的执行提供时钟协作信号。从而使得事务系统中发生在各个节点中进程的事件都可以被注册唯一的编号,只要其是经过我们的时钟系统提出了申请。

所述时钟系统授时过程如下:

(a)如果事件a代表了进程Pi发送消息m的事件,那么消息m包含的时间戳Tm=Ci(a);

(b)在收到消息m后,时钟系统会设置Cj的值使得它大于等于它的当前值并大于Tm。

时钟系统还设置有自主学习单元,自主学习单元会使得编号单调递增。

本发明所举实施方式或者实施例对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所举实施方式或者实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1