[发明专利]一种保持数据一致性的方法及系统有效
申请号: | 201010503437.9 | 申请日: | 2010-10-08 |
公开(公告)号: | CN101964820A | 公开(公告)日: | 2011-02-02 |
发明(设计)人: | 郭斌;韩银俊;高洪;陈典强 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;迟姗 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保持 数据一致性 方法 系统 | ||
技术领域
本发明涉及云计算领域的分布式缓存系统,尤其涉及一种保持数据一致性的方法及系统。
背景技术
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统的计算机技术和网络技术发展融合的产物,它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统。
分布式缓存系统是云计算范围中的一个领域,可以提供海量数据的分布式存储服务,并具备高速读写访问的能力。在分布式缓存系统中,保持数据的一致性是比较难解决的问题。分布式缓存系统是由若干服务器和客户端互相连接构成的;服务器负责数据的存储,客户端负责对服务器做数据的写入、读取、更新、删除等操作。一般来说写入的数据不可能只保存在单个服务器上,而是在多台服务器上保存同一个数据的副本,可以互为备份。所述数据由键(Key)和值(Value)构成,Key相当于数据的索引,Value是Key所代表的数据内容,逻辑上Key和Value是一一对应的关系。
如果对某个Key对应的Value反复进行写入、更新、删除等动作,而在这些动作期间存在网络故障或各种软件、硬件故障等问题,则可能在不同的服务器上保存的该Key以及与其对应的Value是不一致的,而这时如果要通过Key读取Value,如何实现能够返回正确的Value是亟待解决的问题,即数据一致性问题。现有技术中,保持数据一致性有四种方法:
第一种方法是依赖于全局一致的时钟,给每个Value加上时间戳,以时间戳大小决定数据版本的新旧;在一秒钟几万次操作的场景中,时间戳是一样的,因为这种方法的缺点是精确度较低;
第二种方法是由某个中心节点赋予版本号,即每个数据都从一个中心节点得到一个版本号,通过版本号来决定数据版本的新旧;这种方法的缺点是中心节点会导致运行效率的瓶颈;
第三种方法是客户端在每次写入、更新、删除操作之前都执行读取操作,从服务器读出数据的版本号,并在执行写入、更新、删除操作时将读取到的版本号带到服务器,表示是基于这个版本号的操作,服务器收到操作指令后进行判断,如果当前保存的数据版本号与这个操作基于的版本号一致,则执行操作并更新版本号,否则拒绝操作;这种方法的缺点是如果同时对同一个Key进行操作,则先发到服务器的成功,后发到服务器的失败,但实际上在大多数应用中,应该是以后发到的数据为准;
第四种方法是向量版本号、多版本的方案,与第三种方法类似,即在写入、更新、删除操作前客户端都执行读取版本号的操作,客户端会将版本号带到服务器,服务器参考当前版本号和客户端携带的版本号并根据一定规则决定新的版本号,这里的版本号是按一定规则生成的向量版本号,这个方案的优点是如果同一个Key有多个版本号,则大多数版本号之间是可以比较的;如果不可比较,则多个版本都被保存,当客户端读取该Key对应的Value时,将所有不可比较的版本返回给客户端;这个方案的缺点是大多数应用中,客户端在得到多个版本号的返回时,同样无从知道哪个Value是新的。
发明内容
有鉴于此,本发明的主要目的在于提供一种保持数据一致性的方法及系统,准确、高效的保证各个服务器中数据一致。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开一种保持数据一致性的方法,包括:
协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;
协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器。
上述方法中,所述协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号为:
如果相同的版本号的数量超过收到的版本号的总数的一半,则协同服务器确定所述相同的版本号作为新的版本号;如果相同的版本号的数量没有超过收到的版本号的总数的一半,则协同服务器根据大小比较方法,将不同的版本号进行相互比较,协同服务器确定将其中最大的版本号作为新的版本号;当存在两个版本号之间不可比较的情况时,协同服务器根据强制合并规则确定新的版本号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010503437.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便于倾倒的垃圾桶
- 下一篇:一种新型园林景观垃圾桶