CN102882943B - 服务副本读写方法及系统 - Google Patents

服务副本读写方法及系统 Download PDF

Info

Publication number
CN102882943B
CN102882943B CN201210337842.7A CN201210337842A CN102882943B CN 102882943 B CN102882943 B CN 102882943B CN 201210337842 A CN201210337842 A CN 201210337842A CN 102882943 B CN102882943 B CN 102882943B
Authority
CN
China
Prior art keywords
rid
replica node
request
represent
write request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210337842.7A
Other languages
English (en)
Other versions
CN102882943A (zh
Inventor
孙海龙
邓婷
王旭
张日崇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianhang Changying (Jiangsu) Technology Co.,Ltd.
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210337842.7A priority Critical patent/CN102882943B/zh
Publication of CN102882943A publication Critical patent/CN102882943A/zh
Application granted granted Critical
Publication of CN102882943B publication Critical patent/CN102882943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种服务副本读写方法及系统。其中的读取方法包括:副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rid))=|Δw(rd1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。本发明有利于提高服务副本的灵活性和可配置性。

Description

服务副本读写方法及系统
技术领域
本发明涉及一种服务副本读写方法及系统,属于云计算与服务计算、副本技术和一致性技术领域。
背景技术
云计算与服务计算技术
近年来,随着互联网和分布式技术的不断发展,网络应用进入了云计算时代。通过云计算技术,软硬件资源和数据能够以服务的形式按需提供给用户和其他设备。云计算技术的特征是:(1)按用支付,整体成本大幅度降低;(2)按需使用,用户可以根据需求随时更换和选择自己所需的软硬件资源;(3)资源可靠性、计算性能、共享程度以及透明性提高,云计算通过资源副本、弹性、多租户和虚拟化技术的使用大幅提升资源可靠性、性能、共享程度以及透明性。从用户角度来看,云计算的应用模式有三种:软件即服务(Software as a Service,简称:SaaS),各种软件通过浏览器、手机等终端向用户提供服务;平台即服务(Platform as a Service,简称:PaaS,),通过网络提供可托管的运行、计算平台,使得用户能够在这些平台上运行;底层资源即服务(Infrastructure as a Service,简称:IaaS,),虚拟机、数据存储等底层资源以服务的形式供用户选择和使用。
平台即服务作为云计算的一种重要模式,越来越受到关注。PaaS作为托管平台,允许开发人员透明的远程部署自己的各种应用程序,而不需要关注底层的硬件、操作系统和依赖的中间件。这些应用程序部署在PaaS平台以后,又能够以Web应用的形式被互联网上的用户访问和使用。但是,(1)由于PaaS平台底层使用的商用廉价计算机、网络设备、硬盘以及后台复杂的管理任务,使得平台不可避免的出现失效的情况。失效会影响到平台上部署的成千上万的应用服务,而大部分应用服务又要求7X24的不间断服务能力,也就是高可用性。高可用性的需求使得PaaS平台不得不采用类似于副本技术的方法屏蔽系统失效,保证部署应用的持续服务能力;(2)互联网应用具有一个特点,它不以安装的软件数目来衡量用户数,而是以某时间段内的用户请求数来度量。部署在PaaS平台上的应用服务很有可能在很短的一段时间内用户数出现爆发式增长,传统的服务部署方式由于受限于节点的计算网络能力,往往出现服务忙、服务不可用等情况,所以PaaS平台一般会采取资源弹性的方式为相应的服务快速构建副本,从而实现负载分流,满足井喷式用户增长的访问需求。
另外,服务计算领域强调应用程序通过网络通信协议将接口暴露出来以允许第三方应用进行远程调用,从而达到应用集成的目的。基于SOA(面向服务的体系架构,Service Oriented Architecture)的体系结构和Web服务等技术标准使得服务计算得到了广泛的企业应用。目前随着云计算的发展,服务计算领域开始泛化和延伸,几乎所有的通过网络可达的应用,包括数据中心、社会网络以及Web APIs(Web应用程序编程接口,WebApplication Program Interfaces)等,都被认为是广义上的服务。这些服务大部分具有类似的高可用性和可扩展性需求,同样亟需相应的解决方案。
副本技术
副本是分布式领域提升系统可用性和负载均衡的主流技术。针对服务,它一般将服务进行多个副本的备份,首先当某些副本失效的时候可以将请求转发到其余正常的副本进行处理;其次可以将请求在多个副本间进行负载均衡。副本技术面临着两个方面的挑战,其一,如何保证多个副本间的一致性;其二,如何快速恢复失效的节点以保持可用的副本数。第二个挑战目前已经有相对成熟的方案进行解决,只是效率高低的差异。但第一个挑战目前一直是研究的难点和热点。
常见的副本策略包括:(1)主从备份策略。该策略一般通过间断式的主从节点状态同步来维持一致性,但实际上当主节点在两次同步时间点之间失效时,一部分主节点状态会丢失。而且最近的研究表明,在大规模分布式系统中主从两个节点同时失效的概率大大增加;(2)两阶段提交(Two-Phase Commit,简称:2PC)协议。该协议由于在协调副本节点处阻塞以等待所有其余节点的反馈消息,所以性能较差。而且,任何一个节点的失效都会导致协议的终止。虽然有人对该协议进行了改进并提出三阶段提交协议,但性能依然不好;(3)组通信。组通信的基本思想是将分布式系统中的多个进程构成一个组,然后保证所有进程发出的消息顺序与消息到达的顺序一致。组通信的缺点是每一次的节点失效都会造成组视图更新,从而导致性能下降;(4)Paxos算法。Paxos算法广为接收的分布式异步一致性算法,她的正确性和活性已经得到证明。根据副本状态机模型,Paxos算法能够保证所有的副本对请求序列的顺序达成一致,从而使得所有副本的状态保持同步。
上述四种副本策略已经得到了较为广泛的应用。但是随着云计算技术的新起,人们发现云平台对副本技术提出了更高的要求。研究发现:要么放松需求,要么以放弃副本间的一致性为代价。CAP定理和PACELC原则就是陈述各要素间的互相权衡关系的。CAP定理认为下述三个要素之间最多只能同时满足两个:(1)一致性(Consistency),副本间的状态相同性;(2)可用性(Availability),所有副本组成的服务对外持续响应请求的能力;(3)分割容忍性(Partition Tolerance),系统是否能够容忍网络分割的能力。CAP定理虽然简练精准,但是不容易理解。耶鲁大学的教授又把它重新诠释为PACELC原则,它可以陈述为:“当系统存在网络分割时,一致性和可用性之间必须进行权衡;当系统不存在网络分割时,一致性和性能之间必须进行权衡”。由此可见,一致性是副本技术的核心。而上述四种副本策略都是以实现副本强一致性为基础的,并不能满足云计算服务对可用性和性能的需求。所以在云计算环境下需要设计新的更加灵活的一致性副本技术。
一致性技术
副本技术在数据库、分布式、中间件等领域得到了广泛的应用研究。根据一致性的柔性程度大体上可以分成两类:一类是按照应用对一致性的具体要求而设计的一致性相对确定的副本方法;另一类是一致性相对可调的柔性副本方法。
在第一类方法中,依据一致性的强弱程度,又可以划分为:强一致性(Strong Consistency)、时间一致性(Timeline Consistency)、最终一致性(Eventual Consistency)。强一致性的方法主要是上述四种副本策略,其代表工作包括JGroups软件系统、Chubby软件系统和Zookeeper软件系统等。变体包括快照隔离的副本(Snapshot Isolation Replication)和非统一的原子广播(Non-uniform Atomic Broadcast)等。虽然在一些情况下某些变体会出现不一致性的情况,比如非统一原子广播的请求丢失问题,但总体上这些变体在绝大部分时间下都保证了副本间的一致性,而又不明显具有某种弱一致性的特征,所以也将其划入到强一致性类别中;时间一致性的方法是允许副本间的状态每隔一个特定的时间间隔再进行同步。其代表工作有Spinnaker软件系统和PNUTS软件系统等;最终一致性的方法只确保在最终的某一个时刻,副本间的状态得到更新。其代表工作有亚马逊Dynamo软件系统。无论是强一致性、时间一致性还是最终一致性的副本方法,这一类方法都是针对某类对一致性有特定要求的应用设计的,通用性非常差,无法满足PaaS平台成千上万用户对一致性的个性化需求。
第二类方法,一致性相对可调的柔性副本方法已经有相关文献进行了研究。
现有技术中至少存在如下问题:
云计算随着互联网、移动技术以及分布式技术的发展,逐渐成为互联网服务的核心技术之一。PaaS平台作为云计算技术的重要实现模式和形态,已经成为企业界和学术界广泛关注的热点。PaaS平台运营商将应用运行环境以服务的形式提供给开发人员,允许开发人员远程部署和托管自己的应用,使得应用为最终用户服务。但是,出于成本考虑,现有PaaS平台底层广泛使用商用廉价计算机、网络设备、硬盘,再加上后台的复杂管理任务,使得平台不可避免的出现失效的情况。失效会影响到平台上部署的成千上万的应用服务,所以PaaS平台需要采用副本技术屏蔽系统失效,以保证部署应用的持续服务能力。
然而,副本技术的使用也并不是一劳永逸的完美解决方法。CAP定理和PACELC原则指出:副本一致性、服务可用性、分割容忍性以及性能之间存在权衡和取舍,不可能同时得到满足。目前的副本技术主要针对特定应用或者特定领域,要么是选择确定的一致性,要么是在特定领域内进行有限的调整。而大部分PaaS平台并不是面向特定应用和领域的,因此缺乏灵活性和可配置性。
发明内容
本发明提供一种服务副本读写方法及系统,用以提高服务副本的灵活性和可配置性。
本发明一方面提供一种服务副本写入方法,其中包括:
协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;
所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点;
所述协调副本节点根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中, wd = 1 - &Sigma; i = d N P ( X = i ) = 1 - &Sigma; i = d N N i p i ( 1 - p ) N - i 表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量;
所述协调副本节点当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交命令;
每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中, &rho; ( i , w lst ) = &Sigma; j = 1 m | j - &phi; ( rid ij ) ) | + &Sigma; k = m + 1 n k 表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识;
当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。
本发明另一方面提供一种服务副本读取方法,其中包括:
副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;
所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rd))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;
当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
本发明再一方面提供一种服务副本处理系统,其中包括协调副本节点和多个普通副本节点,其中:
所述协调副本节点包括:转发模块,用于当接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;解析模块,用于根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中, wd = 1 - &Sigma; i = d N P ( X = i ) = 1 - &Sigma; i = d N N i p i ( 1 - p ) N - i 表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量;命令模块,用于当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交命令;
所述普通副本节点包括:反馈模块,用于将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点;检验模块,用于当接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中, &rho; ( i , w lst ) = &Sigma; j = 1 m | j - &phi; ( rid ij ) ) | + &Sigma; k = m + 1 n k 表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识;提交模块,用于当所述第二类一致性配置条件为真时,向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。
本发明又一方面提供一种副本节点,其中包括:
赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;
检验单元,用于检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rid))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求
的标识,rid1st表示全局最新的请求的标识;
提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。
附图说明
图1为本发明所述服务副本写入方法的流程图;
图2为图1所示方法的举例图;
图3为本发明所述服务副本读取方法的流程图;
图4为图2所示方法的举例图;
图5为副本节点失效时的处理流程图;
图6为本发明所述服务副本处理系统的结构示意图;
图7为本发明所述副本节点的结构示意图。
具体实施方式
图1为本发明所述服务副本写入方法的流程图,如图1所示,包括如下步骤:
步骤110,协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一请求标识rid并将该写请求转发给所有的普通副本节点。
其中,协调副本节点是接收到写请求的节点,除此之外的其他副本节点均可以称为普通副本节点。假设每个请求都根据他们的先后顺序被赋予一个唯一标识rid,而且每个写请求也根据在所有写请求中的顺序被赋予一个唯一标识其中是rid到wid的映射函数。
步骤120,所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点。
步骤130,所述协调副本节点根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值。
其中, wd = 1 - &Sigma; i = d N P ( X = i ) = 1 - &Sigma; i = d N N i p i ( 1 - p ) N - i 表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧},y1,y2,…,ym;表示所述服务副本上下文中的变量;写持久性(Write Durability)代表写请求在出现副本失效情况下不被丢失的概率,当N和p相等的情况下,wd随着d的增大而增大。也就是说,每个写请求在最终提交之前发送的副本个数越多,这个请求就越不容易丢失。
步骤140,所述协调副本节点当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交命令。
其中,所述全部副本节点包括所述协调副本节点及全部的普通副本节点。
步骤150,每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真。
其中,只要F2(ρ(i,wlst),y1,y2,...,ym)op0这个关系式能够得到满足即为真,否则为假;令wlst(ridlst)是目前所有副本中最新的写请求且,标准版本V0定义为向量(1,2,3,...,n),副本i(i=1,2,...,N)的版本Vi定义为该副本已经提交的写请求的序列向量,即Vi=(ridi1,ridi2,...ridij,...,ridim),其中ridij指副本i第j个提交的写请求的标识,m表示副本i目前提交的写请求的个数。于是,写发散性被量化为一个函数
&rho; ( i , w lst ) = VersionDis tan ce ( V i , V 0 ) = &Sigma; j = 1 m | j - &phi; ( rid ij ) ) | + &Sigma; k = m + 1 n k
写发散性(Write Divergence)代表写请求提交的序列(或副本状态)与真实序列(或者真实状态)之间的差异,上述写发散性的定义是一个通用定义,可以表达几乎所有的副本发散的程度。针对数值型的副本服务,数值写发散性(Numerical write divergence)被定义为:
&rho; n ( i , w lst ) = VersionDis tan ce ( V i , V 0 ) = | &Sigma; j = 1 m &pi; ( w ( rid ij ) ) - &Sigma; k = m + 1 n &pi; ( w ( j ) ) |
其中,π是定义在写请求上的函数,表示该写请求对某个数值的修改程度。比如,w(ridij)=”x=x-5”,那么π(w(ridij))=-5。
步骤160,当所述第二类一致性配置条件是为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。
具体的举例图如图2所示。
图3为本发明所述服务副本读取方法的流程图,如图所示,包括如下步骤:
步骤210,副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一请求标识rid。
步骤220,所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真。
其中,对于每一个读请求r(rid),假设它读取的最新写请求是wlst’(ridlst’),而实际上的全局最新写请求是wlst(ridlst)。于是,读请求r(rid)的读陈旧性量化函数定义为:ψ(r(d))=|Δw(rid1st′,rid1st)|,其中:Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识。
步骤230,当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
具体的举例图如图4所示。
本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行发送、传输和提交,以最新形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。
上述三类一致性配置条件均属于副本一致性量化模型(QuantitativeModel for Replication Consistency)。另外,如图5所示的举例所示,在写入过程中,当存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,需要与其他的普通副本节点进行状态同步;当不存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,则可以继续等待,直到第二类一致性配置条件为真。
在读出过程中,当存在失效的副本节点且检验出所述第三类一致性配置条件为假时,与其他的副本节点进行状态同步;当不存在失效的副本节点且检验出所述第三类一致性配置条件为假时,则可以继续等待,直到第三类一致性配置条件为真。
其中的状态在本领域内特指副本执行的请求个数、顺序等信息。
图6为本发明所述服务副本处理系统的结构示意图,用以实现上述写入方法,其中包括协调副本节点10和多个普通副本节点20,其工作原理如下:
协调副本节点10当接收到来自于客户端的写请求后,由转发模块11为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点20;解析模块12根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中, wd = 1 - &Sigma; i = d N P ( X = i ) = 1 - &Sigma; i = d N N i p i ( 1 - p ) N - i 表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量。
所述普通副本节点20中的反馈模块21将来自于所述协调副本节点10的写请求进行本地存储,并发送反馈报文给所述协调副本节点10。
协调副本节点10当接收到d-1个所述反馈报文时,由命令模块13向全部副本节点20发送写请求提交命令。当普通副本节点20接收到所述写请求提交命令后,由检验模块22检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中, &rho; ( i , w lst ) = &Sigma; j = 1 m | j - &phi; ( rid ij ) ) | + &Sigma; k = m + 1 n k 表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识;当所述第二类一致性配置条件为真时,由提交模块23向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点10返回给所述客户端。
此处需要说明的是,所述协调副本节点10中也可以包含所述检验模块22和提交模块23的功能。
图7为本发明所述副本节点的结构示意图,用以实现上述读取方法,其工作原理如下:
当副本节点30收到客户端发来的读请求后,由赋值单元31为该读请求赋予全局唯一的请求标识rid;由检验单元32检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(d))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;当所述第三类一致性配置条件为真时,由提交单元33向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。
以下与几种现有技术比较说明本发明的技术效果:
1、与文献1“Yu,H.And Vahdat,A.Design and evaluation of a continuousconsistency model for replicated services.In 4th Symp.on Op.Sys.Design and Implemen.(OSDI)(San Diego,CA,USA,Oct.2000),pp.305318.”相比
文献1提出了TACT连续一致性模型并进行了实现,与本发明的区别在于:
(1)文献1的一致性模型中未考虑写持久性;而本发明通过求解d值体现了写持久性;
(2)文献1的弱一致性主要体现在数据的偏差,即数值写发散性(Numerical write divergence)上,无法表达非数据的副本一致性;而本发明考虑了数值写发散性。
2、与文献2“Tim Kraska,Martin Hentschel,Gustavo Alonso,and DonaldKossmann.2009.Consistency rationing in the cloud:pay only when it matters.Proc.VLDB Endow.2,1(August 2009),253-264.”相比
文献2指出在同一个应用的不同阶段使用不同一致性水平的副本方法,与本发明的区别在于它目前支持的一致性主要包括会话一致性和可串行一致性。
3、与文献3“Corina Ferdean,Mesaac Makpangou.Distributed Computing andInternet Technology.Lecture Notes in Computer Science,2005,Volume 3347/2005,227-243.”相比
文献3面向副本管理提出了通用和柔性的一致性模型,与本发明的区别在于:
(1)文献3的模型基于数据对象而本发明基于副本状态机,其中副本状态机是一种副本技术基本模型,主要特点是对所有请求的全局顺序rid达成一致;而本发明中主要体现在副本一致性量化模型和一致性配置上,F1(或d)、F2、F3,本发明更加有利于表达服务副本的一致性;
(2)文献3的模型只是提出一种设想而未提及如何实现;而本发明进行了实现和验证;
(3)文献3的模型未考虑写持久性的问题;而本发明考虑了写持久性。
4、与文献4“Susarla S.,Carter J..Flexible Consistency for Wide Area PeerReplication.25th IEEE International Conference on Distributed Computing Systems,2005.”、文献5“Krishnamurthy S.,Sanders W.H.,Cukier M..An adaptive framework fortunable consistency and timeliness using replication.International Conference onDependable Systems and Networks,2002.”、文献6“Huang,Yu;Cao,Jiannong;Wang,Zhijun;Jin,Beihong;Feng,Yulin;,"Achieving Flexible Cache Consistency for PervasiveInternet Access,"Fifth Annual IEEE International Conference on Pervasive Computingand Communications,2007.”和文献7“B Mukherjee,et al.Flexible state sharing andconsistency mechanism for interactive applications.US Patent 6,058,416,2000.”相比
文献4针对P2P系统的数据共享设计了柔性的一致性框架;文献5的QoS提出了面向柔性QoS的自适应副本一致性保障框架;文献6针对分布式缓存的一致性,结合误差一执行和概率一致性提出了柔性的缓存一致性方法;文献7面向协作的互联网应用使用可回滚的一致性模型来保证副本状态间的同步。
这些面向特定领域的柔性一致性模型也普遍存在通用性差和表达能力片面的问题,无法使用在PaaS平台这样面向互联网、服务类型无法预知的场景下;本发明的通用性好体现在一致性配置中没有对应用服务的语义作出约束,所有应用服务都可以使用本发明;表达能力不片面,主要体现在强一致性、时间一致性、最终一致性等大部分一致性水平本发明都支持。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种服务副本写入方法,其特征在于,包括:
协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;
所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点;
所述协调副本节点根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中,表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧}中的任意一种对一致性进行配置,y1,y2,…,ym表示所述服务副本上下文中的变量;
所述协调副本节点当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交命令;
每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中, 表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识,∑k描述还未提交但是即将要提交的请求造成的写发散程度度量;
当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述写发散性量化函数具体为数值写发散性量化函数其中,π表示定义在写请求上的函数,表示该写请求对被修改的数值的修改程度,w表示写请求,m表示y的个数,n表示全部N个服务副本中的一个服务副本的序号,w(ridij)表示标识为ridij的写请求,w(j)表示第j个提交的写请求。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
当存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,与除自身以外的全部其他普通副本节点进行状态同步。
4.一种服务副本读取方法,其特征在于,包括:
副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;
所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rid))=|Δw(rid1st',rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧}中的任意一种对一致性进行配置,y1,y2,…,ym表示所述服务副本上下文中的变量,w表示写请求,w(rid)表示序号rid的写请求,△w(rid1st’,rid1st)表示在序号rid1st’和序号rid1st之间的请求的集合,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;
当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
5.根据权利要求4所述的方法,其特征在于,还包括:
当存在失效的副本节点且检验出所述第三类一致性配置条件为假时,与其他的副本节点进行状态同步。
6.一种服务副本处理系统,其特征在于,包括协调副本节点和多个普通副本节点,其中:
所述协调副本节点包括:
转发模块,用于当接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;
解析模块,用于根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中,表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,<,>,≦,≧}中的任意一种对一致性进行配置,y1,y2,…,ym表示所述服务副本上下文中的变量;
命令模块,用于当接收到d-1个反馈报文时,向全部副本节点发送 写请求提交命令;
所述普通副本节点包括:
反馈模块,用于将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点;
检验模块,用于当接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中, 表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识,∑k描述还未提交但是即将要提交的请求造成的写发散程度度量;
提交模块,用于当所述第二类一致性配置条件为真时,向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。
7.根据权利要求6所述的系统,其特征在于,所述协调副本节点中也包含所述检验模块和所述提交模块。
8.一种副本节点,其特征在于,包括:
赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;
检验单元,用于检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rid))=|Δw(rid1st',rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧}中的任意一种对一致性进行配置,y1,y2,…,ym表示服务副本上下文中的变量,w表示写请求,w(rid)表示序号rid的写请求,△w(rid1st’,rid1st)表示在序号rid1st’和序号rid1st之间的请求的集合,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;
提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。
CN201210337842.7A 2012-09-12 2012-09-12 服务副本读写方法及系统 Active CN102882943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210337842.7A CN102882943B (zh) 2012-09-12 2012-09-12 服务副本读写方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210337842.7A CN102882943B (zh) 2012-09-12 2012-09-12 服务副本读写方法及系统

Publications (2)

Publication Number Publication Date
CN102882943A CN102882943A (zh) 2013-01-16
CN102882943B true CN102882943B (zh) 2015-10-21

Family

ID=47484085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210337842.7A Active CN102882943B (zh) 2012-09-12 2012-09-12 服务副本读写方法及系统

Country Status (1)

Country Link
CN (1) CN102882943B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475709B (zh) * 2013-09-09 2017-01-04 国家电网公司 一种面向云计算平台的副本动态控制方法及其系统
CN104283956B (zh) * 2014-09-30 2016-01-20 腾讯科技(深圳)有限公司 强一致性分布式数据存储方法、装置及系统
CN107786651A (zh) * 2017-10-23 2018-03-09 云南大学 带租户演化容忍度的SaaS服务演化一致性判定方法
US11061924B2 (en) * 2017-11-22 2021-07-13 Amazon Technologies, Inc. Multi-region, multi-master replication of database tables
CN112527900B (zh) * 2020-12-04 2023-08-01 广州银行股份有限公司 一种数据库读多副本一致性的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873224A (zh) * 2010-06-07 2010-10-27 北京高森明晨信息科技有限公司 一种云计算负载均衡方法和设备
CN102096723A (zh) * 2011-04-07 2011-06-15 江苏省电力公司 基于副本复制算法的数据查询方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873224A (zh) * 2010-06-07 2010-10-27 北京高森明晨信息科技有限公司 一种云计算负载均衡方法和设备
CN102096723A (zh) * 2011-04-07 2011-06-15 江苏省电力公司 基于副本复制算法的数据查询方法

Also Published As

Publication number Publication date
CN102882943A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
Mayer et al. Fogstore: Toward a distributed data store for fog computing
US10922303B1 (en) Early detection of corrupt data partition exports
US9413604B2 (en) Instance host configuration
US8886609B2 (en) Backup and restore of data from any cluster node
KR102013005B1 (ko) 확장 가능한 환경에서의 파티션 관리 기법
JP2018514018A (ja) リソース配置を最適化するための適時性リソース移行
US8966025B2 (en) Instance configuration on remote platforms
CN102882943B (zh) 服务副本读写方法及系统
KR20140119090A (ko) 확장 가능한 환경에서의 동적 로드 밸런싱 기법
US11243980B2 (en) Monotonic transactions in a multi-master database with loosely coupled nodes
US10282457B1 (en) Distributed transactions across multiple consensus groups
CN103399894A (zh) 一种基于共享存储池的分布式事务处理方法
US11461156B2 (en) Block-storage service supporting multi-attach and health check failover mechanism
Larsson et al. Decentralized kubernetes federation control plane
Xu et al. Elastic, geo-distributed raft
Vieira et al. Treplica: ubiquitous replication
CN114528139A (zh) 数据处理和节点部署的方法、装置、电子设备及介质
US10275467B2 (en) Multi-level high availability model for an object storage service
Islam et al. Performance analysis of a tree-based consistency approach for cloud databases
Pérez-Miguel et al. High throughput computing over peer-to-peer networks
Etxeberria-Agiriano et al. Towards middleware-based cooperation topologies for the next generation of CPS
Limam et al. A self-adaptive conflict resolution with flexible consistency guarantee in the cloud computing
Elgedawy Sultan: A composite data consistency approach for saas multi-cloud deployment
Schäfer et al. Highly availabile process executions
Islam Database consistency in cloud databases

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220126

Address after: 215488 No. 301, building 11, phase II, Taicang University Science Park, No. 27, Zigang Road, science and education new town, Taicang City, Suzhou City, Jiangsu Province

Patentee after: Tianhang Changying (Jiangsu) Technology Co.,Ltd.

Address before: 100191 Beihang University, Haidian District, Xueyuan Road, 37, Beijing

Patentee before: BEIHANG University