一种数据对象的数据冲突识别方法技术

技术编号:20117526 阅读:25 留言:0更新日期:2019-01-16 12:01
本申请实施例公开了一种数据对象的数据冲突识别方法,本申请实施例方法包括:第一节点接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;所述第一节点根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;所述第一节点向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新。

A Data Conflict Recognition Method for Data Objects

The embodiment of this application discloses a data conflict identification method for a data object, which includes: the first node receives an update message for the first field, the first field is a field of the first data object stored by the first data storage device, and the first node updates the first word stored by the first data storage device according to the preset rules. The first node sends a field update message to the second node, which includes the updated version number so that the second node can store the backup version number of the first field according to the second data storage device and the first field update message. The updated version number is used for data conflict identification, and the version number corresponding to the backup of the first field is updated by the preset rule when the second node updates the backup of the first field.

【技术实现步骤摘要】
一种数据对象的数据冲突识别方法
本申请涉及通信领域,尤其涉及一种数据对象的数据冲突识别方法。
技术介绍
基于容灾以及数据访问时延的考虑,对于HA(HighAvailable)要求较高的数据库系统,一般会采用多数据中心(DataCenter,DC)存储方案,将同一份数据分别存储到多个DC。DC之间数据的相互复制,可以很大程度降低数据丢失的风险,当一个DC发生故障导致数据丢失的时候,可以直接通过切换业务来保证HA。然而,如果同一份数据在不同的DC出现了不一致,无法达到数据一致性,则会产生数据冲突,这对于数据库系统来说是不可接受的。因此,数据冲突识别是数据库系统中的关键问题。现有的数据冲突识别方案中,数据库系统中的每一个数据对象分配一个版本号,即同一个数据对象即使在不同的数据存储设备,其版本号是相同的。当某个数据存储设备的某数据对象被更新时,其版本号会根据预设规则更新,如版本号的值自增1。当本端数据存储设备存储的某数据对象被更新时,管理该本端数据存储设备的节点会向系统中存储该数据对象的对端数据存储设备的管理节点发送更新消息,以知会被更新后的版本号和更新后的数据对象的内容。当对端数据存储设备的管理节点接收该更新消息时,会比较更新后的版本号和存储的数据对象的版本号是否符合预设规则,如果符合,则该管理节点会使得对端数据存储系统存储更新后的数据对象的内容和更新后的版本号,用于更新数据对象和版本号,以使得两端的数据存储设备的数据对象的内容一致。一个数据对象包括多个字段,而大多数情况下,当数据对象被更新,只是其中一个或几个字段被更新。若两个数据存储设备中同一个数据对象的不同字段进行修改,两个数据存储设备各自的管理节点会将数据对象的版本号根据预设规则被更新(如版本号的值自增1),则会互相发送更新消息,更新消息中携带数据对象的更新后的版本号。当两个管理节点会根据接收到的版本号和存储的版本号对比,若对方的版本号是根据预设规则比自身存储的版本号新的版本号,则会根据对方的版本号更新自身的版本号,否则会被判定为数据冲突。由于两个版本号总是有一个大于等于另一个,因此两个管理节点总有一个会判定此为数据冲突。但是由于两个数据存储设备修改的字段是不同的,因此可以认为这种数据冲突是被误判的,在采用多数据中心存储方案的数据库系统中,该情况相当普遍,从而产生了大量的误判,影响数据库系统的性能。
技术实现思路
本申请实施例提供了一种数据对象的数据冲突识别方法,用于提高数据冲突识别的准确性。有鉴于此,本申请第一方面提供了一种数据对象的数据冲突识别方法,该方法包括:第一节点接收对第一字段的更新消息,该第一字段为该第一数据存储设备存储的第一数据对象中的一个字段。第一字段为第一数据对象中的一个字段,该第一数据对象包括多个字段组,其中包括第一字段组,第一字段组包括第一字段。当第一字段被更新时,即当第一节点接收对第一字段的更新操作时,如存在用户或者操作人员在后台修改数据,或者当有员工加班的时长被记录,或者其他字段被修改的缘故,第一字段的内容会被更新。该第一节点根据预设规则更新该第一字段对应的版本号,以得到更新后的版本号,以使得该第一字段对应该更新后的版本号。当第一字段被更新时,第一字段对应的版本号会根据预设规则被更新。在一些可行的实施例中,预设规则可以为初始版本号的值为0,每次更新时,其版本号的值会自增1,如0、1、2、3……。在一些可行的实施例中,可以为2、4、6、8、10……,或者其他更新规则,此处不做限定。需要说明的是,无论该预设规则是什么,第一节点和第二节点对于第一字段组的版本号的预设规则都是相同的。该第一节点向第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号,该第二数据存储设备存储有该第一数据对象的备份,该第一数据对象的备份包括该第一字段的备份,该第一字段的备份对应的版本号由该第二设备对第一字段的备份进行更新操作时以该预设规则进行更新,以使得该第二节点根据该第一字段的备份的版本号和该更新后的版本号进行数据冲突识别。若第二节点中的第一字段的备份的内容未被修改,其和更新后的第一字段的内容是不同的,为了保持数据的一致性,第一数据存储中心会通知第二节点该更新情况,以使得保持数据的一致性,则第一节点向该第二节点发送字段更新消息,该字段更新消息包括该更新后的版本号和该更新后的第一字段。其中更新后的版本号用于判定是否存在数据冲突,更新后的第一字段用于当不存在数据冲突时覆盖第二节点中的该第一字段的备份,以使得保持数据的一致性。结合本专利技术第一方面,本专利技术第一方面的第一种实施方式,包括:该第一节点根据该第一数据对象的各个字段的更新频率确定一个或多个字段组,该一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,该多个字段组中的任一字段组的更新频率在预制范围内。该第一节点为该第一字段所在的第一字段组分配版本号,以使得该第一字段组中的任一字段对应同一个版本号。可以为其中的每一个字段分配一个版本号,但是如果某些字段很少更新或者几乎不更新,那么会使得数据存储设备的存储压力增大,则可以根据字段的更新频率来确定字段是否需要分配版本号,或者若干个字段分配一个版本号。因此,在一些可行的实施例中,对于数据对象所有的字段,可以首先获取字段的更新频率。当获取了第一数据对象中各个字段的更新频率后,为了适应不同的应用对于版本号所引入的存储开销以及冲突识别精度的不同要求,可以根据该更新频率将第一数据对象中的多个字段分类为多个字段组,每个字段组包括一个或多个字段,其中两个字段组之间并无交集,每个字段组中各个字段的更新频率累加超过阈值。需要说明的是,如某些更新频繁的字段可以单独归为一组。需要说明的是,在实际操作的过程,需要注意使用同一版本号的多个字段在业务上尽量不相关,以使得降低同一版本号集中化被更新的概率,减少冲突发生的几率。结合本专利技术第一方面,本专利技术第一方面的第二种实施方式,包括:若该第一字段组包括第二字段,该第一节点根据该预设规则更新该第二字段对应的版本号,以得到该更新后的版本号,以使得该第二字段对应该更新后的版本号。在本申请实施例中,当确定了多个字段组后,可以为每个字段组分配一个版本号,则该字段组中的字段均共用一个版本号,当该字段组的任一字段被更新时,共用的版本号也会被更新。如第一字段组包括第二字段,第一节点根据预设规则更新第二字段对应的版本号,以得到该更新后的版本号,以使得第二字段对应更新后的版本号。结合本专利技术第一方面,本专利技术第一方面的第三种实施方式,包括:该第一节点根据该第一字段组的更新频率确定该第一字段组中任一字段对应的版本号的存储空间。在本申请实施例中,若取的预制范围合理,使得每个字段组的更新频率处于合理的范围内,使得可以为每个版本号分配合理的存储空间,以使得存储空间的利用率提高。可选的,若该第一字段组的更新频率大于该第二字段组的更新频率,则该第一字段组中任一字段对应的版本号的存储空间大于该第二字段组中任一字段对应的版本号的存储空间。结合本专利技术第一方面,本专利技术第一方面的第四种实施方式,包括:该第一节点根据该更新消息更新该第一字段,得到更新后的第一字段。结合本专利技术第一方面,本专利技术第一方面的第五种实施方式,包括:该字段更新消息包括该更新后的本文档来自技高网
...

【技术保护点】
1.一种数据对象的数据冲突识别方法,其特征在于,包括:第一节点接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;所述第一节点根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;所述第一节点向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新。

【技术特征摘要】
1.一种数据对象的数据冲突识别方法,其特征在于,包括:第一节点接收对第一字段的更新消息,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段;所述第一节点根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号,以得到更新后的版本号,以使得所述第一字段对应所述更新后的版本号;所述第一节点向第二节点发送字段更新消息,所述字段更新消息包括所述更新后的版本号,以使得所述第二节点根据第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新。2.根据权利要求1所述方法,其特征在于,所述方法还包括:所述第一节点根据所述第一数据对象的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;所述第一节点为所述第一字段所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。3.根据权利要求2所述方法,其特征在于,所述第一节点根据预设规则更新所述第一字段对应的版本号之后,还包括:若所述第一字段组包括第二字段,所述第一节点根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。4.根据权利要求3所述方法,其特征在于,所述方法还包括:所述第一节点根据所述第一字段组的更新频率确定所述第二数据存储设备中对所述第一字段组中任一字段对应的版本号的存储空间。5.根据权利要求4所述方法,其特征在于,若所述第一字段组的更新频率大于所述第二字段组的更新频率,则所述第一字段组中任一字段对应的版本号的存储空间大于所述第二字段组中任一字段对应的版本号的存储空间。6.根据权利要求1-5中任一项所述方法,其特征在于,所述第一节点接收对第一字段的更新消息之后,还包括:所述第一节点根据所述更新消息更新所述第一字段,得到更新后的第一字段。7.根据权利要求6所述方法,其特征在于,所述字段更新消息包括所述更新后的第一字段,所述更新后的第一字段用于若所述第二节点根据所述第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别的结果为无数据冲突,则更新所述第一字段的备份为所述更新后的第一字段。8.根据权利要求1-7中任一项所述方法,其特征在于,所述预设规则为所述更新后的版本号等于所述版本号的值加1。9.一种数据对象的数据冲突识别方法,其特征在于,包括:第二节点接收第一节点发送的字段更新消息,所述字段更新消息包括更新后的版本号,所述更新后的版本号由所述第一节点接收对第一字段的更新操作,并根据预设规则更新所述第一数据存储设备存储的所述第一字段对应的版本号得到的,所述第一字段为第一数据存储设备存储的第一数据对象中的一个字段,所述第二数据存储设备存储有所述第一数据对象的备份,所述第一数据对象的备份包括所述第一字段的备份,所述第一字段的备份对应的版本号由所述第二节点对第一字段的备份进行更新操作时以所述预设规则进行更新;所述第二节点根据所述第二数据存储设备存储的所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别。10.根据权利要求9所述方法,其特征在于,所述方法还包括:所述第二节点根据所述第二数据存储设备存储的所述第一数据对象的备份中的各个字段的更新频率确定一个或多个字段组,所述一个或多个字段组中的任一字段组包括一个或多个字段,其中两个不同的字段组并无交集,所述多个字段组中的任一字段组的更新频率在预制范围内;所述第二节点为所述第二数据存储设备存储的所述第一字段的备份所在的第一字段组分配版本号,以使得所述第一字段组中的任一字段对应同一个版本号。11.根据权利要求10所述方法,其特征在于,所述方法还包括:所述第二节点根据所述第一字段组的更新频率确定所述第二数据存储设备中所述第一字段组中任一字段对应的版本号的存储空间。12.根据权利要求4所述方法,其特征在于,若所述第一字段组的更新频率大于所述第二字段组的更新频率,则所述第一字段组中任一字段对应的版本号的存储空间大于所述第二字段组中任一字段对应的版本号的存储空间。13.根据权利要求9-12中任一项所述方法,其特征在于,所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别包括:若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为存在数据冲突;若根据所述预设规则所述更新后的版本号为比所述第一字段的备份的版本号更新的值,则所述第二节点对所述数据冲突识别的判定结果为无数据冲突。14.根据权利要求13所述方法,其特征在于,所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别之后,还包括:若所述数据冲突识别的结果为无数据冲突,则所述第二节点更新所述第一字段的备份的版本号为所述更新后的版本号。15.根据权利要求13或14所述方法,其特征在于,所述字段更新消息包括更新后的第一字段,所述更新后的第一字段由所述第一节点根据所述更新操作更新所述第一字段得到的;所述第二节点根据所述第一字段的备份的版本号和所述更新后的版本号进行数据冲突识别之后,还包括:若所述数据冲突识别的结果为无数据冲突,则所述第二节点更新所述第二数据存储设备中所述第一字段的备份为所述更新后的第一字段。16.根据权利要求15所述方法,其特征在于,所述第二节点更新所述第二数据存储设备中所述第一字段的备份为所述更新后的第一字段之后,还包括:若所述第一字段组包括第二字段,所述第二节点根据所述预设规则更新所述第二字段对应的版本号,以得到所述更新后的版本号,以使得所述第二字段对应所述更新后的版本号。17.根据权利要求9-16中任一项所述方法,其特征在于,所述预设规则包括所述更新后的版本号等于所述版本号的值加1。18.一种节点,其特征在于,包括:接收模块,用于接收对第一字段...

【专利技术属性】
技术研发人员:张易
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1