CN101964820A - 一种保持数据一致性的方法及系统 - Google Patents

一种保持数据一致性的方法及系统 Download PDF

Info

Publication number
CN101964820A
CN101964820A CN2010105034379A CN201010503437A CN101964820A CN 101964820 A CN101964820 A CN 101964820A CN 2010105034379 A CN2010105034379 A CN 2010105034379A CN 201010503437 A CN201010503437 A CN 201010503437A CN 101964820 A CN101964820 A CN 101964820A
Authority
CN
China
Prior art keywords
version number
server
data
collaboration server
replica
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.)
Granted
Application number
CN2010105034379A
Other languages
English (en)
Other versions
CN101964820B (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.)
Gao Ying cloud technology (Shenzhen) Co., Ltd.
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010503437.9A priority Critical patent/CN101964820B/zh
Publication of CN101964820A publication Critical patent/CN101964820A/zh
Priority to PCT/CN2011/075113 priority patent/WO2012045245A1/zh
Application granted granted Critical
Publication of CN101964820B publication Critical patent/CN101964820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种保持数据一致性的方法,包括:协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;本发明还提供一种保持数据一致性的系统。根据本发明的技术方案,准确、高效的保证各个服务器中数据一致。

Description

一种保持数据一致性的方法及系统
技术领域
本发明涉及云计算领域的分布式缓存系统,尤其涉及一种保持数据一致性的方法及系统。
背景技术
云计算(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是新的。
发明内容
有鉴于此,本发明的主要目的在于提供一种保持数据一致性的方法及系统,准确、高效的保证各个服务器中数据一致。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开一种保持数据一致性的方法,包括:
协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;
协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器。
上述方法中,所述协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号为:
如果相同的版本号的数量超过收到的版本号的总数的一半,则协同服务器确定所述相同的版本号作为新的版本号;如果相同的版本号的数量没有超过收到的版本号的总数的一半,则协同服务器根据大小比较方法,将不同的版本号进行相互比较,协同服务器确定将其中最大的版本号作为新的版本号;当存在两个版本号之间不可比较的情况时,协同服务器根据强制合并规则确定新的版本号。
上述方法中,所述强制合并规则为:以优先级最高的服务器所存储的版本号为新的版本号,或以服务器无故障运行时间最长的服务器所存储的版本号为新的版本号。
上述方法中,用于数据更新时,所述协同服务器将所有的版本号进行相互比较之前还包括:
协同服务器收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容,并发送数据读取请求给各个副本服务器;副本服务器读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器。
上述方法中,用于数据更新时,还包括:
副本服务器进行数据更新,将自身的更新结果返回给协同服务器;协同服务器将总体的更新结果返回给客户端。
上述方法中,用于数据读取时,所述协同服务器将所有的版本号进行相互比较之前还包括:
协同服务器收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据,并发送数据读取请求和读取的版本号给副本服务器;副本服务器将收到的版本号和自身存储的版本号进行比较,当自身存储的版本号更新或不可比较时,将读取的版本号和与其对应的数据发送给协同服务器,当收到的版本号更新时,返回比较结果。
上述方法中,用于数据更新时,还包括:
协同服务器将新的版本号和与其对应的数据发送给客户端;副本服务器进行数据更新,将更新结果返回给协同服务器。
本发明还公开一种保持数据一致性的系统,包括:协同服务器、副本服务器;其中,
协同服务器,用于将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;
副本服务器,用于接收协同服务器发送的数据更新请求、新的版本号和与其对应的数据。
上述系统中,用于数据更新时,
所述协同服务器还用于,收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容,并发送数据读取请求给各个副本服务器;所述副本服务器还用于,收到数据读取请求时,读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器;
所述副本服务器还用于,进行数据更新,将自身的更新结果返回给协同服务器;所述协同服务器还用于,将总体的更新结果返回给客户端。
上述系统中,用于数据读取时,
所述协同服务器还用于,收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据;发送数据读取请求和读取的版本号给副本服务器;所述副本服务器还用于,将收到的版本号和自身存储的版本号进行比较;当自身存储的版本号更新或不可比较时,将读取的版本号和与其对应的数据发送给协同服务器,当收到的版本号更新时,返回比较结果;
所述协同服务器还用于,将新的版本号和与其对应的数据发送给客户端;所述副本服务器还用于,进行数据更新,将更新结果返回给协同服务器。
本发明提供的保持数据一致性的方法及系统,协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器,不依赖于时钟,从而提高了数据的准确度;不依赖于中心节点分配版本号,避免了中心节点带来的运行效率的瓶颈,提高了数据读取和更新的运行效率;此外,针对同一个key所对应的版本号和与其对应的数据,在每个协同服务器和副本服务器上最多只保留一个版本的数据,协同服务器返回给客户端的也只有一个版本的数据,从而客户端可以得到最新版本的数据。
附图说明
图1是本发明数据更新时保持数据一致性的方法的流程示意图;
图2是本发明数据读取时保持数据一致性的方法的流程示意图;
图3是本发明实现保持数据一致性的系统的结构示意图。
具体实施方式
本发明的基本思想是:协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明提供一种保持数据一致性的方法,图1是本发明数据更新时保持数据一致性的方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤101,协同服务器收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容;
具体的,客户端中保存数据的key与服务器的对应关系的列表,当需要对某个数据进行更新时,客户端根据该数据的key,将数据更新请求发送给与其对应的服务器,该服务器称为本次操作的协同服务器;协同服务器收到客户端发送的数据更新请求后,从本地读取自身存储的与该key对应的版本号和与该版本号对应的数据内容;其中,key、版本号和数据内容是一一对应的,所述版本号为向量版本号。
步骤102,协同服务器发送数据读取请求给各个副本服务器;
具体的,协同服务器保存该key与可能保存与该key对应的数据内容的副本服务器的对应关系的列表,协同服务器将数据读取请求发送给各个可能保存与该key对应的数据内容的副本服务器。
步骤103,副本服务器读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器;
具体的,每个副本服务器收到数据读取请求后,尝试读取自身存储的版本号和与其对应的数据内容,如果能够读取出版本号和与其对应的数据内容,表示本地已经保存版本号和与其对应的数据内容,则副本服务器将读取出的版本号和与其对应的数据内容发送给协同服务器;如果没有读取出版本号和与其对应的数据内容,则副本服务器通知协同服务器没有数据。
步骤104,协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;
具体的,本实施例中的版本号是向量版本号,使用向量版本号的优点是,针对同一个key的大部分的不同的版本的不同的版本号之间是可以相互比较的;向量版本号中每个分量的数值表示的是,这个分量对应的服务器为协同服务器时,数据变更操作的次数,所述变更操作指的是写入、更新、删除操作;例如,X、Y、Z分别代表三台服务器,客户端第一次写入数据时选择X为协同服务器,则向量版本号为(1,0,0),然后如果客户端更新数据时,X出现故障,则客户端可能会选择Y为协同服务器,此时产生的向量版本号为(1,1,0),将两个向量版本号进行比较,得出向量版本号为(1,1,0)的版本比向量版本号为(1,0,0)的版本新;如果向量版本号为(3,2,3)与向量版本号为(1,2,4)的两个版本号进行比较,则这两个版本号是不可比较的,因为前者向量版本号中的向量既有大于后者的向量版本号中的向量,也有小于后者的向量版本号中的向量,这种情况下,两个向量版本号是不可比较的;
协同服务器收到各个副本服务器返回的版本号和与其对应的数据内容,或没有数据的通知,当协同服务器收到的副本服务器的响应的数量超过副本服务器总数的一半时,协同服务器将在步骤101中读取的自身的版本号和收到的多个版本号之间进行相互比较;如果存在相同的版本号的数量超过收到的版本号的总数的一半,则协同服务器确定这些相同的版本号作为新的版本号;如果不存在相同的版本号的数量超过收到的版本号的总数的一半,则协同服务器根据上述大小比较方法,将若干不同的版本号进行相互比较,协同服务器确定将其中最大的版本号作为新的版本号;当存在两个版本号之间不可比较的情况时,协同服务器根据强制合并规则确定新的版本号;其中,强制合并规则可以是服务器的优先级,或服务器无故障运行时间;例如,可以设置服务器的优先级,当存在两个版本号之间不可比较的情况时,以优先级最高的服务器所存储的版本号为新的版本号;或,以服务器无故障运行时间最长的服务器所存储的版本号为新的版本号;
协同服务器保存与副本服务器的交互记录,协同服务器中还具有计数器,根据记录协同服务器可以知道发送的副本服务器的总数,并可以利用计数器统计收到的副本服务器的响应数量,从而协同服务器可以确定,何时收到的副本服务器的响应的数量超过副本服务器总数的一半。
步骤105,协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;
具体的,协同服务器在确定新的版本号后,在本地将新的版本号和与其对应的数据,替换原来存储的版本号和与其对应的数据,实现版本号和与其对应的数据的更新;协同服务器将数据更新请求、确定的新的版本号和与其对应的数据发送给各个副本服务器。
步骤106,副本服务器进行数据更新,将自身的更新结果返回给协同服务器,协同服务器将总体的更新结果返回给客户端;
具体的,副本服务器收到协同服务器发送数据更新请求、新的版本号和与其对应的数据后,进行版本号和与其对应的数据的更新,将新的版本号和与其对应的数据替换原先在自身存储的版本号和与其对应的数据,并将更新结果返回给协同服务器,更新结果包括更新成功和更新失败;当协同服务器收到的副本服务器的更新结果的数量超过副本服务器总数的一半时,协同服务器将更新成功的结果返回给客户端;如果协同服务器收到的副本服务器的更新结果的数量最终没有超过副本服务器总数的一半,协同服务器将更新失败的结果返回给客户端。
图2是本发明数据读取时保持数据一致性的方法的流程示意图,如图2所示,该方法包括以下步骤:
步骤201,协同服务器收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据;
具体的,客户端中保存数据的key与服务器的对应关系的列表,当需要对某个数据进行读取时,客户端根据该数据的key,将数据读取请求发送给与其对应的服务器,该服务器称为本次操作的协同服务器;协同服务器收到客户端发送的数据读取请求后,从本地读取自身存储的与该key对应的版本号和与该版本号对应的数据内容;其中,key、版本号和数据内容是一一对应的,所述版本号为向量版本号。
步骤202,协同服务器发送数据读取请求和读取的版本号给副本服务器;
具体的,协同服务器保存该key与可能保存与该key对应的数据内容的副本服务器的对应关系的列表,协同服务器将数据读取请求和在步骤201中读取的版本号发送给各个可能保存与该key对应的数据内容的副本服务器。
步骤203,副本服务器将收到的版本号和自身存储的版本号进行比较;
具体的,每个副本服务器收到数据读取请求后,尝试读取自身存储的版本号和与其对应的数据内容,如果能够读取出版本号和与其对应的数据内容,表示本地已经保存版本号和与其对应的数据内容,则副本服务器将读取出的版本号与收到的版本号进行比较,如果读取出的版本号比收到的版本号新,或两个版本号不可比较,则执行步骤204;如果收到的版本号新,或两个版本号相同容,则执行步骤208;如果没有读取出版本号和与其对应的数据内容,则副本服务器通知协同服务器没有数据。
步骤204,副本服务器将读取的版本号和与其对应的数据发送给协同服务器。
步骤205同步骤104。
步骤206,协同服务器在本地更新版本号和与其对应的数据,并将新的版本号和与其对应的数据发送给客户端,将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;
具体的,协同服务器在确定新的版本号后,在本地将新的版本号和与其对应的数据,替换原来存储的版本号和与其对应的数据,实现版本号和与其对应的数据的更新;协同服务器将新的版本号和与其对应的数据发送给客户端,并将数据更新请求、确定的新的版本号和与其对应的数据发送给各个副本服务器。
步骤207,副本服务器进行数据更新,将更新结果返回给协同服务器,结束当前流程;
具体的,副本服务器收到协同服务器发送数据更新请求、新的版本号和与其对应的数据后,进行版本号和与其对应的数据的更新,将新的版本号和与其对应的数据替换原先在自身存储的版本号和与其对应的数据,并将更新结果返回给协同服务器,更新结果包括更新成功和更新失败。
步骤208,副本服务器返回比较结果;
具体的,如果副本服务器确定收到的版本号新,或收到的版本号和读取的版本号相同,副本服务器将上述比较结果返回给协同服务器,结束流程。
本实施例中,当副本服务器确定协同服务器的版本号新或两个版本号不可比较时,返回读取到的版本号和与其对应的数据内容,否则只返回比较结果给协同服务器,提示两个版本号相同或收到的版本号新,从而可以节省大量的带宽,提高自身的执行效率。
上述方法中,当存在两个版本号不可比较时,根据一定的规则进行强制合并,最后确定一个新的版本号,因此针对同一个key所对应的版本号和与其对应的数据,在每个协同服务器和副本服务器上最多只保留一个版本的数据,协同服务器返回给客户端的也只有一个版本的数据,弥补了背景技术中第四种方法的不足;此外,服务器易于得到更多的版本号作为参考,相对来说判断的较为准确,所以在服务器进行版本号的比较比在客户端进行比较更加具有优势。
为实现上述方法,本发明还提供一种保持数据一致性的系统,图3是本发明实现保持数据一致性的系统的结构示意图,如图3所示,该系统包括:协同服务器31、副本服务器32;其中,
协同服务器31,用于将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器32;
副本服务器32,用于接收协同服务器发送的数据更新请求、新的版本号和与其对应的数据。
用于数据更新时,
所述协同服务器31还用于,收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容,并发送数据读取请求给各个副本服务器32;所述副本服务器32还用于,收到数据读取请求时,读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器31;
所述副本服务器32还用于,进行数据更新,将自身的更新结果返回给协同服务器31;所述协同服务器31还用于,将总体的更新结果返回给客户端。
用于数据读取时,
所述协同服务器31还用于,收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据;发送数据读取请求和读取的版本号给副本服务器32;所述副本服务器32还用于,将收到的版本号和自身存储的版本号进行比较;当自身存储的版本号更新或不可比较时,将读取的版本号和与其对应的数据发送给协同服务器31,当收到的版本号更新时,返回比较结果;
所述协同服务器31还用于,将新的版本号和与其对应的数据发送给客户端;所述副本服务器32还用于,进行数据更新,将更新结果返回给协同服务器31。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种保持数据一致性的方法,其特征在于,该方法包括:
协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;
协同服务器在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器。
2.根据权利要求1所述的方法,其特征在于,所述协同服务器将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号为:
如果相同的版本号的数量超过收到的版本号的总数的一半,则协同服务器确定所述相同的版本号作为新的版本号;如果相同的版本号的数量没有超过收到的版本号的总数的一半,则协同服务器根据大小比较方法,将不同的版本号进行相互比较,协同服务器确定将其中最大的版本号作为新的版本号;当存在两个版本号之间不可比较的情况时,协同服务器根据强制合并规则确定新的版本号。
3.根据权利要求1或2所述的方法,其特征在于,所述强制合并规则为:以优先级最高的服务器所存储的版本号为新的版本号,或以服务器无故障运行时间最长的服务器所存储的版本号为新的版本号。
4.根据权利要求1或2所述的方法,其特征在于,用于数据更新时,所述协同服务器将所有的版本号进行相互比较之前还包括:
协同服务器收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容,并发送数据读取请求给各个副本服务器;副本服务器读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器。
5.根据权利要求1或2所述的方法,其特征在于,用于数据更新时,还包括:
副本服务器进行数据更新,将自身的更新结果返回给协同服务器;协同服务器将总体的更新结果返回给客户端。
6.根据权利要求1或2所述的方法,其特征在于,用于数据读取时,所述协同服务器将所有的版本号进行相互比较之前还包括:
协同服务器收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据,并发送数据读取请求和读取的版本号给副本服务器;副本服务器将收到的版本号和自身存储的版本号进行比较,当自身存储的版本号更新或不可比较时,将读取的版本号和与其对应的数据发送给协同服务器,当收到的版本号更新时,返回比较结果。
7.根据权利要求1或2所述的方法,其特征在于,用于数据更新时,还包括:
协同服务器将新的版本号和与其对应的数据发送给客户端;副本服务器进行数据更新,将更新结果返回给协同服务器。
8.一种保持数据一致性的系统,其特征在于,该系统包括:协同服务器、副本服务器;其中,
协同服务器,用于将所有的版本号进行相互比较,当两个版本号不可比较时,根据强制合并规则确定新的版本号;在本地更新版本号和与其对应的数据,并将数据更新请求、新的版本号和与其对应的数据发送给各个副本服务器;
副本服务器,用于接收协同服务器发送的数据更新请求、新的版本号和与其对应的数据。
9.根据权利要求8所述的系统,其特征在于,用于数据更新时,
所述协同服务器还用于,收到客户端发送的数据更新请求后,读取自身存储的版本号和与其对应的数据内容,并发送数据读取请求给各个副本服务器;所述副本服务器还用于,收到数据读取请求时,读取自身存储的版本号和与其对应的数据内容,并发送给协同服务器;
所述副本服务器还用于,进行数据更新,将自身的更新结果返回给协同服务器;所述协同服务器还用于,将总体的更新结果返回给客户端。
10.根据权利要求8所述的系统,其特征在于,用于数据读取时,
所述协同服务器还用于,收到客户端发送的数据读取请求后,读取自身存储的版本号和与其对应的数据;发送数据读取请求和读取的版本号给副本服务器;所述副本服务器还用于,将收到的版本号和自身存储的版本号进行比较;当自身存储的版本号更新或不可比较时,将读取的版本号和与其对应的数据发送给协同服务器,当收到的版本号更新时,返回比较结果;
所述协同服务器还用于,将新的版本号和与其对应的数据发送给客户端;所述副本服务器还用于,进行数据更新,将更新结果返回给协同服务器。
CN201010503437.9A 2010-10-08 2010-10-08 一种保持数据一致性的方法及系统 Active CN101964820B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010503437.9A CN101964820B (zh) 2010-10-08 2010-10-08 一种保持数据一致性的方法及系统
PCT/CN2011/075113 WO2012045245A1 (zh) 2010-10-08 2011-06-01 一种保持数据一致性的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010503437.9A CN101964820B (zh) 2010-10-08 2010-10-08 一种保持数据一致性的方法及系统

Publications (2)

Publication Number Publication Date
CN101964820A true CN101964820A (zh) 2011-02-02
CN101964820B CN101964820B (zh) 2014-04-09

Family

ID=43517550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010503437.9A Active CN101964820B (zh) 2010-10-08 2010-10-08 一种保持数据一致性的方法及系统

Country Status (2)

Country Link
CN (1) CN101964820B (zh)
WO (1) WO2012045245A1 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265277A (zh) * 2011-06-01 2011-11-30 华为技术有限公司 数据存储系统的操作方法和装置
WO2012045245A1 (zh) * 2010-10-08 2012-04-12 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102427577A (zh) * 2011-12-06 2012-04-25 安徽省徽商集团有限公司 从协同服务器向移动终端推送信息的系统及其方法
CN102646127A (zh) * 2012-02-29 2012-08-22 浪潮(北京)电子信息产业有限公司 分布式文件系统副本选择方法和装置
WO2012171345A1 (zh) * 2011-06-13 2012-12-20 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN103020058A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种多版本数据获取方法和装置
CN103294675A (zh) * 2012-02-23 2013-09-11 上海盛霄云计算技术有限公司 一种分布式存储系统中的数据更新方法及装置
CN103729352A (zh) * 2012-10-10 2014-04-16 腾讯科技(深圳)有限公司 分布式文件系统对多个副本数据进行处理的方法及该系统
CN104754001A (zh) * 2013-12-30 2015-07-01 方正宽带网络服务股份有限公司 云存储系统和数据存储方法
CN104820676A (zh) * 2015-04-14 2015-08-05 天脉聚源(北京)教育科技有限公司 一种判断版本号大小的方法及装置
WO2016150405A1 (en) * 2015-03-26 2016-09-29 Huawei Technologies Co., Ltd. System and method for mobile core data services
CN105991752A (zh) * 2015-03-06 2016-10-05 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
CN106066894A (zh) * 2016-06-23 2016-11-02 广州市百果园网络科技有限公司 数据全缓存方法和数据全缓存装置
CN103810045B (zh) * 2012-11-09 2016-12-21 阿里巴巴集团控股有限公司 资源分配方法、资源管理器、资源服务器及系统
CN106302625A (zh) * 2015-06-26 2017-01-04 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106557278A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 一种缓存数据持久化的方法
CN106649669A (zh) * 2016-12-14 2017-05-10 咪咕数字传媒有限公司 一种基于远程字典服务器的数据存储方法及系统
CN106941525A (zh) * 2017-03-14 2017-07-11 郑州云海信息技术有限公司 一种在分布式存储系统中保持数据一致性的方法
CN107819870A (zh) * 2017-11-21 2018-03-20 广州视睿电子科技有限公司 增量拉取数据方法、装置、存储介质、终端设备和服务器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158897B (zh) * 2014-08-25 2017-06-23 曙光信息产业股份有限公司 一种分布式文件系统中文件布局的更新方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288199A (zh) * 1999-09-09 2001-03-21 日本电气株式会社 响应用户引发事件更新客户的安装数据的方法
US20020129103A1 (en) * 2001-03-12 2002-09-12 Birkler J?Ouml;Rgen Instant messaging presence service protocol
US20030069902A1 (en) * 2001-10-05 2003-04-10 Ibm Method of maintaining data consistency in a loose transaction model
CN1690961A (zh) * 2004-04-30 2005-11-02 鸿富锦精密工业(深圳)有限公司 客户端程序自动更新系统及方法
CN101035326A (zh) * 2007-04-24 2007-09-12 中兴通讯股份有限公司 一种通讯系统主备板存储版本自动同步的方法
CN101483576A (zh) * 2008-01-11 2009-07-15 上海博达数据通信有限公司 一种分布式系统中的版本管理实现方法
CN101547219A (zh) * 2009-05-05 2009-09-30 汤淼 一种数据存储系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100549950C (zh) * 2006-07-14 2009-10-14 中兴通讯股份有限公司 分布式软件系统的部署方法
CN101576915B (zh) * 2009-06-18 2011-06-08 北京大学 一种分布式b+树索引系统及构建方法
CN101964820B (zh) * 2010-10-08 2014-04-09 中兴通讯股份有限公司 一种保持数据一致性的方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288199A (zh) * 1999-09-09 2001-03-21 日本电气株式会社 响应用户引发事件更新客户的安装数据的方法
US20020129103A1 (en) * 2001-03-12 2002-09-12 Birkler J?Ouml;Rgen Instant messaging presence service protocol
US20030069902A1 (en) * 2001-10-05 2003-04-10 Ibm Method of maintaining data consistency in a loose transaction model
CN1690961A (zh) * 2004-04-30 2005-11-02 鸿富锦精密工业(深圳)有限公司 客户端程序自动更新系统及方法
CN101035326A (zh) * 2007-04-24 2007-09-12 中兴通讯股份有限公司 一种通讯系统主备板存储版本自动同步的方法
CN101483576A (zh) * 2008-01-11 2009-07-15 上海博达数据通信有限公司 一种分布式系统中的版本管理实现方法
CN101547219A (zh) * 2009-05-05 2009-09-30 汤淼 一种数据存储系统和方法

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012045245A1 (zh) * 2010-10-08 2012-04-12 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102265277A (zh) * 2011-06-01 2011-11-30 华为技术有限公司 数据存储系统的操作方法和装置
US9639588B2 (en) 2011-06-01 2017-05-02 Huawei Technologies Co., Ltd. Operation method and apparatus for data storage system
CN102265277B (zh) * 2011-06-01 2014-03-05 华为技术有限公司 数据存储系统的操作方法和装置
WO2012171345A1 (zh) * 2011-06-13 2012-12-20 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN103020058B (zh) * 2011-09-21 2016-07-06 阿里巴巴集团控股有限公司 一种多版本数据获取方法和装置
CN103020058A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种多版本数据获取方法和装置
CN102427577A (zh) * 2011-12-06 2012-04-25 安徽省徽商集团有限公司 从协同服务器向移动终端推送信息的系统及其方法
CN103294675B (zh) * 2012-02-23 2018-08-03 上海盛大网络发展有限公司 一种分布式存储系统中的数据更新方法及装置
CN103294675A (zh) * 2012-02-23 2013-09-11 上海盛霄云计算技术有限公司 一种分布式存储系统中的数据更新方法及装置
CN102646127A (zh) * 2012-02-29 2012-08-22 浪潮(北京)电子信息产业有限公司 分布式文件系统副本选择方法和装置
CN103729352A (zh) * 2012-10-10 2014-04-16 腾讯科技(深圳)有限公司 分布式文件系统对多个副本数据进行处理的方法及该系统
CN103729352B (zh) * 2012-10-10 2017-07-28 腾讯科技(深圳)有限公司 分布式文件系统对多个副本数据进行处理的方法及该系统
CN103810045B (zh) * 2012-11-09 2016-12-21 阿里巴巴集团控股有限公司 资源分配方法、资源管理器、资源服务器及系统
CN104754001A (zh) * 2013-12-30 2015-07-01 方正宽带网络服务股份有限公司 云存储系统和数据存储方法
CN105991752B (zh) * 2015-03-06 2019-06-21 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
CN105991752A (zh) * 2015-03-06 2016-10-05 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
US20180013884A1 (en) 2015-03-26 2018-01-11 Futurewei Technologies, Inc. System and Method for Mobile Core Data Services
CN107409369B (zh) * 2015-03-26 2020-02-14 华为技术有限公司 移动核心数据服务的系统和方法
US10425530B2 (en) 2015-03-26 2019-09-24 Futurewei Technologies, Inc. System and method for mobile core data services
US9774729B2 (en) 2015-03-26 2017-09-26 Futurewei Technologies, Inc. System and method for mobile core data services
CN107409369A (zh) * 2015-03-26 2017-11-28 华为技术有限公司 移动核心数据服务的系统和方法
WO2016150405A1 (en) * 2015-03-26 2016-09-29 Huawei Technologies Co., Ltd. System and method for mobile core data services
CN104820676B (zh) * 2015-04-14 2018-06-19 天脉聚源(北京)教育科技有限公司 一种判断版本号大小的方法及装置
CN104820676A (zh) * 2015-04-14 2015-08-05 天脉聚源(北京)教育科技有限公司 一种判断版本号大小的方法及装置
CN106302625A (zh) * 2015-06-26 2017-01-04 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106302625B (zh) * 2015-06-26 2019-10-25 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106557278A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 一种缓存数据持久化的方法
CN106066894A (zh) * 2016-06-23 2016-11-02 广州市百果园网络科技有限公司 数据全缓存方法和数据全缓存装置
CN106649669B (zh) * 2016-12-14 2018-06-05 咪咕数字传媒有限公司 一种基于远程字典服务器的数据存储方法及系统
CN106649669A (zh) * 2016-12-14 2017-05-10 咪咕数字传媒有限公司 一种基于远程字典服务器的数据存储方法及系统
CN106941525A (zh) * 2017-03-14 2017-07-11 郑州云海信息技术有限公司 一种在分布式存储系统中保持数据一致性的方法
CN107819870A (zh) * 2017-11-21 2018-03-20 广州视睿电子科技有限公司 增量拉取数据方法、装置、存储介质、终端设备和服务器

Also Published As

Publication number Publication date
CN101964820B (zh) 2014-04-09
WO2012045245A1 (zh) 2012-04-12

Similar Documents

Publication Publication Date Title
CN101964820B (zh) 一种保持数据一致性的方法及系统
US11397705B2 (en) Storage system configured to generate sub-volume snapshots
US9965203B1 (en) Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
JP6381801B2 (ja) 格納クライアントファイルシステム用格納ボリュームの動的スケーリング
US9671967B2 (en) Method and system for implementing a distributed operations log
JP5140633B2 (ja) 仮想化環境において生じる障害の解析方法、管理サーバ、及びプログラム
US9208189B2 (en) Distributed request processing
US10635473B2 (en) Setting support program, setting support method, and setting support device
KR101574451B1 (ko) 트랜잭션 메모리 시스템 내구성 부여
US20200019471A1 (en) Automatically setting a dynamic backup policy in a cloud environment
CN102833281A (zh) 一种分布式自增计数的实现方法、装置及系统
US11860892B2 (en) Offline index builds for database tables
CN110413694A (zh) 元数据管理方法及相关装置
CN103108020A (zh) 服务协作设备、服务协作方法和计算机可读记录介质
US9507674B2 (en) Methods for preserving state across a failure and devices thereof
CN114490677A (zh) 数据分析系统中的数据同步
CN111338688B (zh) 数据长效缓存方法、装置、计算机系统及可读存储介质
CN102833273A (zh) 临时故障时的数据修复方法及分布式缓存系统
CN112579550B (zh) 一种分布式文件系统的元数据信息同步方法及系统
US10127270B1 (en) Transaction processing using a key-value store
CN116089477B (zh) 分布式训练方法及系统
CN107368355B (zh) 虚拟机的动态调度方法和装置
US11461131B2 (en) Hosting virtual machines on a secondary storage system
CN115941708A (zh) 云端大数据存储管理方法、装置、电子设备及存储介质
US10140190B1 (en) Efficient transaction log flushing

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

Effective date of registration: 20170607

Address after: 350000, Fujian Fuzhou Cangshan District Minjiang Road No. 117 Rong Hua Di Di Di Di

Patentee after: Wu Chao

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corporation

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180314

Address after: 518000 Shenzhen, Shenzhen, Guangdong, Nanshan District Shenzhen Bay technology ecological map 2 District 9 A_2 seat 22 building

Patentee after: Gao Ying cloud technology (Shenzhen) Co., Ltd.

Address before: 350000, Fujian Fuzhou Cangshan District Minjiang Road No. 117 Rong Hua Di Di Di Di

Patentee before: Wu Chao

TR01 Transfer of patent right