CN109213769B - 一种数据对象的数据冲突识别方法 - Google Patents
一种数据对象的数据冲突识别方法 Download PDFInfo
- Publication number
- CN109213769B CN109213769B CN201710530530.0A CN201710530530A CN109213769B CN 109213769 B CN109213769 B CN 109213769B CN 201710530530 A CN201710530530 A CN 201710530530A CN 109213769 B CN109213769 B CN 109213769B
- Authority
- CN
- China
- Prior art keywords
- field
- version number
- updated
- data
- backup
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据对象的数据冲突识别方法,本申请实施例方法包括:第一节点接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;所述第一节点根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;所述第一节点向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据对象的数据冲突识别方法。
背景技术
基于容灾以及数据访问时延的考虑,对于HA(High Available)要求较高的数据库系统,一般会采用多数据中心(Data Center,DC)存储方案,将同一份数据分别存储到多个DC。DC之间数据的相互复制,可以很大程度降低数据丢失的风险,当一个DC发生故障导致数据丢失的时候,可以直接通过切换业务来保证HA。然而,如果同一份数据在不同的DC出现了不一致,无法达到数据一致性,则会产生数据冲突,这对于数据库系统来说是不可接受的。因此,数据冲突识别是数据库系统中的关键问题。
现有的数据冲突识别方案中,数据库系统中的每一个数据对象分配一个版本号,即同一个数据对象即使在不同的数据存储设备,其版本号是相同的。当某个数据存储设备的某数据对象被更新时,其版本号会根据预设规则更新,如版本号的值自增1。当本端数据存储设备存储的某数据对象被更新时,管理该本端数据存储设备的节点会向系统中存储该数据对象的对端数据存储设备的管理节点发送更新消息,以知会被更新后的版本号和更新后的数据对象的内容。当对端数据存储设备的管理节点接收该更新消息时,会比较更新后的版本号和存储的数据对象的版本号是否符合预设规则,如果符合,则该管理节点会使得对端数据存储系统存储更新后的数据对象的内容和更新后的版本号,用于更新数据对象和版本号,以使得两端的数据存储设备的数据对象的内容一致。
一个数据对象包括多个字段,而大多数情况下,当数据对象被更新,只是其中一个或几个字段被更新。若两个数据存储设备中同一个数据对象的不同字段进行修改,两个数据存储设备各自的管理节点会将数据对象的版本号根据预设规则被更新(如版本号的值自增1),则会互相发送更新消息,更新消息中携带数据对象的更新后的版本号。当两个管理节点会根据接收到的版本号和存储的版本号对比,若对方的版本号是根据预设规则比自身存储的版本号新的版本号,则会根据对方的版本号更新自身的版本号,否则会被判定为数据冲突。由于两个版本号总是有一个大于等于另一个,因此两个管理节点总有一个会判定此为数据冲突。但是由于两个数据存储设备修改的字段是不同的,因此可以认为这种数据冲突是被误判的,在采用多数据中心存储方案的数据库系统中,该情况相当普遍,从而产生了大量的误判,影响数据库系统的性能。
发明内容
本申请实施例提供了一种数据对象的数据冲突识别方法,用于提高数据冲突识别的准确性。
有鉴于此,本申请第一方面提供了一种数据对象的数据冲突识别方法,该方法包括:
第一节点接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段。第一字段为第一数据对象中的一个字段,该第一数据对象包括多个字段组,其中包括第一字段组,第一字段组包括第一字段。当第一字段被更新时,即当第一节点接收对第一字段的更新操作时,如存在用户或者操作人员在后台修改数据,或者当有员工加班的时长被记录,或者其他字段被修改的缘故,第一字段的内容会被更新。
该第一节点根据预设规则更新该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号。当第一字段被更新时,第一字段对应的版本号会根据预设规则被更新。在一些可行的实施例中,预设规则可以为初始版本号的值为0,每次更新时,其版本号的值会自增1,如0、1、2、3……。在一些可行的实施例中,可以为2、4、6、8、10……,或者其他更新规则,此处不做限定。需要说明的是,无论该预设规则是什么,第一节点和第二节点对于第一字段组的版本号的预设规则都是相同的。
该第一节点向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新,以使得该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。若第二节点中的第一字段的备份的内容未被修改,其和更新后的第一字段的内容是不同的,为了保持数据的一致性,第一数据存储中心会通知第二节点该更新情况,以使得保持数据的一致性,则第一节点向该第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号和该更新后的第一字段。其中更新后的版本号用于判定是否存在数据冲突,更新后的第一字段用于当不存在数据冲突时覆盖第二节点中的该第一字段的备份,以使得保持数据的一致性。
结合本发明第一方面,本发明第一方面的第一种实施方式,包括:
该第一节点根据该第一数据对象的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内。
该第一节点为该第一字段所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。可以为其中的每一个字段分配一个版本号,但是如果某些字段很少更新或者几乎不更新,那么会使得数据存储设备的存储压力增大,则可以根据字段的更新频率来确定字段是否需要分配版本号,或者若干个字段分配一个版本号。因此,在一些可行的实施例中,对于数据对象所有的字段,可以首先获取字段的更新频率。
当获取了第一数据对象中各个字段的更新频率后,为了适应不同的应用对于版本号所引入的存储开销以及冲突识别精度的不同要求,可以根据该更新频率将第一数据对象中的多个字段分类为多个字段组,每个字段组包括一个或多个字段,其中两个字段组之间并无交集,每个字段组中各个字段的更新频率累加超过阈值。需要说明的是,如某些更新频繁的字段可以单独归为一组。需要说明的是,在实际操作的过程,需要注意使用同一版本号的多个字段在业务上尽量不相关,以使得降低同一版本号集中化被更新的概率,减少冲突发生的几率。
结合本发明第一方面,本发明第一方面的第二种实施方式,包括:
若该第一字段组包括第二字段,该第一节点根据该预设规则更新该第二字段对应的版本号,以得到该更新后的版本号,以使得该第二字段对应该更新后的版本号。在本申请实施例中,当确定了多个字段组后,可以为每个字段组分配一个版本号,则该字段组中的字段均共用一个版本号,当该字段组的任一字段被更新时,共用的版本号也会被更新。如第一字段组包括第二字段,第一节点根据预设规则更新第二字段对应的版本号,以得到该更新后的版本号,以使得第二字段对应更新后的版本号。
结合本发明第一方面,本发明第一方面的第三种实施方式,包括:
该第一节点根据该第一字段组的更新频率确定该第一字段组中任一字段对应的版本号的存储空间。在本申请实施例中,若取的预制范围合理,使得每个字段组的更新频率处于合理的范围内,使得可以为每个版本号分配合理的存储空间,以使得存储空间的利用率提高。
可选的,若该第一字段组的更新频率大于该第二字段组的更新频率,则该第一字段组中任一字段对应的版本号的存储空间大于该第二字段组中任一字段对应的版本号的存储空间。
结合本发明第一方面,本发明第一方面的第四种实施方式,包括:
该第一节点根据该更新消息更新该第一字段,得到更新后的第一字段。
结合本发明第一方面,本发明第一方面的第五种实施方式,包括:
该字段更新消息包括该更新后的第一字段,该更新后的第一字段用于若该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别的结果为无数据冲突,则更新该第一字段的备份为该更新后的第一字段。
结合本发明第一方面,本发明第一方面的第七种实施方式,包括:
可选的,该预设规则为该更新后的版本号等于该版本号的值加1。
在本申请实施例中,当第二节点接收到字段更新消息时,会判断存储的第一字段的备份的版本号和更新后的版本号是否符合预设规则。具体的,若预设规则是版本号的值自增1,则接收的更新后的版本号的值应该大于存储的第一字段组的备份的版本号,则若大于,则视为符合预设规则,若不大于,则视为不符合预设规则。
本申请第二方面提供了一种数据对象的数据冲突识别方法,包括:
第二节点接收第一节点发送的字段更新消息,该字段更新消息包括更新后的版本号,该更新后的版本号由该第一数据对象接收对第一字段的更新操作,并根据预设规则更新该第一字段对应的版本号得到的,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新;该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。
结合本发明第二方面,本发明第二方面的第一种实施方式,包括:
该第二节点根据该第一数据对象的备份中的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内;该第二节点为该第一字段的备份所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。
结合本发明第二方面,本发明第二方面的第二种实施方式,包括:
该第二节点根据该第一字段组的更新频率确定该第一字段组中任一字段对应的版本号的存储空间。
结合本发明第二方面,本发明第二方面的第三种实施方式,包括:
若该第一字段组的更新频率大于该第二字段组的更新频率,则该第一字段组中任一字段对应的版本号的存储空间大于该第二字段组中任一字段对应的版本号的存储空间。
结合本发明第二方面,本发明第二方面的第四种实施方式,包括:
若根据该预设规则该更新后的版本号为比该第一字段的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为存在数据冲突;若根据该预设规则该更新后的版本号为比该第一字段的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为无数据冲突。
结合本发明第二方面,本发明第二方面的第五种实施方式,包括:
若该数据冲突识别的结果为无数据冲突,则该第二节点更新该第一字段的备份的版本号为该更新后的版本号。
由于预设规则可以为其他规则,通过该预设规则,版本号每次更新得到的新版本号可以得到一组数列x0,x1,x2……,对于任意xi和xj,若i小于j,则可以认为xj是比xi更新的值,若根据该预设规则该更新后的版本号为比该第一字段组的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为存在数据冲突。若根据该预设规则该更新后的版本号为比该第一字段组的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为无数据冲突。
结合本发明第二方面,本发明第二方面的第六种实施方式,包括:
该字段更新消息包括更新后的第一字段,该更新后的第一字段由该第一节点根据该更新操作更新该第一字段得到的;该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别之后,还包括:若该数据冲突识别的结果为无数据冲突,则该第二节点更新该第一字段的备份为该更新后的第一字段。
在一些可行的实施例中,若该数据冲突识别的结果为无数据冲突,则第二节点可以将更新该第一字段的备份的版本号为该更新后的版本号,更新该第一字段的备份为该更新后的第一字段。
结合本发明第二方面,本发明第二方面的第七种实施方式,包括:
若该第一字段组包括第二字段,该第二节点根据该预设规则更新该第二字段对应的版本号,以得到该更新后的版本号,以使得该第二字段对应该更新后的版本号。
可选的,该预设规则包括该更新后的版本号等于该版本号的值加1。
本申请第三方面提供了一种节点,包括实现上述第一方面或第一方面任一种实施方式的多个模块,这些模块的功能可由硬件,或软件或硬件软件的结合来实现。
本申请第四方面提供了一种节点,包括实现上述第二方面或第二方面任一种实施方式的多个模块,这些模块的功能可由硬件,或软件或硬件软件的结合来实现
本申请第五方面提供了一种节点,包括:收发器、处理器和存储器;该收发器,用于接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段;该处理器,用于根据预设规则更新该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号;该收发器,还用于向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新,以使得该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别;该存储器,用于存储程序,以使得该处理器执行以上各方面的方法。
本申请第六方面提供了一种节点,包括:收发器、处理器和存储器;该收发器,用于接收第一节点发送的字段更新消息,该字段更新消息包括更新后的版本号,该更新后的版本号由该第一数据对象接收对第一字段的更新操作,并根据预设规则更新该第一字段对应的版本号得到的,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新;该处理器,用于根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别;该存储器,用于存储程序,以使得该处理器执行以上各方面的方法。
本申请的又一方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面该的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请通过当第一节点接收到对第一节点中的第一字段的更新消息时,会根据预设规则更新该第一字段的版本号,得到更新后的版本号,并向第二节点发送字段更新消息,该字段更新消息携带该更新后的版本号,以使得该第二节点根据第二节点中的第一字段的备份的版本号和更新后的版本号进行数据冲突识别,该第一数据对象包括第一字段,该第一数据对象的备份包括第一字段的备份。若第二数据存储设备存储的第一字段的备份并未接收任何更新操作,则其版本号没有变化,当接收到更新后的版本号时,不会识别其为数据冲突,从而避免了大量对于数据冲突的误判。
附图说明
图1a为本申请实施例的数据库系统的架构示意图;
图1b为本申请实施例的采用Shared-storage架构的集群数据库系统示意图;
图1c为本申请实施例的采用Shared-nothing架构的集群数据库系统示意图;
图2为本申请实施例中一种数据对象的数据冲突识别方法一个实施例示意图;
图3为本申请实施例中一种节点一个实施例示意图;
图4为本申请实施例中一种节点的另一个实施例示意图;
图5为本申请实施例中一种节点一个实施例示意图;
图6为本申请实施例中一种节点的另一个实施例示意图;
图7为本申请实施例中一种节点一个实施例示意图;
图8为本申请实施例中一种节点一个实施例示意图。
具体实施方式
本申请实施例提供了一种数据冲突识别方法及其节点,用于提高数据冲突识别的准确性。
为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所应用的数据库系统的架构如图1a所示,该数据库系统包括数据库和数据库管理系统DBMS。其中,数据库是指存储在数据存储设备中的有组织的数据集合,即按照一定的数据模型组织、存储和使用的相关联的数据集合,比如,数据库可以包括一个或者多个表数据。数据存储设备可以是一个单一存储设备,比如一个磁盘、磁盘阵列或存储节点,也可以是分布式存储器,比如由多个存储设备或存储节点组成的分布式存储系统。数据存储设备可以是节点外部的存储设备,与节点通信连接,可被节点访问,数据存储设备也可以是节点内部的存储设备,此处不做限定。
DBMS用于建立、使用和维护数据库,以及对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户可以通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。DBMS提供多种功能,可使多个应用程序和用户设备使用不同的方法,在同一时刻或不同时刻去建立,修改和询问数据库,应用程序和用户设备可以统称为客户端。DBMS所提供的功能可以包括以下几项:(1)数据定义功能,DBMS提供数据定义语言(Data Definition Language,DDL)来定义数据库结构,DDL用于刻画数据库框架,并可以被保存在数据字典中;(2)数据存取功能,DBMS提供数据操纵语言(Data ManipulationLanguage,DML),实现对数据库数据的基本存取操作,比如检索、插入、修改和删除;(3)数据库运行管理功能,DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效;(4)数据库的建立和维护功能,包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能;(5)数据库的传输,DBMS提供处理数据的传输,实现客户端与DBMS之间的通信,通常与操作系统协调完成。
基于容灾以及数据访问时延的考虑,对于高利用率(High Available,HA)要求较高的数据库系统,一般会采用分布式存储方案,比如多数据中心(Data Center,DC)存储方案。每一个DC都包含一个或多个数据存储设备,同一份数据会存储在不同数据中心的数据存储设备上。不同DC的数据存储设备可以在地理上可以相距较远,在这种情况下,数据访问可以选择距离较近的数据存储设备,降低了数据访问的时延,同时,数据存储设备之间通过数据备份,可以降低数据丢失的风险,当一个数据存储设备发生故障导致数据丢失的时候,可以从其他数据存储设备获取该数据的备份来保证HA。
对于采用多数据中心(Data Center,DC)存储方案的集群数据库系统,其通常使用两种架构,一种是共享磁盘(Shared-storage)架构,另一种是无共享(Shared-nothing)架构。图1b所示的为采用Shared-storage架构的集群数据库系统的示意图。根据图1b,每个数据中心都包括若干个节点,如图3中第一数据中心包括节点1.1-1.N,第二数据中心包括节点2.1-2.N。每个节点部署有数据库管理系统,分别为用户提供数据库的查询和修改等服务,每个数据中心的数据存储在共享数据存储设备中,且第一数据中的共享数据存储设备中的数据备份在第二数据中心的共享数据存储设备中。同一数据中心内的节点通过物理交换设备或者虚拟交换设备互联,并且均可以访问该数据中心的共享数据存储设备。共享数据存储设备可以为共享磁盘阵列。该集群数据库系统中的节点可以为物理机,比如数据库服务器,也可以为运行在抽象硬件资源上的虚拟机。若节点为物理机,则交换设备为存储区网络(Storage Area Network,SAN)交换机、以太网交换机,光纤交换机或其它物理交换设备。若节点为虚拟机,则交换设备为虚拟交换机。
图1c为采用Shared-nothing架构的集群数据库系统的示意图。根据图1c,第一数据中心和第二数据中心中的每个节点具有各自独享的硬件资源(如数据存储设备)、操作系统和数据库,节点之间通过网络来通信。该体系下,数据将根据数据库模型和应用特点被分布到各个节点上,查询任务将被分割成若干部分,在所有节点上并行执行,彼此协同计算,作为整体提供数据库服务,所有通信功能都在一个高宽带网络互联体系上实现。如同图1b所描述的共享磁盘架构一样,这里的节点既可以是物理机,也可以是虚拟机。若节点是物理机,则每个节点对应的数据存储设备可以是集成在节点内部的存储设备,也可以是节点外部的存储设备,与节点通信连接,并且可被节点访问。当数据存储设备集成在节点内部时,一个节点其实就是一台数据库服务器,比如一台对称多处理器(Symmetric Multi-Processor,SMP)服务器。该SMP服务器包括多个处理器,所有的处理器共享资源,如总线,内存和I/O系统等。数据库管理系统的功能可由一个或多个处理器执行内存中的程序来实现。在本发明所有实施例中,数据存储设备包括但不限于固态硬盘(SSD)、磁盘阵列或其他类型的非瞬态计算机可读介质。图1b和1c中虽未示出数据库,应理解,数据库存储在数据存储设备中。所属领域的技术人员可以理解一个数据库系统可能包括比图1b和1c中所示的部件更少或更多的组件,或者包括与图1b和1c中所示组件不同的组件,图1b和1c仅仅示出了与本发明实施例所公开的实现方式更加相关的组件。例如,虽然图1b中第一数据中心和第二数据中心分别包含了4个节点,但所属领域的技术人员可理解成一个数据中心可包含任何数量的节点。各节点的数据库管理系统功能可分别由运行在各节点上的软件、硬件和/或固件的适当组合来实现。
在本申请实施例中,相同的数据对象可以分别存储在不同的数据存储设备中以降低数据丢失的风险。比如,同一数据对象可以分别存储在图1b所示的第一数据中心的共享数据存储设备,以及第二数据中心的共享数据存储设备上;或者,同一数据对象可以分别存储在图1c所示的节点1对应的数据存储设备以及节点3对应的数据存储设备上。在一些情况下,同一份数据在不同的数据存储设备可能会出现了不一致,无法达到数据一致性,则会产生数据冲突,数据冲突识别是多数据存储设备存储解决方案中的关键问题。
现有的数据冲突识别方案中,数据库系统会为系统中的每一个数据对象分配一个版本号,即同一个数据对象即使在不同的数据存储设备,其版本号是相同的。当某个数据存储设备的某数据对象被更新时,其版本号会根据预设规则更新,如版本号的值自增1。当本端数据存储设备存储的某数据对象被更新时,与其对应的节点(也称为管理节点)会向系统中存储该数据对象的对端数据存储设备的对端管理节点发送更新消息,对端管理节点进行数据冲突识别。一个数据对象包括多个字段,而大多数情况下,当数据对象被更新,只是其中一个或几个字段被更新。若两个数据存储设备对同一个数据对象修改的字段不同,则会被误判为数据冲突,在采用分布式存储方案,尤其是多数据中心存储方案的集群数据库系统中该情况相当普遍,因此产生了大量的误判。
因此,本申请实施例中,当第一节点接收到对第一数据存储设备中的第一字段的更新消息时,会根据预设规则更新该第一字段的版本号,得到更新后的版本号,并向第二节点发送字段更新消息,该字段更新消息携带该更新后的版本号,以使得该第二节点根据第二数据存储设备中的第一字段的备份的版本号和更新后的版本号进行数据冲突识别,该第一数据对象包括第一字段,该第一数据对象的备份包括第一字段的备份。若第二数据存储设备存储的第一字段的备份并未接收任何更新操作,则其版本号没有变化,当接收到更新后的版本号时,不会识别其为数据冲突,从而避免了大量对于数据冲突的误判。
为便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图2,本申请实施例提供的数据冲突识别方法包括:
201、该第一节点获取第一数据存储设备存储的该第一数据对象的各个字段的更新频率。
在本申请实施例中,数据对象指的是一种结构化信息,即具有一系列不同性质或属性的事物,仅有单个值的事物(例如,宽度)不是数据对象。另一个角度,也可以理解为性质相同的数据元素的集合。如外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例如,教师、学生)、单位(例如,会计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。
如下表,整个表格可以被看作数据对象:
用户 | 用户名 | 性别 | 年龄 | 级别 | 收入 | 特长 | 工作年限 | 加班时长 |
1 | ||||||||
2 | ||||||||
… |
在本申请实施例中,如在该表格中,一个种类的信息可以看作一个字段,如用户名的信息作为一个字段。在本申请实施例中,可以为其中的每一个字段分配一个版本号,但是如果某些字段很少更新或者几乎不更新,那么会使得数据存储设备的存储压力增大,则可以根据字段的更新频率来确定字段是否需要分配版本号,或者若干个字段分配一个版本号。因此,在一些可行的实施例中,对于数据对象所有的字段,可以首先获取字段的更新频率。
如对表1中数据对象所包含的字段的更新频率如下:
表1
需要说明的是,在本申请实施例中,第一数据存储设备存储着第一数据对象,而第二数据存储设备则存储着该第一数据对象的备份,在无数据冲突的情况下,两者存储的第一数据对象中的版本号和每一个字段的内容都是一致的。则在本申请实施例中,管理第一数据存储设备的第一节点和管理第二数据存储设备的第二节点可以获取第一数据对象中各个字段的更新频率。另外,需要说明的是,数据库系统中,各个数据对象中的字段的更新频率在很长一段时间内其数值是相对固定的,在本申请实施例中,以其为一个固定值进行说明,因此在本申请实施例的过程中,不会因为有新的更新,而改变其更新频率。
202、第一节点根据该第一数据对象的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内。
在本申请实施例中,当第一节点获取了第一数据对象中各个字段的更新频率后,为了适应不同的应用对于版本号所引入的存储开销以及冲突识别精度的不同要求,可以根据该更新频率将第一数据对象中的多个字段分类为多个字段组,每个字段组包括一个或多个字段,其中两个字段组之间并无交集,每个字段组中各个字段的更新频率累加超过阈值。需要说明的是,如某些更新频繁的字段可以单独归为一组。需要说明的是,在实际操作的过程,需要注意使用同一版本号的多个字段在业务上尽量不相关,以使得降低同一版本号集中化被更新的概率,减少冲突发生的几率。
如步骤201中的表1,字段分类2中3个类别的字段可以作为一个字段组,则该字段组的更新频率为每年3次,如每年3次是在预制范围内的,则可以以该3个字段作为一个字段组,若不在预制范围内,则可以增加其他字段组成更新频率在预制范围内的。而字段分类3中的任一字段由于每天都更新,则可以一个字段独立作为一个字段组。
203、该第一节点为该第一字段所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。
在本申请实施例中,当确定了多个字段组后,可以为每个字段组分配一个版本号,则该字段组中的字段均共用一个版本号,当该字段组的任一字段被更新时,共用的版本号也会被更新。如第一字段组包括第二字段,第一节点根据预设规则更新第二字段对应的版本号,以得到该更新后的版本号,以使得第二字段对应更新后的版本号。
需要说明的是,在一些可行的实施例中,由于数据对象中的一些字段可能从不更新,若为其分配版本号没有任何意义,无需为该字段分配版本号,因此,在一些可行的实施例中,还可以将这部分从来不会更新的字段直接过滤掉,不分配任何版本号,其余则可以根据频率进行分组,并根据每个字段组的更新频率的不同分配版本号。
204、该第一节点根据该第一字段组的更新频率确定在该第一数据存储设备中该第一字段组中任一字段对应的版本号的存储空间。
在本申请实施例中,若取的预制范围合理,使得每个字段组的更新频率处于合理的范围内,使得可以为每个版本号分配合理的存储空间,以使得存储空间的利用率提高。当为不同的字段组分配了版本号后,可以根据不同字段组的更新频率为该字段组分配存储空间。对于存储空间而言,以版本号采用64bit来存储为例进行说明,在本申请实施例中,对于上述分类,可以为分类1中的字段直接过滤掉,不会分配存储空间,为分类2中3个字段为一个字段组,其版本号可以分配7bit(7bit最大能表示128,分类2是每年进行更新,最大为100),为分类3中字段组的版本号分配16bit(16bit最大能表示1024*64,分类3是以日进行更新,最大为365*100),则上述分类的字段组的版本号分配4种存储空间,分别为7bit、16bit、16bit和16bit。
205、第一节点接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段。
在本申请实施例中,第一字段为第一数据对象中的一个字段,该第一数据对象包括多个字段组,其中包括第一字段组,第一字段组包括第一字段。当第一字段被更新时,即当第一节点接收对第一字段的更新操作时,如存在用户或者操作人员在后台修改数据,或者当有员工加班的时长被记录,或者其他字段被修改的缘故,第一字段的内容会被更新。
206、该第一节点根据预设规则更新该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号。
在本申请实施例中,当第一字段被更新时,第一字段对应的版本号会根据预设规则被更新。在一些可行的实施例中,预设规则可以为初始版本号的值为0,每次更新时,其版本号的值会自增1,如0、1、2、3……。在一些可行的实施例中,可以为2、4、6、8、10……,或者其他更新规则,此处不做限定。需要说明的是,无论该预设规则是什么,第一节点和第二节点对于第一字段组的版本号的预设规则都是相同的。
207、该第一节点根据该更新消息更新该第一字段,得到更新后的第一字段。
在本申请实施例中,当第一节点接收对第一字段的更新操作时,第一字段会被更新,得到更新后的第一字段。
208、该第一节点向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号和该更新后的第一字段。
在本申请实施例中,若第二节点中的第一字段的备份的内容未被修改,其和更新后的第一字段的内容是不同的,为了保持数据的一致性,第一节点会通知第二节点该更新情况,以使得保持数据的一致性,则第一节点向该第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号和该更新后的第一字段。其中更新后的版本号用于判定是否存在数据冲突,更新后的第一字段用于当不存在数据冲突时覆盖第二数据存储设备中的该第一字段的备份,以使得保持数据的一致性。
209、该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。
在本申请实施例中,当第二节点接收到字段更新消息时,会判断存储的第一字段的备份的版本号和更新后的版本号是否符合预设规则。具体的,若预设规则是版本号的值自增1,则接收的更新后的版本号的值应该大于存储的第一字段组的备份的版本号,则若大于,则视为符合预设规则,若不大于,则视为不符合预设规则。
由于预设规则可以为其他规则,通过该预设规则,版本号每次更新得到的新版本号可以得到一组数列x0,x1,x2……,对于任意xi和xj,若i小于j,则可以认为xj是比xi更新的值,若根据该预设规则该更新后的版本号为比该第一字段组的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为存在数据冲突。若根据该预设规则该更新后的版本号为比该第一字段组的备份的版本号更新的值,则该第二节点对该数据冲突识别的判定结果为无数据冲突。
210、若该数据冲突识别的结果为无数据冲突,则该第二节点更新该第一字段组的备份的版本号为该更新后的版本号。
211、若该数据冲突识别的结果为无数据冲突,则该第二节点更新该第一字段的备份为该更新后的第一字段。
在一些可行的实施例中,若该数据冲突识别的结果为无数据冲突,则第二节点可以将更新该第一字段的备份的版本号为该更新后的版本号,更新该第一字段的备份为该更新后的第一字段。
上面对本申请实施例中以方法的角度进行描述,下面对本申请实施例中的设备的角度进行描述,请参阅图3,本发明实施例节点300的一实施例包括:
接收模块301,用于接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段。
更新模块302,用于根据预设规则更新该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号。
发送模块303,用于向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号,以使得该第二节点根据第二数据存储设备存储的该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二节点对第一字段的备份进行更新操作时以该预设规则进行更新。
请参考图4,在一些实施例中,该节点300还包括:
第一确定模块304,用于根据该第一数据对象的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内。
分配模块305,用于为该第一字段所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。
第二确定模块306,用于根据该第一字段组的更新频率确定该第二数据存储设备中对该第一字段组中任一字段对应的版本号的存储空间。
则该更新模块302,还用于若该第一字段组包括第二字段,该第一数据存储设备根据该预设规则更新该第二字段对应的版本号,以得到该更新后的版本号,以使得该第二字段对应该更新后的版本号。
该更新模块302,还用于根据该更新消息更新该第一字段,得到更新后的第一字段。
请参考图5,在一些实施例中,该节点400还包括:
接收模块401,用于接收第一节点发送的字段更新消息,该字段更新消息包括更新后的版本号,该更新后的版本号由该第一数据对象接收对第一字段的更新操作,并根据预设规则更新该第一数据存储设备存储的该第一字段对应的版本号得到的,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新。
识别模块402,用于根据该第二数据存储设备存储的该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。
请参考图6,在一些实施例中,该节点400还包括:
第一确定模块403,用于根据该第二数据存储设备存储的该第一数据对象的备份中的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内。
分配模块404,用于为该第二数据存储设备存储的该第一字段的备份所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。
第二确定模块405,用于根据该第一字段组的更新频率确定该第二数据存储设备中该第一字段组中任一字段对应的版本号的存储空间。
更新模块406,用于若该数据冲突识别的结果为无数据冲突,则更新该第二数据存储设备中该第一字段的备份的版本号为该更新后的版本号。
该字段更新消息包括更新后的第一字段,该更新后的第一字段由该第一数据存储设备根据该更新操作更新该第一字段得到的。
该更新模块406,还用于若该数据冲突识别的结果为无数据冲突,更新该第一字段的备份为该更新后的第一字段。
该更新模块406,还用于若该第一字段组包括第二字段,根据该预设规则更新该第二字段对应的版本号,以得到该更新后的版本号,以使得该第二字段对应该更新后的版本号。
该识别模块402具体用于:
若根据该预设规则该更新后的版本号为比该第一字段的备份的版本号更新的值,则对该数据冲突识别的判定结果为存在数据冲突。
若根据该预设规则该更新后的版本号为比该第一字段的备份的版本号更新的值,则对该数据冲突识别的判定结果为无数据冲突。
上面从模块化功能实体的角度对本申请实施例中的设备的角度进行描述,下面从硬件处理的角度对本申请实施例进行描述,请参阅图7,本申请实施例提供了一种节点500:
收发器501、处理器502和存储器503。
该收发器501,用于接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段。
该处理器502,用于根据预设规则更新该第一数据存储设备存储的该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号。
该收发器501,还用于向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号,以使得该第二节点根据第二数据存储设备存储的该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二节点对第一字段的备份进行更新操作时以该预设规则进行更新。
该存储器503,用于存储程序,以使得该处理器执行其功能。
请参阅图7,本申请实施例提供了一种节点600,包括:
收发器601、处理器602和存储器603。
该收发器601,用于接收第一节点发送的字段更新消息,该字段更新消息包括该更新后的版本号,以使得该第二节点根据第二数据存储设备存储的该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二节点对第一字段的备份进行更新操作时以该预设规则进行更新。
该处理器602,用于根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。
该存储器603,用于存储程序,以使得该处理器执行其功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (32)
1.一种数据对象的数据冲突识别方法,其特征在于,包括:
第一节点接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;
所述第一节点根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;
所述第一节点向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突,否则所述第二节点对所述数据冲突识别的判定结果为无数据冲突。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述第一节点根据所述第一数据对象的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;
所述第一节点为所述第一字段所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。
3.根据权利要求2所述方法,其特征在于,所述第一节点根据预设规则更新所述第一字段对应的版本号之后,还包括:
若所述第一字段组包括第二字段,所述第一节点根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。
4.根据权利要求3所述方法,其特征在于,所述方法还包括:
所述第一节点根据所述第一字段组的更新频率确定所述第二数据存储设备中对所述第一字段组中任一字段对应的版本号的存储空间。
5.根据权利要求4所述方法,其特征在于,若所述第一字段组的更新频率大于第二字段组的更新频率,则所述第一字段组中任一字段对应的版本号的存储空间大于所述第二字段组中任一字段对应的版本号的存储空间。
6.根据权利要求1-5中任一项所述方法,其特征在于,所述第一节点接收对第一字段的更新消息之后,还包括:
所述第一节点根据所述更新消息更新所述第一字段,得到更新后的第一字段。
7.根据权利要求6所述方法,其特征在于,所述字段更新消息包括所述更新后的第一字段,所述更新后的第一字段用于若所述第二节点根据所述第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别的结果为无数据冲突,则更新所述第一字段的备份为所述更新后的第一字段。
8.根据权利要求1-5中任一项所述方法,其特征在于,所述预设规则为所述更新后的版本号等于所述版本号的值加1。
9.一种数据对象的数据冲突识别方法,其特征在于,包括:
第二节点接收第一节点发送的字段更新消息,所述字段更新消息包括更新后的版本号,所述更新后的版本号由所述第一节点接收对第一字段的更新操作,并根据预设规则更新第一数据存储设备存储的所述第一字段对应的版本号得到的,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段,第二数据存储设备存储有所述第一数据对象的备份,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;
所述第二节点根据所述第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别;
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突,否则所述第二节点对所述数据冲突识别的判定结果为无数据冲突。
10.根据权利要求9所述方法,其特征在于,所述方法还包括:
所述第二节点根据所述第二数据存储设备存储的所述第一数据对象的备份中的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;
所述第二节点为所述第二数据存储设备存储的所述第一字段的备份所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。
11.根据权利要求10所述方法,其特征在于,所述方法还包括:
所述第二节点根据所述第一字段组的更新频率确定所述第二数据存储设备中所述第一字段组中任一字段对应的版本号的存储空间。
12.根据权利要求9所述方法,其特征在于,若所述第一字段组的更新频率大于第二字段组的更新频率,则所述第一字段组中任一字段对应的版本号的存储空间大于所述第二字段组中任一字段对应的版本号的存储空间。
13.根据权利要求9-12中任一项所述方法,其特征在于,所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别包括:
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突;
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为无数据冲突。
14.根据权利要求13所述方法,其特征在于,所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别之后,还包括:
若所述数据冲突识别的结果为无数据冲突,则所述第二节点更新所述第一字段的备份的版本号为所述更新后的版本号。
15.根据权利要求13所述方法,其特征在于,所述字段更新消息包括更新后的第一字段,所述更新后的第一字段由所述第一节点根据所述更新操作更新所述第一字段得到的;
所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别之后,还包括:
若所述数据冲突识别的结果为无数据冲突,则所述第二节点更新所述第二数据存储设备中所述第一字段的备份为所述更新后的第一字段。
16.根据权利要求15所述方法,其特征在于,所述第二节点更新所述第二数据存储设备中所述第一字段的备份为所述更新后的第一字段之后,还包括:
若所述第一字段组包括第二字段,所述第二节点根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。
17.根据权利要求9-12中任一项所述方法,其特征在于,所述预设规则包括所述更新后的版本号等于所述版本号的值加1。
18.一种数据库服务器,其特征在于,包括:
接收模块,用于接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;
更新模块,用于根据预设规则更新所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;
发送模块,用于向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突,否则所述第二节点对所述数据冲突识别的判定结果为无数据冲突。
19.根据权利要求18所述数据库服务器,其特征在于,所述数据库服务器还包括:
第一确定模块,用于根据所述第一数据对象的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;
分配模块,用于为所述第一字段所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。
20.根据权利要求19所述数据库服务器,其特征在于,
所述更新模块,还用于若所述第一字段组包括第二字段,根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。
21.根据权利要求20所述数据库服务器,其特征在于,所述数据库服务器还包括:
第二确定模块,用于根据所述第一字段组的更新频率确定所述第二数据存储设备中对所述第一字段组中任一字段对应的版本号的存储空间。
22.根据权利要求18-21中任一项所述数据库服务器,其特征在于,
所述更新模块,还用于根据所述更新消息更新所述第一字段,得到更新后的第一字段。
23.一种数据库服务器,其特征在于,包括:
接收模块,用于接收第一节点发送的字段更新消息,所述字段更新消息包括更新后的版本号,所述更新后的版本号由第一数据对象接收对第一字段的更新操作,并根据预设规则更新第一数据存储设备存储的所述第一字段对应的版本号得到的,所述第一字段为所述第一数据存储设备存储的第一数据对象中的一个字段,第二数据存储设备存储有所述第一数据对象的备份,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;
识别模块,用于根据所述第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则对所述数据冲突识别的判定结果为存在数据冲突,否则对所述数据冲突识别的判定结果为无数据冲突。
24.根据权利要求23所述数据库服务器,其特征在于,所述数据库服务器还包括:
第一确定模块,用于根据所述第二数据存储设备存储的所述第一数据对象的备份中的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;
分配模块,用于为所述第二数据存储设备存储的所述第一字段的备份所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。
25.根据权利要求24所述数据库服务器,其特征在于,所述数据库服务器还包括:
第二确定模块,用于根据所述第一字段组的更新频率确定所述第二数据存储设备中所述第一字段组中任一字段对应的版本号的存储空间。
26.根据权利要求23-25中任一项所述数据库服务器,其特征在于,所述识别模块具体用于:
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则对所述数据冲突识别的判定结果为存在数据冲突;
若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则对所述数据冲突识别的判定结果为无数据冲突。
27.根据权利要求26所述数据库服务器,其特征在于,所述数据库服务器还包括:
更新模块,用于若所述数据冲突识别的结果为无数据冲突,则更新所述第二数据存储设备中所述第一字段的备份的版本号为所述更新后的版本号。
28.根据权利要求26所述数据库服务器,其特征在于,所述字段更新消息包括更新后的第一字段,所述更新后的第一字段由所述第一数据存储设备根据所述更新操作更新所述第一字段得到的;
所述数据库服务器还包括:
更新模块,还用于若所述数据冲突识别的结果为无数据冲突,更新所述第一字段的备份为所述更新后的第一字段。
29.根据权利要求28所述数据库服务器,其特征在于,
所述更新模块,还用于若所述第一字段组包括第二字段,根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。
30.一种数据库服务器,其特征在于,包括:
收发器、处理器和存储器;
所述收发器,用于接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;
所述处理器,用于根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;
所述收发器,还用于向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新,若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突,否则所述第二节点对所述数据冲突识别的判定结果为无数据冲突;
所述存储器,用于存储程序,以使得所述处理器执行所述权利要求1-8中任一项所述的方法。
31.一种数据库服务器,其特征在于,包括:
收发器、处理器和存储器;
所述收发器,用于接收第一节点发送的字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得第二节点根据第二数据存储设备存储的第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;
所述处理器,用于根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则对所述数据冲突识别的判定结果为存在数据冲突,否则对所述数据冲突识别的判定结果为无数据冲突;
所述存储器,用于存储程序,以使得所述处理器执行所述权利要求9-17中任一项所述的方法。
32.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710530530.0A CN109213769B (zh) | 2017-06-30 | 2017-06-30 | 一种数据对象的数据冲突识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710530530.0A CN109213769B (zh) | 2017-06-30 | 2017-06-30 | 一种数据对象的数据冲突识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213769A CN109213769A (zh) | 2019-01-15 |
CN109213769B true CN109213769B (zh) | 2022-04-29 |
Family
ID=64991733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710530530.0A Active CN109213769B (zh) | 2017-06-30 | 2017-06-30 | 一种数据对象的数据冲突识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213769B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100189A (zh) * | 2020-09-16 | 2020-12-18 | 南京亚信软件有限公司 | 数据更新冲突的检测方法、装置以及电子设备 |
CN115344585B (zh) * | 2022-08-03 | 2024-03-19 | 盐城天眼察微科技有限公司 | 数据版本管理方法、装置以及存储介质和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127869B (zh) * | 2007-09-20 | 2010-06-16 | 中兴通讯股份有限公司 | 一种电子业务指南内容信息的更新和传输方法 |
CN102299904A (zh) * | 2010-06-23 | 2011-12-28 | 阿里巴巴集团控股有限公司 | 一种实现业务数据备份的系统及方法 |
CN105743970A (zh) * | 2015-12-31 | 2016-07-06 | 武汉传神信息技术有限公司 | 分布式系统异步式数据同步的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874001B2 (en) * | 2001-10-05 | 2005-03-29 | International Business Machines Corporation | Method of maintaining data consistency in a loose transaction model |
US7606881B2 (en) * | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US9275067B2 (en) * | 2009-03-16 | 2016-03-01 | International Busines Machines Corporation | Apparatus and method to sequentially deduplicate data |
CN103795754B (zh) * | 2012-10-31 | 2017-08-25 | 中国电信股份有限公司 | 多系统间的数据同步方法和系统 |
US9183148B2 (en) * | 2013-12-12 | 2015-11-10 | International Business Machines Corporation | Efficient distributed cache consistency |
CN106802939B (zh) * | 2016-12-30 | 2020-04-03 | 华为技术有限公司 | 一种解决数据冲突的方法和系统 |
-
2017
- 2017-06-30 CN CN201710530530.0A patent/CN109213769B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127869B (zh) * | 2007-09-20 | 2010-06-16 | 中兴通讯股份有限公司 | 一种电子业务指南内容信息的更新和传输方法 |
CN102299904A (zh) * | 2010-06-23 | 2011-12-28 | 阿里巴巴集团控股有限公司 | 一种实现业务数据备份的系统及方法 |
CN105743970A (zh) * | 2015-12-31 | 2016-07-06 | 武汉传神信息技术有限公司 | 分布式系统异步式数据同步的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109213769A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447097A (zh) | 数据采集方法及系统 | |
CN112506870B (zh) | 数据仓库增量更新方法、装置及计算机设备 | |
CN110244901B (zh) | 任务分配方法及装置、分布式存储系统 | |
CN110543512B (zh) | 一种信息同步方法,装置及系统 | |
CN106126583A (zh) | 一种分布式图数据库的集群强一致性处理方法及系统 | |
CN109213769B (zh) | 一种数据对象的数据冲突识别方法 | |
CN105242983A (zh) | 一种数据存储方法以及一种数据存储管理服务器 | |
CN111045811A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN105491078A (zh) | Soa系统中的数据处理方法及装置、soa系统 | |
US7895247B2 (en) | Tracking space usage in a database | |
CN111010318A (zh) | 发现物联网终端设备失联的方法、系统和设备影子服务器 | |
CN111291018B (zh) | 数据管理方法、装置、设备及存储介质 | |
CN111104250B (zh) | 用于数据处理的方法、设备和计算机可读介质 | |
CN107277087B (zh) | 数据处理方法及装置 | |
CN114153862A (zh) | 业务数据处理方法、装置、设备及存储介质 | |
US10379780B2 (en) | Statistics management for scale-out storage | |
CN107465706B (zh) | 一种基于无线通信网络的分布式数据对象存储装置 | |
CN108037897B (zh) | 一种元数据扩散的方法、计算机装置及可读存储介质 | |
CN108574592B (zh) | 一种基于电信云的资源管理方法及装置 | |
CN115481097A (zh) | 实现海量流量下实时数据报表的方法、装置和计算机设备 | |
CN105099753A (zh) | 网络管理系统及其处理业务的方法 | |
CN112685157B (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN110209475B (zh) | 数据采集方法及装置 | |
DE112016003309T5 (de) | Abonnementdienst zum Überwachen von Änderungen in fernen Inhalten | |
CN111240577A (zh) | 基于mpp数据库的数据多分片存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |