服务副本读写方法及系统.pdf

上传人:1*** 文档编号:4332913 上传时间:2018-09-14 格式:PDF 页数:15 大小:4.27MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210337842.7

申请日:

2012.09.12

公开号:

CN102882943A

公开日:

2013.01.16

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20120912|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

北京航空航天大学

发明人:

孙海龙; 邓婷; 王旭; 张日崇

地址:

100191 北京市海淀区学院路37号北京航空航天大学

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司 11205

代理人:

刘芳

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书一种服务副本写入方法,其特征在于,包括:协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识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相映射的写请求的标识;当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。根据权利要求1所述的方法,其特征在于,所述写发散性量化函数具体为数值写发散性量化函数其中,π表示定义在写请求上的函数,表示该写请求对被修改的数值的修改程度,w表示写请求,m表示y的个数,n表示全部N个服务副本中的一个服务副本的序号,w(ridij)表示标识为ridij的写请求,w(j)表示第j个提交的写请求。根据权利要求1或2所述的方法,其特征在于,还包括:当存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,与除自身以外的全部其他普通副本节点进行状态同步。 一种服务副本读取方法,其特征在于,包括:副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rd))=|Δw(d1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。根据权利要求4所述的方法,其特征在于,还包括:当存在失效的副本节点且检验出所述第三类一致性配置条件为假时,与其他的副本节点进行状态同步。一种服务副本处理系统,其特征在于,包括协调副本节点和多个普通副本节点,其中:所述协调副本节点包括:转发模块,用于当接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识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相映射的写请求的标识;提交模块,用于当所述第二类一致性配置条件为真时,向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。根据权利要求6所述的系统,其特征在于,所述协调副本节点中也包含所述检验模块和所述提交模块。一种副本节点,其特征在于,包括:赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid;检验单元,用于检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rd))=|Δw(d1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid<y},op={=,<,>,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。

说明书

说明书服务副本读写方法及系统
技术领域
本发明涉及一种服务副本读写方法及系统,属于云计算与服务计算、副本技术和一致性技术领域。
背景技术
云计算与服务计算技术
近年来,随着互联网和分布式技术的不断发展,网络应用进入了云计算时代。通过云计算技术,软硬件资源和数据能够以服务的形式按需提供给用户和其他设备。云计算技术的特征是:(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应用程序编程接口,Web Application 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值,其中, <mrow> <MI>wd</MI> <MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MI>P</MI> <MROW><MO>(</MO> <MI>X</MI> <MO>=</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MFENCED close=")" open="("><MTABLE><MTR><MTD><MI>N</MI> </MTD></MTR><MTR><MTD><MI>i</MI> </MTD></MTR></MTABLE></MFENCED><MSUP><MI>p</MI> <MI>i</MI> </MSUP><MSUP><MROW><MO>(</MO> <MN>1</MN> <MO>-</MO> <MI>p</MI> <MO>)</MO> </MROW><MROW><MI>N</MI> <MO>-</MO> <MI>i</MI> </MROW></MSUP></MROW>]]&gt;</MATH></MATHS>表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,&lt;,&gt;,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量; <BR>所述协调副本节点当接收到d‑1个所述反馈报文时,向全部副本节点发送写请求提交命令; <BR>每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中,<MATHS num="0002"><MATH><![CDATA[ <mrow> <MI>ρ</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MSUB><MI>w</MI> <MI>lst</MI> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>m</MI> </MUNDEROVER><MO>|</MO> <MI>j</MI> <MO>-</MO> <MI>φ</MI> <MROW><MO>(</MO> <MSUB><MI>rid</MI> <MI>ij</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> <MO>|</MO> <MO>+</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>k</MI> <MO>=</MO> <MI>m</MI> <MO>+</MO> <MN>1</MN> </MROW><MI>n</MI> </MUNDEROVER><MI>k</MI> </MROW>]]&gt;</MATH></MATHS>表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识; <BR>当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。 <BR>本发明另一方面提供一种服务副本读取方法,其中包括: <BR>副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid; <BR>所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rd))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid&lt;y},op={=,&lt;,&gt;,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识; <BR>当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。 <BR>本发明再一方面提供一种服务副本处理系统,其中包括协调副本节点和多个普通副本节点,其中: <BR>所述协调副本节点包括:转发模块,用于当接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;解析模块,用于根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中,<MATHS num="0003"><MATH><![CDATA[ <mrow> <MI>wd</MI> <MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MI>P</MI> <MROW><MO>(</MO> <MI>X</MI> <MO>=</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MFENCED close=")" open="("><MTABLE><MTR><MTD><MI>N</MI> </MTD></MTR><MTR><MTD><MI>i</MI> </MTD></MTR></MTABLE></MFENCED><MSUP><MI>p</MI> <MI>i</MI> </MSUP><MSUP><MROW><MO>(</MO> <MN>1</MN> <MO>-</MO> <MI>p</MI> <MO>)</MO> </MROW><MROW><MI>N</MI> <MO>-</MO> <MI>i</MI> </MROW></MSUP></MROW>]]&gt;</MATH></MATHS>表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,&lt;,&gt;,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量;命令模块,用于当接收到d‑1个所述反馈报文时,向全部副本节点发送写请求提交命令; <BR>所述普通副本节点包括:反馈模块,用于将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点;检验模块,用于当接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中,<MATHS num="0004"><MATH><![CDATA[ <mrow> <MI>ρ</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MSUB><MI>w</MI> <MI>lst</MI> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>m</MI> </MUNDEROVER><MO>|</MO> <MI>j</MI> <MO>-</MO> <MI>φ</MI> <MROW><MO>(</MO> <MSUB><MI>rid</MI> <MI>ij</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> <MO>|</MO> <MO>+</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>k</MI> <MO>=</MO> <MI>m</MI> <MO>+</MO> <MN>1</MN> </MROW><MI>n</MI> </MUNDEROVER><MI>k</MI> </MROW>]]&gt;</MATH></MATHS>表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识;提交模块,用于当所述第二类一致性配置条件为真时,向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。 <BR>本发明又一方面提供一种副本节点,其中包括: <BR>赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid; <BR>检验单元,用于检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(rid))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid&lt;y},op={=,&lt;,&gt;,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求 <BR>的标识,rid1st表示全局最新的请求的标识; <BR>提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。 <BR>本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。 <BR>附图说明 <BR>图1为本发明所述服务副本写入方法的流程图; <BR>图2为图1所示方法的举例图; <BR>图3为本发明所述服务副本读取方法的流程图; <BR>图4为图2所示方法的举例图; <BR>图5为副本节点失效时的处理流程图; <BR>图6为本发明所述服务副本处理系统的结构示意图; <BR>图7为本发明所述副本节点的结构示意图。 <BR>具体实施方式 <BR>图1为本发明所述服务副本写入方法的流程图,如图1所示,包括如下步骤: <BR>步骤110,协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一请求标识rid并将该写请求转发给所有的普通副本节点。 <BR>其中,协调副本节点是接收到写请求的节点,除此之外的其他副本节点均可以称为普通副本节点。假设每个请求都根据他们的先后顺序被赋予一个唯一标识rid,而且每个写请求也根据在所有写请求中的顺序被赋予一个唯一标识其中是rid到wid的映射函数。 <BR>步骤120,所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文给所述协调副本节点。 <BR>步骤130,所述协调副本节点根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值。 <BR>其中,<MATHS num="0005"><MATH><![CDATA[ <mrow> <MI>wd</MI> <MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MI>P</MI> <MROW><MO>(</MO> <MI>X</MI> <MO>=</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MFENCED close=")" open="("><MTABLE><MTR><MTD><MI>N</MI> </MTD></MTR><MTR><MTD><MI>i</MI> </MTD></MTR></MTABLE></MFENCED><MSUP><MI>p</MI> <MI>i</MI> </MSUP><MSUP><MROW><MO>(</MO> <MN>1</MN> <MO>-</MO> <MI>p</MI> <MO>)</MO> </MROW><MROW><MI>N</MI> <MO>-</MO> <MI>i</MI> </MROW></MSUP></MROW>]]&gt;</MATH></MATHS>表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,&lt;,&gt;,≦,≧},y1,y2,…,ym;表示所述服务副本上下文中的变量;写持久性(Write&nbsp;Durability)代表写请求在出现副本失效情况下不被丢失的概率,当N和p相等的情况下,wd随着d的增大而增大。也就是说,每个写请求在最终提交之前发送的副本个数越多,这个请求就越不容易丢失。 <BR>步骤140,所述协调副本节点当接收到d‑1个所述反馈报文时,向全部副本节点发送写请求提交命令。 <BR>其中,所述全部副本节点包括所述协调副本节点及全部的普通副本节点。 <BR>步骤150,每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真。 <BR>其中,只要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目前提交的写请求的个数。于是,写发散性被量化为一个函数 <BR><MATHS num="0006"><MATH><![CDATA[ <mrow><MI>ρ</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MSUB><MI>w</MI> <MI>lst</MI> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MI>VersionDis</MI> <MI>tan</MI> <MI>ce</MI> <MROW><MO>(</MO> <MSUB><MI>V</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>V</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>m</MI> </MUNDEROVER><MO>|</MO> <MI>j</MI> <MO>-</MO> <MI>φ</MI> <MROW><MO>(</MO> <MSUB><MI>rid</MI> <MI>ij</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> <MO>|</MO> <MO>+</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>k</MI> <MO>=</MO> <MI>m</MI> <MO>+</MO> <MN>1</MN> </MROW><MI>n</MI> </MUNDEROVER><MI>k</MI> </MROW>]]&gt;</MATH></MATHS> <BR>写发散性(Write&nbsp;Divergence)代表写请求提交的序列(或副本状态)与真实序列(或者真实状态)之间的差异,上述写发散性的定义是一个通用定义,可以表达几乎所有的副本发散的程度。针对数值型的副本服务,数值写发散性(Numerical&nbsp;write&nbsp;divergence)被定义为: <BR><MATHS num="0007"><MATH><![CDATA[ <mrow><MSUB><MI>ρ</MI> <MI>n</MI> </MSUB><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MSUB><MI>w</MI> <MI>lst</MI> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MI>VersionDis</MI> <MI>tan</MI> <MI>ce</MI> <MROW><MO>(</MO> <MSUB><MI>V</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>V</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MO>|</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>m</MI> </MUNDEROVER><MI>π</MI> <MROW><MO>(</MO> <MI>w</MI> <MROW><MO>(</MO> <MSUB><MI>rid</MI> <MI>ij</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> </MROW><MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>k</MI> <MO>=</MO> <MI>m</MI> <MO>+</MO> <MN>1</MN> </MROW><MI>n</MI> </MUNDEROVER><MI>π</MI> <MROW><MO>(</MO> <MI>w</MI> <MROW><MO>(</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MO>|</MO> </MROW>]]&gt;</MATH></MATHS> <BR>其中,π是定义在写请求上的函数,表示该写请求对某个数值的修改程度。比如,w(ridij)=”x=x‑5”,那么π(w(ridij))=‑5。 <BR>步骤160,当所述第二类一致性配置条件是为真时,所述副本节点向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。 <BR>具体的举例图如图2所示。 <BR>图3为本发明所述服务副本读取方法的流程图,如图所示,包括如下步骤: <BR>步骤210,副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一请求标识rid。 <BR>步骤220,所述副本节点检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真。 <BR>其中,对于每一个读请求r(rid),假设它读取的最新写请求是wlst’(ridlst’),而实际上的全局最新写请求是wlst(ridlst)。于是,读请求r(rid)的读陈旧性量化函数定义为:ψ(r(d))=|Δw(rid1st′,rid1st)|,其中:Δw(x,y)={w(rid)|x≤rid&lt;y},op={=,&lt;,&gt;,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识。 <BR>步骤230,当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。 <BR>具体的举例图如图4所示。 <BR>本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行发送、传输和提交,以最新形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。 <BR>上述三类一致性配置条件均属于副本一致性量化模型(Quantitative&nbsp;Model&nbsp;for&nbsp;Replication&nbsp;Consistency)。另外,如图5所示的举例所示,在写入过程中,当存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,需要与其他的普通副本节点进行状态同步;当不存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,则可以继续等待,直到第二类一致性配置条件为真。 <BR>在读出过程中,当存在失效的副本节点且检验出所述第三类一致性配置条件为假时,与其他的副本节点进行状态同步;当不存在失效的副本节点且检验出所述第三类一致性配置条件为假时,则可以继续等待,直到第三类一致性配置条件为真。 <BR>其中的状态在本领域内特指副本执行的请求个数、顺序等信息。 <BR>图6为本发明所述服务副本处理系统的结构示意图,用以实现上述写入方法,其中包括协调副本节点10和多个普通副本节点20,其工作原理如下: <BR>协调副本节点10当接收到来自于客户端的写请求后,由转发模块11为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点20;解析模块12根据第一类一致性配置条件F1(wd,y1,y2,...,ym)op0解析获取d值,其中,<MATHS num="0008"><MATH><![CDATA[ <mrow> <MI>wd</MI> <MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MI>P</MI> <MROW><MO>(</MO> <MI>X</MI> <MO>=</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MN>1</MN> <MO>-</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MI>d</MI> </MROW><MI>N</MI> </MUNDEROVER><MFENCED close=")" open="("><MTABLE><MTR><MTD><MI>N</MI> </MTD></MTR><MTR><MTD><MI>i</MI> </MTD></MTR></MTABLE></MFENCED><MSUP><MI>p</MI> <MI>i</MI> </MSUP><MSUP><MROW><MO>(</MO> <MN>1</MN> <MO>-</MO> <MI>p</MI> <MO>)</MO> </MROW><MROW><MI>N</MI> <MO>-</MO> <MI>i</MI> </MROW></MSUP></MROW>]]&gt;</MATH></MATHS>表示写持久性的量化浮点数;N表示服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在最终提交之前需要发送的副本个数,op={=,&lt;,&gt;,≦,≧},y1,y2,…,ym表示所述服务副本上下文中的变量。 <BR>所述普通副本节点20中的反馈模块21将来自于所述协调副本节点10的写请求进行本地存储,并发送反馈报文给所述协调副本节点10。 <BR>协调副本节点10当接收到d‑1个所述反馈报文时,由命令模块13向全部副本节点20发送写请求提交命令。当普通副本节点20接收到所述写请求提交命令后,由检验模块22检验第二类一致性配置条件F2(ρ(i,wlst),y1,y2,...,ym)op0是否为真,其中,<MATHS num="0009"><MATH><![CDATA[ <mrow> <MI>ρ</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MSUB><MI>w</MI> <MI>lst</MI> </MSUB><MO>)</MO> </MROW><MO>=</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>m</MI> </MUNDEROVER><MO>|</MO> <MI>j</MI> <MO>-</MO> <MI>φ</MI> <MROW><MO>(</MO> <MSUB><MI>rid</MI> <MI>ij</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> <MO>|</MO> <MO>+</MO> <MUNDEROVER><MI>Σ</MI> <MROW><MI>k</MI> <MO>=</MO> <MI>m</MI> <MO>+</MO> <MN>1</MN> </MROW><MI>n</MI> </MUNDEROVER><MI>k</MI> </MROW>]]&gt;</MATH></MATHS>表示写发散性量化函数,ridij表示副本i第j个提交的请求的标识,φ(ridij)表示与标识ridij相映射的写请求的标识;当所述第二类一致性配置条件为真时,由提交模块23向自身的上层应用提交所述写请求,并将写入结果经所述协调副本节点10返回给所述客户端。 <BR>此处需要说明的是,所述协调副本节点10中也可以包含所述检验模块22和提交模块23的功能。 <BR>图7为本发明所述副本节点的结构示意图,用以实现上述读取方法,其工作原理如下: <BR>当副本节点30收到客户端发来的读请求后,由赋值单元31为该读请求赋予全局唯一的请求标识rid;由检验单元32检验第三类一致性配置条件F3(ψ(r(rid)),y1,y2,...,ym)op0是否为真,其中,ψ(r(d))=|Δw(rid1st′,rid1st)|表示读陈旧性量化函数,Δw(x,y)={w(rid)|x≤rid&lt;y},op={=,&lt;,&gt;,≦,≧},y1,y2,...,ym表示所述服务副本上下文中的变量,w表示写请求,rid1st’表示所述副本节点读取到的最新请求的标识,rid1st表示全局最新的请求的标识;当所述第三类一致性配置条件为真时,由提交单元33向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。 <BR>本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协议和一致性,从而提高了服务副本的灵活性和可配置性。 <BR>以下与几种现有技术比较说明本发明的技术效果: <BR>1、与文献1“Yu,H.And&nbsp;Vahdat,A.Design&nbsp;and&nbsp;evaluation&nbsp;of&nbsp;a&nbsp;continuous&nbsp;consistency&nbsp;model&nbsp;for&nbsp;replicated&nbsp;services.In&nbsp;4th&nbsp;Symp.on&nbsp;Op.Sys.Design&nbsp;and&nbsp;Implemen.(OSDI)(San&nbsp;Diego,CA,USA,Oct.2000),pp.305318.”相比 <BR>文献1提出了TACT连续一致性模型并进行了实现,与本发明的区别在于: <BR>(1)文献1的一致性模型中未考虑写持久性;而本发明通过求解d值体现了写持久性; <BR>(2)文献1的弱一致性主要体现在数据的偏差,即数值写发散性(Numerical&nbsp;write&nbsp;divergence)上,无法表达非数据的副本一致性;而本发明考虑了数值写发散性。 <BR>2、与文献2“Tim&nbsp;Kraska,Martin&nbsp;Hentschel,Gustavo&nbsp;Alonso,and&nbsp;Donald&nbsp;Kossmann.2009.Consistency&nbsp;rationing&nbsp;in&nbsp;the&nbsp;cloud:pay&nbsp;only&nbsp;when&nbsp;it&nbsp;matters.Proc.VLDB&nbsp;Endow.2,1(August&nbsp;2009),253‑264.”相比 <BR>文献2指出在同一个应用的不同阶段使用不同一致性水平的副本方法,与本发明的区别在于它目前支持的一致性主要包括会话一致性和可串行一致性。 <BR>3、与文献3“Corina&nbsp;Ferdean,Mesaac&nbsp;Makpangou.Distributed&nbsp;Computing&nbsp;and&nbsp;Internet&nbsp;Technology.Lecture&nbsp;Notes&nbsp;in&nbsp;Computer&nbsp;Science,2005,Volume&nbsp;3347/2005,227‑243.”相比 <BR>文献3面向副本管理提出了通用和柔性的一致性模型,与本发明的区别在于: <BR>(1)文献3的模型基于数据对象而本发明基于副本状态机,其中副本状态机是一种副本技术基本模型,主要特点是对所有请求的全局顺序rid达成一致;而本发明中主要体现在副本一致性量化模型和一致性配置上,F1(或d)、F2、F3,本发明更加有利于表达服务副本的一致性; <BR>(2)文献3的模型只是提出一种设想而未提及如何实现;而本发明进行了实现和验证; <BR>(3)文献3的模型未考虑写持久性的问题;而本发明考虑了写持久性。 <BR>4、与文献4“Susarla&nbsp;S.,Carter&nbsp;J..Flexible&nbsp;Consistency&nbsp;for&nbsp;Wide&nbsp;Area&nbsp;Peer&nbsp;Replication.25th&nbsp;IEEE&nbsp;International&nbsp;Conference&nbsp;on&nbsp;Distributed&nbsp;Computing&nbsp;Systems,2005.”、文献5“Krishnamurthy&nbsp;S.,Sanders&nbsp;W.H.,Cukier&nbsp;M..An&nbsp;adaptive&nbsp;framework&nbsp;for&nbsp;tunable&nbsp;consistency&nbsp;and&nbsp;timeliness&nbsp;using&nbsp;replication.International&nbsp;Conference&nbsp;on&nbsp;Dependable&nbsp;Systems&nbsp;and&nbsp;Networks,2002.”、文献6“Huang,Yu;Cao,Jiannong;Wang,Zhijun;Jin,Beihong;Feng,Yulin;,"Achieving&nbsp;Flexible&nbsp;Cache&nbsp;Consistency&nbsp;for&nbsp;Pervasive&nbsp;Internet&nbsp;Access,"Fifth&nbsp;Annual&nbsp;IEEE&nbsp;International&nbsp;Conference&nbsp;on&nbsp;Pervasive&nbsp;Computing&nbsp;and&nbsp;Communications,2007.”和文献7“B&nbsp;Mukherjee,et&nbsp;al.Flexible&nbsp;state&nbsp;sharing&nbsp;and&nbsp;consistency&nbsp;mechanism&nbsp;for&nbsp;interactive&nbsp;applications.US&nbsp;Patent&nbsp;6,058,416,2000.”相比 <BR>文献4针对P2P系统的数据共享设计了柔性的一致性框架;文献5的QoS提出了面向柔性QoS的自适应副本一致性保障框架;文献6针对分布式缓存的一致性,结合误差一执行和概率一致性提出了柔性的缓存一致性方法;文献7面向协作的互联网应用使用可回滚的一致性模型来保证副本状态间的同步。 <BR>这些面向特定领域的柔性一致性模型也普遍存在通用性差和表达能力片面的问题,无法使用在PaaS平台这样面向互联网、服务类型无法预知的场景下;本发明的通用性好体现在一致性配置中没有对应用服务的语义作出约束,所有应用服务都可以使用本发明;表达能力不片面,主要体现在强一致性、时间一致性、最终一致性等大部分一致性水平本发明都支持。 <BR>本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。 <BR>最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。</p></div> </div> </div> </div> <div class="tempdiv cssnone" style="line-height:0px;height:0px; overflow:hidden;"> </div> <div id="page"> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-9/13/4635d2f6-dee6-4dcb-add6-d9989d699fe5/4635d2f6-dee6-4dcb-add6-d9989d699fe51.gif' alt="服务副本读写方法及系统.pdf_第1页" width='100%'/></div><div class="pageSize">第1页 / 共15页</div> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-9/13/4635d2f6-dee6-4dcb-add6-d9989d699fe5/4635d2f6-dee6-4dcb-add6-d9989d699fe52.gif' alt="服务副本读写方法及系统.pdf_第2页" width='100%'/></div><div class="pageSize">第2页 / 共15页</div> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-9/13/4635d2f6-dee6-4dcb-add6-d9989d699fe5/4635d2f6-dee6-4dcb-add6-d9989d699fe53.gif' alt="服务副本读写方法及系统.pdf_第3页" width='100%'/></div><div class="pageSize">第3页 / 共15页</div> </div> <div id="pageMore" class="btnmore" onclick="ShowSvg();">点击查看更多>></div> <div style="margin-top:20px; line-height:0px; height:0px; overflow:hidden;"> <div style=" font-size: 16px; background-color:#e5f0f7; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;">资源描述</div> <div class="detail-article prolistshowimg"> <p>《服务副本读写方法及系统.pdf》由会员分享,可在线阅读,更多相关《服务副本读写方法及系统.pdf(15页珍藏版)》请在专利查询网上搜索。</p> <p >1、(10)申请公布号 CN 102882943 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 2 9 4 3 A *CN102882943A* (21)申请号 201210337842.7 (22)申请日 2012.09.12 H04L 29/08(2006.01) (71)申请人北京航空航天大学 地址 100191 北京市海淀区学院路37号北 京航空航天大学 (72)发明人孙海龙 邓婷 王旭 张日崇 (74)专利代理机构北京同立钧成知识产权代理 有限公司 11205 代理人刘芳 (54) 发明名称 服务副本读写方法及系统 (57) 摘要 本发明提供一种服务副本读写方。</p> <p >2、法及系统。 其中的读取方法包括:副本节点接收到客户端发 来的读请求后,为该读请求赋予全局唯一的请求 标识rid;所述副本节点检验第三类一致性配置 条件F 3 (r(rid),y 1 ,y 2 ,.,y m )op0是否为真, 其中,(r(rid)=|w(rd 1st ,rid 1st )|表示读陈 旧性量化函数,w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,y m 表示所述服务 副本上下文中的变量,w表示写请求,rid 1st 表示 所述副本节点读取到的最新请求的标识,rid 1st 表 示全局最新的请求的标识;当所述第三类一致性 配置条件为真时,所述副本节点向自身的上层应 用提。</p> <p >3、交所述读请求,并将读取结果返回给所述客 户端。本发明有利于提高服务副本的灵活性和可 配置性。 (51)Int.Cl. 权利要求书2页 说明书9页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 9 页 附图 3 页 1/2页 2 1.一种服务副本写入方法,其特征在于,包括: 协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局唯一标识rid 并将该写请求转发给所有的普通副本节点; 所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报 文给所述协调副本节点; 所述协调副本节点根据第一类一致性配置条件F 1 (wd,。</p> <p >4、y 1 ,y 2 ,.,y m )op0解析获取d值, 其中,表示写持久性的量化浮点数;N表示服务副本 的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写 请求在最终提交之前需要发送的副本个数,op=,,y 1 ,y 2 ,y m 表示所述服 务副本上下文中的变量; 所述协调副本节点当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交 命令; 每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条件 F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真,其中, 表示写 发散性量化函数,rid ij 表示副本i第j。</p> <p >5、个提交的请求的标识,(rid ij )表示与标识rid ij 相映射的写请求的标识; 当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述写请 求,并将写入结果经所述协调副本节点返回给所述客户端。 2.根据权利要求1所述的方法,其特征在于,所述写发散性量化函数具体为数值写发 散性量化函数其中,表示定义在写请求上的函数, 表示该写请求对被修改的数值的修改程度,w表示写请求,m表示y的个数,n表示全部N个 服务副本中的一个服务副本的序号,w(rid ij )表示标识为rid ij 的写请求,w(j)表示第j个 提交的写请求。 3.根据权利要求1或2所述的方法,其特征在于,还包括:。</p> <p >6、 当存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时,与除自身以 外的全部其他普通副本节点进行状态同步。 4.一种服务副本读取方法,其特征在于,包括: 副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识rid; 所述副本节点检验第三类一致性配置条件F 3 (r(rid),y 1 ,y 2 ,.,y m ) op0是否为真,其中,(r(rd)=|w(d 1st ,rid 1st )|表示读陈旧性量化函数, w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示所述服务副本上 下文中的变量,w表示写请求,rid 1st 表示所述副本节点读取到的最。</p> <p >7、新请求的标识,rid 1st 表 示全局最新的请求的标识; 当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述读请 求,并将读取结果返回给所述客户端。 5.根据权利要求4所述的方法,其特征在于,还包括: 权 利 要 求 书CN 102882943 A 2/2页 3 当存在失效的副本节点且检验出所述第三类一致性配置条件为假时,与其他的副本节 点进行状态同步。 6.一种服务副本处理系统,其特征在于,包括协调副本节点和多个普通副本节点,其 中: 所述协调副本节点包括: 转发模块,用于当接收到来自于客户端的写请求后,为所述写请求 赋予全局唯一标识rid并将该写请求转发给所有的普通副。</p> <p >8、本节点; 解析模块,用于根据第一类一致性配置条件F 1 (wd,y 1 ,y 2 ,.,y m )op0解析获取d值,其 中,表示写持久性的量化浮点数;N表示服务副本的 总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请 求在最终提交之前需要发送的副本个数,op=,,y 1 ,y 2 ,y m 表示所述服务 副本上下文中的变量; 命令模块,用于当接收到d-1个所述反馈报文时,向全部副本节点发送写请求提交命 令; 所述普通副本节点包括: 反馈模块,用于将来自于所述协调副本节点的写请求进行本地存储,并发送反馈报文 给所述协调副本节点; 检验模块,用于当接收到所述写请。</p> <p >9、求提交命令后,检验第二类一致性配置条件 F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真,其中, 表示写 发散性量化函数,rid ij 表示副本i第j个提交的请求的标识,(rid ij )表示与标识rid ij 相映射的写请求的标识; 提交模块,用于当所述第二类一致性配置条件为真时,向自身的上层应用提交所述写 请求,并将写入结果经所述协调副本节点返回给所述客户端。 7.根据权利要求6所述的系统,其特征在于,所述协调副本节点中也包含所述检验模 块和所述提交模块。 8.一种副本节点,其特征在于,包括: 赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的。</p> <p >10、请求标识 rid; 检验单元,用于检验第三类一致性配置条件F 3 (r(rid),y 1 ,y 2 ,.,y m ) op0是否为真,其中,(r(rd)=|w(d 1st ,rid 1st )|表示读陈旧性量化函数, w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示所述服务副本上 下文中的变量,w表示写请求,rid 1st 表示所述副本节点读取到的最新请求的标识,rid 1st 表 示全局最新的请求的标识; 提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所述读 请求,并将读取结果返回给所述客户端。 权 利 要 求 书CN 102882943 A。</p> <p >11、 1/9页 4 服务副本读写方法及系统 技术领域 0001 本发明涉及一种服务副本读写方法及系统,属于云计算与服务计算、副本技术和 一致性技术领域。 背景技术 0002 云计算与服务计算技术 0003 近年来,随着互联网和分布式技术的不断发展,网络应用进入了云计算时代。通过 云计算技术,软硬件资源和数据能够以服务的形式按需提供给用户和其他设备。云计算技 术的特征是:(1)按用支付,整体成本大幅度降低;(2)按需使用,用户可以根据需求随时更 换和选择自己所需的软硬件资源;(3)资源可靠性、计算性能、共享程度以及透明性提高, 云计算通过资源副本、弹性、多租户和虚拟化技术的使用大幅提升资源可靠性、性。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>12、能、共享 程度以及透明性。从用户角度来看,云计算的应用模式有三种:软件即服务(Software as a Service,简称:SaaS),各种软件通过浏览器、手机等终端向用户提供服务;平台即服务 (Platform as a Service,简称:PaaS,),通过网络提供可托管的运行、计算平台,使得用户 能够在这些平台上运行;底层资源即服务(Infrastructure as a Service,简称:IaaS,), 虚拟机、数据存储等底层资源以服务的形式供用户选择和使用。 0004 平台即服务作为云计算的一种重要模式,越来越受到关注。PaaS作为托管平台,允 许开发人员透明的远程部署自己。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>13、的各种应用程序,而不需要关注底层的硬件、操作系统和 依赖的中间件。这些应用程序部署在PaaS平台以后,又能够以Web应用的形式被互联网上 的用户访问和使用。但是,(1)由于PaaS平台底层使用的商用廉价计算机、网络设备、硬盘 以及后台复杂的管理任务,使得平台不可避免的出现失效的情况。失效会影响到平台上部 署的成千上万的应用服务,而大部分应用服务又要求7X24的不间断服务能力,也就是高可 用性。高可用性的需求使得PaaS平台不得不采用类似于副本技术的方法屏蔽系统失效,保 证部署应用的持续服务能力;(2)互联网应用具有一个特点,它不以安装的软件数目来衡 量用户数,而是以某时间段内的用户请求数来度量。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>14、。部署在PaaS平台上的应用服务很有可 能在很短的一段时间内用户数出现爆发式增长,传统的服务部署方式由于受限于节点的计 算网络能力,往往出现服务忙、服务不可用等情况,所以PaaS平台一般会采取资源弹性的 方式为相应的服务快速构建副本,从而实现负载分流,满足井喷式用户增长的访问需求。 0005 另外,服务计算领域强调应用程序通过网络通信协议将接口暴露出来以允许第 三方应用进行远程调用,从而达到应用集成的目的。基于SOA(面向服务的体系架构, Service Oriented Architecture)的体系结构和Web服务等技术标准使得服务计算得到 了广泛的企业应用。目前随着云计算的发展,服务计。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>15、算领域开始泛化和延伸,几乎所有的 通过网络可达的应用,包括数据中心、社会网络以及Web APIs(Web应用程序编程接口,Web Application Program Interfaces)等,都被认为是广义上的服务。这些服务大部分具有类 似的高可用性和可扩展性需求,同样亟需相应的解决方案。 0006 副本技术 说 明 书CN 102882943 A 2/9页 5 0007 副本是分布式领域提升系统可用性和负载均衡的主流技术。针对服务,它一般将 服务进行多个副本的备份,首先当某些副本失效的时候可以将请求转发到其余正常的副本 进行处理;其次可以将请求在多个副本间进行负载均衡。副本技术面临着两个。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>16、方面的挑战, 其一,如何保证多个副本间的一致性;其二,如何快速恢复失效的节点以保持可用的副本 数。第二个挑战目前已经有相对成熟的方案进行解决,只是效率高低的差异。但第一个挑 战目前一直是研究的难点和热点。 0008 常见的副本策略包括:(1)主从备份策略。该策略一般通过间断式的主从节点状 态同步来维持一致性,但实际上当主节点在两次同步时间点之间失效时,一部分主节点状 态会丢失。而且最近的研究表明,在大规模分布式系统中主从两个节点同时失效的概率大 大增加;(2)两阶段提交(Two-Phase Commit,简称:2PC)协议。该协议由于在协调副本节 点处阻塞以等待所有其余节点的反馈消息,所以性能。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>17、较差。而且,任何一个节点的失效都会 导致协议的终止。虽然有人对该协议进行了改进并提出三阶段提交协议,但性能依然不好; (3)组通信。组通信的基本思想是将分布式系统中的多个进程构成一个组,然后保证所有进 程发出的消息顺序与消息到达的顺序一致。组通信的缺点是每一次的节点失效都会造成组 视图更新,从而导致性能下降;(4)Paxos算法。Paxos算法广为接收的分布式异步一致性算 法,她的正确性和活性已经得到证明。根据副本状态机模型,Paxos算法能够保证所有的副 本对请求序列的顺序达成一致,从而使得所有副本的状态保持同步。 0009 上述四种副本策略已经得到了较为广泛的应用。但是随着云计算技术的新起。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>18、,人 们发现云平台对副本技术提出了更高的要求。研究发现:要么放松需求,要么以放弃副本间 的一致性为代价。CAP定理和PACELC原则就是陈述各要素间的互相权衡关系的。CAP定理 认为下述三个要素之间最多只能同时满足两个:(1)一致性(Consistency),副本间的状态 相同性;(2)可用性(Availability),所有副本组成的服务对外持续响应请求的能力;(3) 分割容忍性(Partition Tolerance),系统是否能够容忍网络分割的能力。CAP定理虽然 简练精准,但是不容易理解。耶鲁大学的教授又把它重新诠释为PACELC原则,它可以陈述 为:“当系统存在网络分割时,一致性和可。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>19、用性之间必须进行权衡;当系统不存在网络分割 时,一致性和性能之间必须进行权衡”。由此可见,一致性是副本技术的核心。而上述四种 副本策略都是以实现副本强一致性为基础的,并不能满足云计算服务对可用性和性能的需 求。所以在云计算环境下需要设计新的更加灵活的一致性副本技术。 0010 一致性技术 0011 副本技术在数据库、分布式、中间件等领域得到了广泛的应用研究。根据一致性的 柔性程度大体上可以分成两类:一类是按照应用对一致性的具体要求而设计的一致性相对 确定的副本方法;另一类是一致性相对可调的柔性副本方法。 0012 在第一类方法中,依据一致性的强弱程度,又可以划分为:强一致性(Strong Co。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>20、nsistency)、时间一致性(Timeline Consistency)、最终一致性(Eventual Consistency)。强一致性的方法主要是上述四种副本策略,其代表工作包括JGroups软件 系统、Chubby软件系统和Zookeeper软件系统等。变体包括快照隔离的副本(Snapshot Isolation Replication)和非统一的原子广播(Non-uniform Atomic Broadcast)等。虽 然在一些情况下某些变体会出现不一致性的情况,比如非统一原子广播的请求丢失问题, 但总体上这些变体在绝大部分时间下都保证了副本间的一致性,而又不明显具有某种弱一 说 。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>21、明 书CN 102882943 A 3/9页 6 致性的特征,所以也将其划入到强一致性类别中;时间一致性的方法是允许副本间的状态 每隔一个特定的时间间隔再进行同步。其代表工作有Spinnaker软件系统和PNUTS软件系 统等;最终一致性的方法只确保在最终的某一个时刻,副本间的状态得到更新。其代表工作 有亚马逊Dynamo软件系统。无论是强一致性、时间一致性还是最终一致性的副本方法,这 一类方法都是针对某类对一致性有特定要求的应用设计的,通用性非常差,无法满足PaaS 平台成千上万用户对一致性的个性化需求。 0013 第二类方法,一致性相对可调的柔性副本方法已经有相关文献进行了研究。 0014。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>22、 现有技术中至少存在如下问题: 0015 云计算随着互联网、移动技术以及分布式技术的发展,逐渐成为互联网服务的核 心技术之一。PaaS平台作为云计算技术的重要实现模式和形态,已经成为企业界和学术界 广泛关注的热点。PaaS平台运营商将应用运行环境以服务的形式提供给开发人员,允许开 发人员远程部署和托管自己的应用,使得应用为最终用户服务。但是,出于成本考虑,现有 PaaS平台底层广泛使用商用廉价计算机、网络设备、硬盘,再加上后台的复杂管理任务,使 得平台不可避免的出现失效的情况。失效会影响到平台上部署的成千上万的应用服务,所 以PaaS平台需要采用副本技术屏蔽系统失效,以保证部署应用的持续服务能。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>23、力。 0016 然而,副本技术的使用也并不是一劳永逸的完美解决方法。CAP定理和PACELC原 则指出:副本一致性、服务可用性、分割容忍性以及性能之间存在权衡和取舍,不可能同时 得到满足。目前的副本技术主要针对特定应用或者特定领域,要么是选择确定的一致性,要 么是在特定领域内进行有限的调整。而大部分PaaS平台并不是面向特定应用和领域的,因 此缺乏灵活性和可配置性。 发明内容 0017 本发明提供一种服务副本读写方法及系统,用以提高服务副本的灵活性和可配置 性。 0018 本发明一方面提供一种服务副本写入方法,其中包括: 0019 协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>24、唯一标识 rid并将该写请求转发给所有的普通副本节点; 0020 所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储,并发送反 馈报文给所述协调副本节点; 0021 所述协调副本节点根据第一类一致性配置条件F 1 (w d ,y 1 ,y 2 ,.,y m )op0解析获取 d值,其中,表示写持久性的量化浮点数;N表示服务 副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每 个写请求在最终提交之前需要发送的副本个数,op=,,y 1 ,y 2 ,y m 表示所 述服务副本上下文中的变量; 0022 所述协调副本节点当接收到d-1个所述反馈报文时,向全部。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>25、副本节点发送写请求 提交命令; 0023 每个所述普通副本节点接收到所述写请求提交命令后,检验第二类一致性配置条 说 明 书CN 102882943 A 4/9页 7 件F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真,其中,表示写 发散性量化函数,rid ij 表示副本i第j个提交的请求的标识,(rid ij )表示与标识rid ij 相映射的写请求的标识; 0024 当所述第二类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述 写请求,并将写入结果经所述协调副本节点返回给所述客户端。 0025 本发明另一方面提供一种服务副本读取方法,其中包括: 00。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>26、26 副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一的请求标识 rid; 0027 所述副本节点检验第三类一致性配置条件F 3 (r(rid),y 1 ,y 2 ,.,y m ) op0是否为真,其中,(r(rd)=|w(rid 1st ,rid 1st )|表示读陈旧性量化函数, w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示所述服务副本上 下文中的变量,w表示写请求,rid 1st 表示所述副本节点读取到的最新请求的标识,rid 1st 表 示全局最新的请求的标识; 0028 当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用提交所述 。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>27、读请求,并将读取结果返回给所述客户端。 0029 本发明再一方面提供一种服务副本处理系统,其中包括协调副本节点和多个普通 副本节点,其中: 0030 所述协调副本节点包括:转发模块,用于当接收到来自于客户端的写请求后, 为所述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点;解析 模块,用于根据第一类一致性配置条件F 1 (wd,y 1 ,y 2 ,.,y m )op0解析获取d值,其中, 表示写持久性的量化浮点数;N表示服务副本的总个 数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求在 最终提交之前需要发送的副本个数,op=,,y 1 ,y 2。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>28、 ,y m 表示所述服务副本 上下文中的变量;命令模块,用于当接收到d-1个所述反馈报文时,向全部副本节点发送写 请求提交命令; 0031 所述普通副本节点包括:反馈模块,用于将来自于所述协调副本节点的写请求进 行本地存储,并发送反馈报文给所述协调副本节点;检验模块,用于当接收到所述写请求 提交命令后,检验第二类一致性配置条件F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真,其中, 表示写发散性量化函数,rid ij 表示副本i第j个提交的请 求的标识,(rid ij )表示与标识rid ij 相映射的写请求的标识;提交模块,用于当所述第二 类一致性配置条件为真时。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>29、,向自身的上层应用提交所述写请求,并将写入结果经所述协调 副本节点返回给所述客户端。 0032 本发明又一方面提供一种副本节点,其中包括: 0033 赋值单元,用于当收到客户端发来的读请求后,为该读请求赋予全局唯一的请求 标识rid; 0034 检验单元,用于检验第三类一致性配置条件F 3 (r(rid),y 1 ,y 2 ,.,y m ) 说 明 书CN 102882943 A 5/9页 8 op0是否为真,其中,(r(rid)=|w(rid 1st ,rid 1st )|表示读陈旧性量化函数, w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示所述服务副本上 下文。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>30、中的变量,w表示写请求,rid 1st 表示所述副本节点读取到的最新请求 0035 的标识,rid 1st 表示全局最新的请求的标识; 0036 提交单元,用于当所述第三类一致性配置条件为真时,向自身的上层应用提交所 述读请求,并将读取结果返回给所述客户端。 0037 本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开 发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而 在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协 议和一致性,从而提高了服务副本的灵活性和可配置性。 附图说明 0038 图1为本发明所述服务。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>31、副本写入方法的流程图; 0039 图2为图1所示方法的举例图; 0040 图3为本发明所述服务副本读取方法的流程图; 0041 图4为图2所示方法的举例图; 0042 图5为副本节点失效时的处理流程图; 0043 图6为本发明所述服务副本处理系统的结构示意图; 0044 图7为本发明所述副本节点的结构示意图。 具体实施方式 0045 图1为本发明所述服务副本写入方法的流程图,如图1所示,包括如下步骤: 0046 步骤110,协调副本节点接收到来自于客户端的写请求后,为所述写请求赋予全局 唯一请求标识rid并将该写请求转发给所有的普通副本节点。 0047 其中,协调副本节点是接收到写请求的节点,。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>32、除此之外的其他副本节点均可以称 为普通副本节点。假设每个请求都根据他们的先后顺序被赋予一个唯一标识rid,而且每个 写请求也根据在所有写请求中的顺序被赋予一个唯一标识其中是rid到wid 的映射函数。 0048 步骤120,所述普通副本节点将来自于所述协调副本节点的写请求进行本地存储, 并发送反馈报文给所述协调副本节点。 0049 步骤130,所述协调副本节点根据第一类一致性配置条件F 1 (wd,y 1 ,y 2 ,.,y m )op0 解析获取d值。 0050 其中,表示写持久性的量化浮点数;N表示 服务副本的总个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表 示每个。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>33、写请求在最终提交之前需要发送的副本个数,op=,,y 1 ,y 2 ,y m ;表 示所述服务副本上下文中的变量;写持久性(Write Durability)代表写请求在出现副本失 效情况下不被丢失的概率,当N和p相等的情况下,wd随着d的增大而增大。也就是说,每 个写请求在最终提交之前发送的副本个数越多,这个请求就越不容易丢失。 说 明 书CN 102882943 A 6/9页 9 0051 步骤140,所述协调副本节点当接收到d-1个所述反馈报文时,向全部副本节点发 送写请求提交命令。 0052 其中,所述全部副本节点包括所述协调副本节点及全部的普通副本节点。 0053 步骤150,每个所。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>34、述普通副本节点接收到所述写请求提交命令后,检验第二类一致 性配置条件F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真。 0054 其中,只要F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0这个关系式能够得到满足即为真,否 则为假;令w lst (rid lst )是目前所有副本中最新的写请求且,标准版本V 0 定义为 向量(1,2,3,.,n),副本i(i=1,2,.,N)的版本V i 定义为该副本已经提交的写请求的 序列向量,即V i =(rid i1 ,rid i2 ,.rid ij ,.,rid im ),其中rid ij 指副本i第j。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>35、个提交的写请 求的标识,m表示副本i目前提交的写请求的个数。于是,写发散性被量化为一个函数 0055 0056 写发散性(Write Divergence)代表写请求提交的序列(或副本状态)与真实序列 (或者真实状态)之间的差异,上述写发散性的定义是一个通用定义,可以表达几乎所有的 副本发散的程度。针对数值型的副本服务,数值写发散性(Numerical write divergence) 被定义为: 0057 0058 其中,是定义在写请求上的函数,表示该写请求对某个数值的修改程度。比如, w(rid ij )=”x=x-5”,那么(w(rid ij )=-5。 0059 步骤160,当所述第。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>36、二类一致性配置条件是为真时,所述副本节点向自身的上层应 用提交所述写请求,并将写入结果经所述协调副本节点返回给所述客户端。 0060 具体的举例图如图2所示。 0061 图3为本发明所述服务副本读取方法的流程图,如图所示,包括如下步骤: 0062 步骤210,副本节点接收到客户端发来的读请求后,为该读请求赋予全局唯一请求 标识rid。 0063 步骤220,所述副本节点检验第三类一致性配置条件 F 3 (r(rid),y 1 ,y 2 ,.,y m )op0是否为真。 0064 其中,对于每一个读请求r(rid),假设它读取的最新写请求是w lst (rid lst ), 而实际上的全局最新写。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>37、请求是w lst (rid lst )。于是,读请求r(rid)的读陈旧性量化函 数定义为:(r(d)=|w(rid 1st ,rid 1st )|,其中:w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示所述服务副本上下文中的变量,w表示写请求, rid 1st 表示所述副本节点读取到的最新请求的标识,rid 1st 表示全局最新的请求的标识。 0065 步骤230,当所述第三类一致性配置条件为真时,所述副本节点向自身的上层应用 提交所述读请求,并将读取结果返回给所述客户端。 0066 具体的举例图如图4所示。 0067 本发明通过对一致性配置参数F1、F2和F3不。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>38、同值的选取或真假值的判定,允许开 发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而 在完全不同的条件或时机下进行发送、传输和提交,以最新形成完全不同的副本协议和一 说 明 书CN 102882943 A 7/9页 10 致性,从而提高了服务副本的灵活性和可配置性。 0068 上述三类一致性配置条件均属于副本一致性量化模型(Quantitative Model for Replication Consistency)。另外,如图5所示的举例所示,在写入过程中,当存在失效的 普通副本节点且检验出所述第二类一致性配置条件为假时,需要与其他的普通副本节点进 行状态同步;当。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>39、不存在失效的普通副本节点且检验出所述第二类一致性配置条件为假时, 则可以继续等待,直到第二类一致性配置条件为真。 0069 在读出过程中,当存在失效的副本节点且检验出所述第三类一致性配置条件为假 时,与其他的副本节点进行状态同步;当不存在失效的副本节点且检验出所述第三类一致 性配置条件为假时,则可以继续等待,直到第三类一致性配置条件为真。 0070 其中的状态在本领域内特指副本执行的请求个数、顺序等信息。 0071 图6为本发明所述服务副本处理系统的结构示意图,用以实现上述写入方法,其 中包括协调副本节点10和多个普通副本节点20,其工作原理如下: 0072 协调副本节点10当接收到来自于客户。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>40、端的写请求后,由转发模块11为所 述写请求赋予全局唯一标识rid并将该写请求转发给所有的普通副本节点20;解析 模块12根据第一类一致性配置条件F 1 (wd,y 1 ,y 2 ,.,y m )op0解析获取d值,其中, 表示写持久性的量化浮点数;N表示服务副本的总 个数,X表示失效副本个数的随机变量,p表示每个服务副本失效的概率,d表示每个写请求 在最终提交之前需要发送的副本个数,op=,,y 1 ,y 2 ,y m 表示所述服务副 本上下文中的变量。 0073 所述普通副本节点20中的反馈模块21将来自于所述协调副本节点10的写请求 进行本地存储,并发送反馈报文给所述协调副本节点10。 0。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>41、074 协调副本节点10当接收到d-1个所述反馈报文时,由命令模块13向全部副本 节点20发送写请求提交命令。当普通副本节点20接收到所述写请求提交命令后,由检 验模块22检验第二类一致性配置条件F 2 (i,w lst ),y 1 ,y 2 ,.,y m )op0是否为真,其中, 表示写发散性量化函数,rid ij 表示副本i第j个提交的请 求的标识,(rid ij )表示与标识rid ij 相映射的写请求的标识;当所述第二类一致性配置条 件为真时,由提交模块23向自身的上层应用提交所述写请求,并将写入结果经所述协调副 本节点10返回给所述客户端。 0075 此处需要说明的是,所述协调副本节。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>42、点10中也可以包含所述检验模块22和提交 模块23的功能。 0076 图7为本发明所述副本节点的结构示意图,用以实现上述读取方法,其工作原理 如下: 0077 当副本节点30收到客户端发来的读请求后,由赋值单元31为该读请 求赋予全局唯一的请求标识rid;由检验单元32检验第三类一致性配置条件 F 3 (r(rid),y 1 ,y 2 ,.,y m )op0是否为真,其中,(r(d)=|w(rid 1st ,rid 1st )|表示读 陈旧性量化函数,w(x,y)=w(rid)|xrid,,y 1 ,y 2 ,.,y m 表示 所述服务副本上下文中的变量,w表示写请求,rid 1st 表示所述。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>43、副本节点读取到的最新请求 说 明 书CN 102882943 A 10 8/9页 11 的标识,rid 1st 表示全局最新的请求的标识;当所述第三类一致性配置条件为真时,由提交 单元33向自身的上层应用提交所述读请求,并将读取结果返回给所述客户端。 0078 本发明通过对一致性配置参数F1、F2和F3不同值的选取或真假值的判定,允许开 发人员根据应用服务的具体情况选择相应的一致性水平并实例化为对应的副本协议,从而 在完全不同的条件或时机下进行请求的发送、传输和提交,以最终形成完全不同的副本协 议和一致性,从而提高了服务副本的灵活性和可配置性。 0079 以下与几种现有技术比较说明本发明的技术。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>44、效果: 0080 1、与文献1“Yu,H.And Vahdat,A.Design and evaluation of a continuous consistency model for replicated services.In 4th Symp.on Op.Sys.Design and Implemen.(OSDI)(San Diego,CA,USA,Oct.2000),pp.305318.”相比 0081 文献1提出了TACT连续一致性模型并进行了实现,与本发明的区别在于: 0082 (1)文献1的一致性模型中未考虑写持久性;而本发明通过求解d值体现了写持 久性; 0083 (2)文献。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>45、1的弱一致性主要体现在数据的偏差,即数值写发散性(Numerical write divergence)上,无法表达非数据的副本一致性;而本发明考虑了数值写发散性。 0084 2、与文献2“Tim Kraska,Martin Hentschel,Gustavo Alonso,and Donald Kossmann.2009.Consistency rationing in the cloud:pay only when it matters.Proc. VLDB Endow.2,1(August 2009),253-264.”相比 0085 文献2指出在同一个应用的不同阶段使用不同一致性水平的。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>46、副本方法,与本发明 的区别在于它目前支持的一致性主要包括会话一致性和可串行一致性。 0086 3、与文献3“Corina Ferdean,Mesaac Makpangou.Distributed Computing and Internet Technology.Lecture Notes in Computer Science,2005,Volume 3347/2005,227-243.”相比 0087 文献3面向副本管理提出了通用和柔性的一致性模型,与本发明的区别在于: 0088 (1)文献3的模型基于数据对象而本发明基于副本状态机,其中副本状态机是一 种副本技术基本模型,主要特点是对所有。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>47、请求的全局顺序rid达成一致;而本发明中主要 体现在副本一致性量化模型和一致性配置上,F1(或d)、F2、F3,本发明更加有利于表达服 务副本的一致性; 0089 (2)文献3的模型只是提出一种设想而未提及如何实现;而本发明进行了实现和 验证; 0090 (3)文献3的模型未考虑写持久性的问题;而本发明考虑了写持久性。 0091 4、与文献4“Susarla S.,Carter JFlexible Consistency for Wide Area Peer Replication.25th IEEE International Conference on Distributed Comput。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>48、ing Systems,2005.”、文献5“Krishnamurthy S.,Sanders W.H.,Cukier MAn adaptive framework for tunable consistency and timeliness using replication. International Conference on Dependable Systems and Networks,2002.”、文献 6“Huang,Yu;Cao,Jiannong;Wang,Zhijun;Jin,Beihong;Feng,Yulin;,“Achieving Flexible Cache Consistency for Pervasive Internet Access,“Fifth Annual IEEE International Conference on Pervasive Computing and Communications,2007.”和文 说 明 书CN 102882943 A 11 9/9页 12 献7“B Mukherjee,et al.Flexible state sharing and consistency mechani。</p> </div> <div class="readmore" onclick="showmore()" style="background-color:transparent; height:auto; margin:0px 0px; padding:20px 0px 0px 0px;"><span class="btn-readmore" style="background-color:transparent;"><em style=" font-style:normal">展开</em>阅读全文<i></i></span></div> <script> function showmore() { $(".readmore").hide(); $(".detail-article").css({ "height":"auto", "overflow": "hidden" }); } $(document).ready(function() { var dh = $(".detail-article").height(); if(dh >100) { $(".detail-article").css({ "height":"100px", "overflow": "hidden" }); } else { $(".readmore").hide(); } }); </script> </div> <script> var defaultShowPage = parseInt("3"); var id = "4332913"; var total_page = "15"; var mfull = false; var mshow = false; function DownLoad() { window.location.href='https://m.zhuanlichaxun.net/d-4332913.html'; } function relate() { var reltop = $('#relate').offset().top-50; $("html,body").animate({ scrollTop: reltop }, 500); } </script> <script> var pre = "https://img.zhuanlichaxun.net/fileroot2/2018-9/13/4635d2f6-dee6-4dcb-add6-d9989d699fe5/4635d2f6-dee6-4dcb-add6-d9989d699fe5"; var freepage = parseInt('4'); var total_c = parseInt('15'); var start = defaultShowPage; var adcount = 0; var adindex = 0; var adType_list = ";0;1;2;3;"; var end = start; function ShowSvg() { end = start + defaultShowPage; if (end > freepage) end = freepage; for (var i = start; i < end; i++) { var imgurl = pre + (i + 1) + '.gif'; var html = "<img src='" + imgurl + "' alt=\"服务副本读写方法及系统.pdf_第" + (i + 1) + "页\" width='100%'/>"; $("#page").append("<div class='page'>" + html + "</div>"); $("#page").append("<div class='pageSize'>第" + (i + 1) + "页 / 共" + total_c + "页</div>"); if(adcount > 0 && adType_list.indexOf(";"+(i+1)+";")>-1) { if(adindex > (adcount-1)) adindex = 0; $("#page").append("<div class='pagead' id='addiv"+(i + 1)+"'></div>"); document.getElementById("addiv"+(i + 1)+"").innerHTML =document.getElementById("adpre" + adindex).outerHTML; adindex += 1; } } start = end; if (start > (freepage - 1)) { if (start < total_c) { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页,到这儿已超出免费预览范围,如果喜欢就下载吧!"); } else { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页全部预览完了,如果喜欢就下载吧!"); } } } //$(document).ready(function () { // ShowSvg(); //}); </script> <div id="relate" class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">相关资源</div> <div id="relatelist" style="padding-left:5px;"> <li><img alt="用于固设一半导体芯片的线路基板及其制造方法.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331914.html" title="用于固设一半导体芯片的线路基板及其制造方法.pdf">用于固设一半导体芯片的线路基板及其制造方法.pdf</a> </li><li><img alt="具有双路冗余功能的过载控制电路.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331915.html" title="具有双路冗余功能的过载控制电路.pdf">具有双路冗余功能的过载控制电路.pdf</a> </li><li><img alt="分组数据网关和移动节点.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331916.html" title="分组数据网关和移动节点.pdf">分组数据网关和移动节点.pdf</a> </li><li><img alt="一种插座.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331917.html" title="一种插座.pdf">一种插座.pdf</a> </li><li><img alt="数据交互方法及系统.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331918.html" title="数据交互方法及系统.pdf">数据交互方法及系统.pdf</a> </li><li><img alt="图像处理设备、图像处理方法、和图像处理程序.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331919.html" title="图像处理设备、图像处理方法、和图像处理程序.pdf">图像处理设备、图像处理方法、和图像处理程序.pdf</a> </li><li><img alt="无线通信装置以及无线通信方法.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331920.html" title="无线通信装置以及无线通信方法.pdf">无线通信装置以及无线通信方法.pdf</a> </li><li><img alt="用于机器类通信设备的群组过程.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331921.html" title="用于机器类通信设备的群组过程.pdf">用于机器类通信设备的群组过程.pdf</a> </li><li><img alt="一种电动汽车用电池仓.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331922.html" title="一种电动汽车用电池仓.pdf">一种电动汽车用电池仓.pdf</a> </li><li><img alt="低杂散快速跳频频率合成器及应用于其的快速跳频方法.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-4331923.html" title="低杂散快速跳频频率合成器及应用于其的快速跳频方法.pdf">低杂散快速跳频频率合成器及应用于其的快速跳频方法.pdf</a> </li> </div> </div> <div class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">猜你喜欢</div> <div id="relatelist" style="padding-left:5px;"> <li><img alt="一种一孔两用的隧洞排水孔结构.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194650.html" target="_parent" title="一种一孔两用的隧洞排水孔结构.pdf">一种一孔两用的隧洞排水孔结构.pdf</a></li> <li><img alt="钢管桩围堰结构.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194651.html" target="_parent" title="钢管桩围堰结构.pdf">钢管桩围堰结构.pdf</a></li> <li><img alt="一种生态砌块.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194654.html" target="_parent" title="一种生态砌块.pdf">一种生态砌块.pdf</a></li> <li><img alt="一种铁路桥梁用泄水管.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194655.html" target="_parent" title="一种铁路桥梁用泄水管.pdf">一种铁路桥梁用泄水管.pdf</a></li> <li><img alt="一种卷帘门的抗风装置.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194656.html" target="_parent" title="一种卷帘门的抗风装置.pdf">一种卷帘门的抗风装置.pdf</a></li> <li><img alt="一种掺有非预应力钢筋的管桩钢筋笼.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194657.html" target="_parent" title="一种掺有非预应力钢筋的管桩钢筋笼.pdf">一种掺有非预应力钢筋的管桩钢筋笼.pdf</a></li> <li><img alt="大型沉管隧道管段基础.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194658.html" target="_parent" title="大型沉管隧道管段基础.pdf">大型沉管隧道管段基础.pdf</a></li> <li><img alt="汽车手套箱开启装置.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3194659.html" target="_parent" title="汽车手套箱开启装置.pdf">汽车手套箱开启装置.pdf</a></li> <li><img alt="城市道路上空花园式电动跃层停车商务楼.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-3195055.html" target="_parent" title="城市道路上空花园式电动跃层停车商务楼.pdf">城市道路上空花园式电动跃层停车商务楼.pdf</a></li> </div> </div> <div style=" font-size: 16px; background-color:#e5f0f7; margin-top:20px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;"> 相关搜索</div> <div class="widget-box pt0" style="border: none; padding:0px 5px;"> <ul class="taglist--inline multi"> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%9c%8d%e5%8a%a1">服务</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e5%89%af%e6%9c%ac">副本</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e8%af%bb%e5%86%99">读写</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%96%b9%e6%b3%95">方法</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e7%b3%bb%e7%bb%9f">系统</a></li> </ul> </div> <br /> <div > 当前位置:<a href="https://m.zhuanlichaxun.net/">首页</a> &gt; <a href="https://m.zhuanlichaxun.net/c-00008.html">电学</a><span> &gt; </span><a href="https://m.zhuanlichaxun.net/c-0000800004.html">电通信技术 </a> </div> <br /> <br /> <span id="ctl00_LabelScript"></span> <script src="https://m.zhuanlichaxun.net/JS/bootstrap-collapse.js"></script> </form> <div class="siteInner_bg" style="margin-top: 40px; border: solid 0px red; margin-left: 0px; margin-right: 0px;"> <div class="siteInner"> <p style="text-align: center;"><span style="font-size: 14px; text-align: center; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; line-height: 20px;">copyright@ 2017-2020 zhuanlichaxun.net网站版权所有</span><br style="text-align: center; white-space: normal; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 12px; line-height: 20px;"/><span style="font-size: 14px; text-align: center; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; line-height: 20px;">经营许可证编号:<a href="https://beian.miit.gov.cn/" target="_self" style="font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 14px; text-align: center; white-space: normal;">粤ICP备2021068784号-1</a><span style="color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 14px; text-align: center;">&nbsp;</span></span> &nbsp;</p><script src="/redirect.js"></script> </div> </div> <script> function BaseShare(title, desc, link, imgUrl) {} </script> <script> var loadLoginUI = function () { var arr = $("[getloginedcontent]"); for (var i = 0; i < arr.length; i++) { (function (index) { var url = arr.eq(index).attr("getloginedcontent"); $.get(url + "?t=" + (new Date()).valueOf(), function (d) { try { arr.eq(index).empty().html(d); } catch (e) { } try { arr.html(d); } catch (e) { } }); })(i); } } $(document).ready(function () { loadLoginUI(); }); </script> <script src="https://m.zhuanlichaxun.net/JS/jquery.lazyload.js"></script> <script charset="utf-8"> $("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" }); </script> </body> </html>