CN116680281A - 数据一致性校验方法、装置、计算机设备和存储介质 - Google Patents
数据一致性校验方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116680281A CN116680281A CN202310538549.5A CN202310538549A CN116680281A CN 116680281 A CN116680281 A CN 116680281A CN 202310538549 A CN202310538549 A CN 202310538549A CN 116680281 A CN116680281 A CN 116680281A
- Authority
- CN
- China
- Prior art keywords
- data block
- sequence
- identification
- target
- identification sequence
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012795 verification Methods 0.000 title abstract description 25
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 238000007689 inspection Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据一致性校验方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;标识序列是数据块的数据更新时生成的、用于表征当前数据块更新时目标数据块组中各数据块的更新时序;根据目标数据块组对应的基准标识序列和预设的序列匹配规则,将基准标识序列与各数据块当前记录的标识序列进行匹配处理,得到各数据块的匹配结果;基准标识序列用于表征目标数据块组的全局更新时序;根据各数据块的匹配结果确定目标数据块组的数据一致性校验结果。采用本方法能够节约资源开销。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据一致性校验方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
分布式存储系统中通常存在具有更新联动关系的数据块,如纠删码(ErasureCoding,EC)模式中同一校验计算组内的数据块等,各具有更新联动关系的数据块组成关联数据块组。由于分布式存储系统可能因软件或硬件故障而导致数据存储异常,为了监测存储数据的正确性,通常需要定期或不定期对关联数据块组中各数据块进行数据一致性校验或数据一致性巡检。
相关技术中,可以通过关联数据块组中各数据块记录的时间戳或版本号等数据版本信息进行数据一致性校验。数据写入时,理论上各数据块将记录相同的数据版本信息。若各数据块当前记录的数据版本信息不同,则数据一致性校验失败。
然而,采用时间戳或版本号等数据版本信息进行数据一致性校验的方法,当对关联数据块组内任意数据块写入数据时,需要同时对关联数据块组内全部数据块写入新的数据版本信息,才能满足关联数据块组内数据一致性监测的要求,导致资源开销较大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节约资源开销的数据一致性校验方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据一致性校验方法。所述方法包括:
响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;所述标识序列是所述数据块的数据更新时生成的、用于表征当前数据块更新时所述目标数据块组中各数据块的更新时序;
根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果;所述基准标识序列用于表征所述目标数据块组的全局更新时序;
根据各所述数据块的匹配结果确定所述目标数据块组的数据一致性校验结果。
上述方法中,采用表征各数据块更新时序的标识序列作为数据版本信息进行数据一致性校验,当写入数据时,仅对需更新数据的数据块写入新的标识序列即可,不需要对不更新数据的数据块写入新的标识序列,因此,基于上述方式进行数据一致校验,可以节约资源开销。
在其中一个实施例中,所述根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果,包括:
从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;
针对每个所述数据块,将所述基准标识序列中、所述数据块的标识信息之前的标识信息确定为待移除标识信息;
从所述基准标识序列中移除所述待移除标识信息,得到待匹配序列,并从所述数据块当前记录的标识序列中移除所述待移除标识信息,得到待校验标识序列;
将所述待匹配序列与所述待校验标识序列进行比对,得到所述数据块的匹配结果。
上述实施例中,根据各数据块对应的待校验标识序列和待匹配序列进行比对,得到的各数据块的匹配结果,可以准确反映出目标数据组内是否存在数据异常,也即可以得到准确的数据一致性校验结果,因而本方法可以兼顾低开销和校验准确度。
在其中一个实施例中,所述方法还包括:
响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块,并从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;
将所述目标数据块组对应的基准标识序列中,所述目标数据块的标识信息移至所述基准标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
上述实施例中,在数据块更新时,可以从校验块中读取表征目标数据块组的全局更新时序的基准标识序列,并基于需更新的数据块的标识信息对基准标识序列进行更新。在数据一致性巡检时,可以基于校验块中的基准标识序列和各数据块当前记录的标识序列得到一致性校验结果,兼顾低开销和校验准确度。
在其中一个实施例中,所述方法还包括:
响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块;
根据所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列;
将所述参考标识序列中,所述目标数据块的标识信息移至所述参考标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
上述实施例中,可以基于其它数据块的标识序列和需更新的数据块的标识信息,生成新的标识序列,在计算机设备采用的写入方式为不从校验块读取旧校验码的场景下,可以避免额外从校验块中读取数据,节约资源开销。
在其中一个实施例中,所述根据所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列,包括:
将所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列作为候选标识序列,计算任意两个所述候选标识序列的局部最长公共子序列;
从各所述局部最长公共子序列中,确定出全局最长公共子序列,并在包含所述全局最长公共子序列的候选标识序列中,确定参考标识序列。
上述实施例中,通过从包含最长公共子序列的其它标识序列中确定出参考标识序列,该参考标识序列可以表征或近似表征目标数据块组的全局更新时序,由此,可以避免从校验块中额外读取数据,兼顾低开销和准确性。
在其中一个实施例中,所述基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新,包括:
根据预设的映射规则,确定所述目标标识序列对应的目标索引标识;
将所述目标数据块当前记录的标识序列对应的索引标识,更新为所述目标索引标识。
上述实施例中,通过将标识序列映射为索引标识,从而可以在数据块和校验块中记录标识序列对应的索引标识,索引标识所占内存较小,因而可以节约内存开销。并且,分布式存储系统内各冗余组(子组宽度相同时)之间可以共享序列映射表,进一步节约内存开销。
第二方面,本申请还提供了一种数据一致性校验装置。所述装置包括:
获取模块,用于响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;所述标识序列是所述数据块的数据更新时生成的、用于表征当前数据块更新时所述目标数据块组中各数据块的更新时序;
匹配模块,用于根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果;所述基准标识序列用于表征所述目标数据块组的全局更新时序;
第一确定模块,用于根据各所述数据块的匹配结果确定所述目标数据块组的数据一致性校验结果。
在其中一个实施例中,所述匹配模块具体用于:
从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;针对每个所述数据块,将所述基准标识序列中、所述数据块的标识信息之前的标识信息确定为待移除标识信息;从所述基准标识序列中移除所述待移除标识信息,得到待匹配序列,并从所述数据块当前记录的标识序列中移除所述待移除标识信息,得到待校验标识序列;将所述待匹配序列与所述待校验标识序列进行比对,得到所述数据块的匹配结果。
在其中一个实施例中,所述匹配模块具体用于:
在所述待匹配序列与所述待校验标识序列不同的情况下,确定所述数据块的匹配结果为匹配失败;在所述待匹配序列与所述待校验标识序列相同的情况下,确定所述数据块的匹配结果为匹配成功。
在其中一个实施例中,所述装置还包括:
第二确定模块,用于响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块,并从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;
第一更新模块,用于将所述目标数据块组对应的基准标识序列中,所述目标数据块的标识信息移至所述基准标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
在其中一个实施例中,所述装置还包括:
第三确定模块,用于响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块;
第四确定模块,用于根据所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列;
第二更新模块,用于将所述参考标识序列中,所述目标数据块的标识信息移至所述参考标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
在其中一个实施例中,所述第四确定模块具体用于:
将所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列作为候选标识序列,计算任意两个所述候选标识序列的局部最长公共子序列;从各所述局部最长公共子序列中,确定出全局最长公共子序列,并在包含所述全局最长公共子序列的候选标识序列中,确定参考标识序列。
在其中一个实施例中,所述第一更新模块或第二更新模块具体用于:
根据预设的映射规则,确定所述目标标识序列对应的目标索引标识;将所述目标数据块当前记录的标识序列对应的索引标识,更新为所述目标索引标识。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法的步骤。
上述数据一致性校验方法、装置、计算机设备、存储介质和计算机程序产品,通过在数据块组内任意数据块更新时,根据数据块组中各数据块的标识信息生成表征各数据块当时的更新时序的标识序列,并记录在需更新的数据块中,还可记录在校验块或其它数据库中。在数据一致性校验时,计算机设备可以从校验块或其它数据库中获取表征目标数据块组的全局更新时序的基准标识序列,与各数据块当前记录的标识序列进行匹配。由于标识序列可以表征各数据块的更新时序,若某数据块记录的标识序列表征的更新时序,与基准标识序列表征的更新时序存在冲突,则数据一致性校验失败,说明数据块组可能因系统故障而出现数据异常现象。本方法中,采用表征各数据块更新时序的标识序列作为数据版本信息进行数据一致性校验,当写入数据时,仅对需更新数据的数据块写入新的标识序列即可,不需要对不更新数据的数据块写入新的标识序列,因此,基于上述方式进行数据一致性校验,可以节约资源开销。
附图说明
图1为一个实施例中数据一致性校验方法的流程示意图;
图2为一个实施例中匹配处理的流程示意图;
图3为另一个实施例中数据一致性校验方法的流程示意图;
图4为另一个实施例中数据一致性校验方法的流程示意图;
图5为一个实施例中数据一致性校验装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,在具体介绍本申请实施例的技术方案之前,先对本申请实施例基于的技术背景或者技术演进脉络进行介绍。由于分布式存储系统可能因软件或硬件故障而导致数据异常,为了监测数据的正确性,通常需要定期或不定期对关联数据块组(或冗余组)中各数据块进行数据一致性校验或数据一致性巡检。相关技术中,可以通过关联数据块组中各数据块记录的时间戳或版本号等数据版本信息进行数据一致性校验。然而,该方法存在资源开销大,严重降低分布式存储系统写性能的问题。例如,对于冗余配比为N+M(即N个数据块和M个校验块)的纠删码系统,当对N个数据块中任意数据块写入数据时,需在该N个数据块和M个校验块中记录当前时间戳(或版本号),一般可作为元数据的一部分进行固化存储。在数据一致性校验时,可以将各数据块当前记录的时间戳进行比对,若时间戳不同,则数据一致性校验失败,即存在数据丢失或元数据记录错误等数据异常现象。业务人员可以基于一致性校验结果及时排查故障,保障分布式存储系统的正常运行。然而,对于随机小写应用的场景,一般仅需对部分数据块写入数据,而基于时间戳的方法,每次写入数据均需对全部数据块写入时间戳,将消耗大量资源,导致系统写性能降低。
基于该背景,申请人通过长期的研发以及实验验证,提出本申请的数据一致性校验方法,在数据块组内任意数据块更新时,根据数据块组中各数据块的标识信息生成表征各数据块更新时序的标识序列,并记录在更新数据的数据块和校验块中。在数据一致性校验时,可以从校验块中获取表征目标数据块组的全局更新时序的基准标识序列,与各数据块当前记录的标识序列进行匹配。由于标识序列可以表征各数据块的更新时序,若某数据块记录的标识序列表征的更新时序,与基准标识序列表征的更新时序存在冲突,则数据一致性校验失败,说明数据块组可能因系统故障而出现数据异常现象。本方法中,采用表征各数据块更新时序的标识序列作为数据版本信息进行数据一致性校验,当写入数据时,仅对需更新数据的数据块写入新的标识序列即可,不需要对不更新数据的数据块写入新的标识序列,因而基于上述方式进行数据一致性校验可以节约资源开销。另外,需要说明的是,本申请技术问题的发现以及下述实施例介绍的技术方案,申请人均付出了大量的创造性劳动。
在一个实施例中,如图1所示,提供了一种数据一致性校验方法,该方法可以应用于分布式存储系统中的计算机设备。计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备、服务器、服务器集群等。本实施例中,该方法包括以下步骤:
步骤101,响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列。
在实施中,目标数据块组可以是一个数据条带,包含数据块和校验块;或者,目标数据块组也可以是对数据条带包含的数据块进行分组得到的数据块组,即,目标数据块组中仅包含数据块、不包含校验块。例如,对于冗余配比为N+M(如4+2)的纠删码模式的系统,目标数据块组可以包含N个数据块和M个校验块。在一些示例中,若冗余组内的数据块较多,如对于20+2模式(即N=20),可以将各数据块划分为多个子组,如划分为5个子组,每个子组内包含4个数据块(子组宽度为4),则每个子组即为一个目标数据块组,此时,每个目标数据块组仅包含数据块,不包含校验块。数据块分组方法可以是将一个冗余组内的数据块按照逻辑地址由低到高的顺序划分为多个目标子组宽度(如4)的子组。
目标数据块组中各数据块具有标识信息,各标识信息组成的序列即为标识序列。例如,对于包含4个数据块的目标数据块组,各数据块的标识信息可以分别设为1、2、3、4(也可以采用其它形式的标识),标识序列可以为(1,2,3,4)或(2,1,3,4)等。各数据块当前记录的标识序列是该数据块的数据更新时生成的,可以用于表征该数据块更新时、目标数据块组中各数据块的更新时序。标识序列可以作为数据块的元数据进行固化存储。标识序列中各数据块的标识信息可以是由数据块的更新时间从近到远进行依次排序,也即,标识信息排序在前的数据块的更新时间不早于(可以晚于,即更新时间更近,或等于)排序在后的数据块的更新时间。若每次更新数据(写入数据)时仅对一个数据块更新,则该数据块的标识序列中,如(1,2,3,4)中,在该数据块更新的这一刻,排序在首位的标识信息1对应的数据块(如记为D1)的更新时间相对最近(由于数据块在更新时生成标识序列,因而当前数据块即为排在首位的数据块),排序在尾的标识信息为4对应的数据块D4的更新时间相对最远(最早)。可以理解的,若每次更新数据时对不止1个数据块进行更新,则同时更新的数据块可以记录相同的标识序列,如数据块D3和D4同时更新,其记录的标识序列可以均为(3,4,1,2),或均为(4,3,1,2)。需要说明的是,同时更新的数据块中,记录的标识序列相同。
可选的,可以设置数据一致性校验周期,定时自动触发数据一致性校验请求,也可以由用户主动触发数据一致性校验请求。计算机设备可以响应于数据一致性校验请求,向各数据块发送读请求,以获取各数据块当前记录的标识序列。可以理解的,数据块可以记录有标识序列本身,也可以记录标识序列对应的索引标识。若数据块记录的是标识序列对应的索引标识,则计算机设备可以获取各数据块当前记录的索引标识,并基于预设的映射规则,确定出该索引标识对应的标识序列。
步骤102,根据目标数据块组对应的基准标识序列和预设的序列匹配规则,将基准标识序列与各数据块当前记录的标识序列进行匹配处理,得到各数据块的匹配结果。
其中,基准标识序列用于表征目标数据块组的全局更新时序。全局更新时序可以反映目标数据块组中各数据块的最新更新顺序。由于数据块记录的标识序列为该数据块更新时生成的,可以表征当时各数据块的更新时序,因而,在校验时刻之前,离校验时刻最近进行了数据更新的数据块记录的标识序列即可表征各数据块的最新更新顺序。为了可以获取到表征目标数据块组的全局更新时序的基准标识序列,可以在数据更新时,将对更新数据块生成的标识序列,进行固化存储,如存储至计算机设备本地,或存储至目标数据块组对应的校验块中(即N+M模式中的M个校验块,可以作为校验块的元数据进行存储)。由此,计算机设备可以从本地数据库或校验块中获取到可以表征目标数据块组的全局更新时序的基准标识序列。
在实施中,计算机设备可以将目标数据块组对应的基准标识序列,与各数据块当前记录的标识序列进行匹配处理。若某数据块与基准表示序列匹配不一致,说明该数据块当前记录的标识序列表征的各数据块的更新时序,与基准标识序列表征的更新时序存在冲突;若匹配一致,则不存在冲突。由此,可以得到每个数据块的匹配结果。
步骤103,根据各数据块的匹配结果确定目标数据块组的数据一致性校验结果。
在实施中,计算机设备确定出各数据块的匹配结果后,可以基于匹配结果确定数据一致性校验结果。例如,若全部数据块均匹配成功,则可以将数据一致性校验结果确定为校验成功;若任意一个数据块匹配失败,则可以将数据一致性校验结果确定为校验失败,说明目标数据块组中存在数据异常现象。计算机设备可以输出校验成功或失败的提示信息,以及匹配失败的数据块标识,以提醒业务及时排查系统故障。
上述数据一致性校验方法中,通过在数据块组内任意数据块更新时,根据数据块组中各数据块的标识信息生成表征各数据块当时的更新时序的标识序列,并记录在更新数据的数据块中,还可记录在校验块或其它数据库中。在数据一致性校验时,计算机设备可以从校验块或其它数据库中获取基准标识序列,与各数据块当前记录的标识序列进行匹配。由于标识序列可以表征各数据块的更新时序,若某数据块记录的标识序列表征的更新时序,与基准标识序列表征的数据块组的全局更新时序存在冲突,则数据一致性校验失败,说明数据块组可能因系统故障而出现数据异常现象。本方法中,采用表征各数据块更新时序的标识序列作为数据版本信息进行数据一致性校验,当写入数据时,仅对需更新数据的数据块写入新的标识序列即可,不需要对不更新数据的数据块写入新的标识序列,因此,基于上述方式进行数据一致性校验,可以节约资源开销。
在一个实施例中,如图2所示,步骤102中的匹配处理过程具体包括如下步骤:
步骤201,从目标数据块组对应的校验块中获取目标数据块组对应的基准标识序列。
在实施中,在对目标数据块组中任意数据块进行数据更新时,可以对需更新的数据块生成表征当时各数据块的更新时序的标识序列,并将该标识序列作为该更新的数据块的元数据记录在该更新的数据块中,以及可以将该标识序列作为校验块的元数据,记录在校验块中。也即,无论哪个数据块更新,校验块中都将记录最新更新的标识序列,即可表征全局更新时序的序列。因而,计算机设备可以从校验块中获取表征目标数据组的全局更新时序的基准标识序列。
步骤202,针对每个数据块,将基准标识序列中、数据块的标识信息之前的标识信息确定为待移除标识信息。
在实施中,针对每个数据块,计算机设备可以将基准标识序列中、该数据块的标识信息之前的标识信息确定为待移除标识信息。例如,若基准标识序列为(3,2,1,4),当对数据块D2进行匹配时,可以将该基准标识序列中,D2的标识信息“2”之前的标识信息“3”确定为待移除标识信息。该示例中,对于数据块D3,由于其标识信息“3”为序列首位,因而其对应的待移除标识信息为空。
步骤203,从基准标识序列中移除待移除标识信息,得到待匹配序列,并从数据块当前记录的标识序列中移除待移除标识信息,得到待校验标识序列。
在实施中,计算机设备可以从基准标识序列中移除待移除标识信息。如前述示例中,对于数据块D2,从基准标识序列中移除“3”,得到数据块D2对应的待匹配序列(2,1,4)。以及,计算机设备可以从数据块D2当前记录的标识序列(如为(2,4,3,1))中移除待移除标识信息“3”,得到数据块D2对应的待校验标识序列(2,4,1)。
步骤204,将待匹配序列与待校验标识序列进行比对,得到数据块的匹配结果。
在实施中,计算机设备可以将数据块D2对应的待匹配序列(2,1,4)和待校验标识序列(2,4,1)进行比对,二者相同,即匹配成功或匹配一致。若二者不同,则匹配失败或匹配不一致。由此,计算机设备可以针对每个数据块确定出对应的待匹配序列和待校验标识序列,并分别进行比对,得到各数据块的匹配结果。
在一个示例中,计算机设备可以按照基准标识序列表征的各数据块的更新时序,按照数据块更新时间从近到远的顺序逐个对各数据块进行匹配处理。如表1所示,数据块D1至D4当前记录的标识序列依次为(1,2,3,4)、(2,4,3,1)、(3,2,4,1)、(4,2,3,1),基准标识序列为(3,2,4,1)。根据基准标识序列表征的更新时序可知,数据块D3的更新时间相对最近(不早于其它数据块),数据块D1的更新时间相对最早(不晚于其它数据块)。因此,匹配的顺序可以依次为D3、D2、D4、D1。先对数据块D3进行匹配处理,此时待移除标识信息为空,因而直接将D3记录的标识序列(3,2,4,1)与基准标识序列(3,2,4,1)进行比对,二者相同,即匹配成功。然后,计算机设备可以对数据块D2进行匹配处理,此时待移除标识信息为“3”,待匹配序列为(2,4,1),待校验标识序列为(2,4,1),二者相同,即匹配成功。以此类推,依次完成所有数据块的匹配处理,得到各数据块的匹配结果。
表1
可以理解的,若在数据一致性校验前存在多个数据块同时更新数据的情况,则可能多个数据块当前记录的标识序列相同。因此,在对数据块逐个进行匹配处理时,可以将待匹配序列与剩余未匹配的数据块同时进行比对。如表1所示,对数据块D2进行匹配时,可以将各未匹配的数据块(D1、D2、D4)的标识序列中均移除数据块D2对应的待移除标识信息“3”,得到各自对应的待校验标识序列。然后将数据块D2对应的待匹配序列与各未匹配的数据块对应的待校验标识序列进行比对。若某数据块的待校验标识序列与待匹配序列相同,则相应数据块匹配完成,其匹配结果为匹配成功;若数据块D2的待校验标识序列与待匹配序列不同,则数据块D2匹配完成,其匹配结果为匹配失败;而对于除数据块D2之外的其它数据块,若与待匹配序列不同,则匹配未完成,将进入下一轮继续匹配。由此,在多个数据块的标识序列相同的情况下,该方法可以提高匹配效率。
本实施例中,根据各数据块对应的待校验标识序列和待匹配序列进行比对,且可以依据基准标识序列表征的各数据块的更新时序,逐个对数据块记录的标识序列进行比对。对于更新时间早于当前数据块的其它数据块,其标识信息在当前数据块记录的标识序列中的相对顺序,应与基准标识序列中的相对顺序一致,若不一致,即该数据块记录的标识序列反映的各数据块的更新时序,与基准标识序列反映出的更新时序存在冲突,说明目标数据组存在数据异常。由此,得到的各数据块的匹配结果,可以准确反映出目标数据组内是否存在数据异常,也即可以得到准确的数据一致性校验结果,因而本方法可以兼顾低开销和校验准确度。
在一个实施例中,如图3所示,提供的数据一致性校验方法还包括数据更新的过程,具体包括如下步骤:
步骤301,响应于数据块更新请求,确定目标数据块组中需更新的目标数据块,并从目标数据块组对应的校验块中获取目标数据块组对应的基准标识序列。
在实施中,计算机设备可以响应于数据块更新请求,确定目标数据块组中需更新数据的目标数据块。例如,计算机设备可以根据数据块更新请求包含的键值确定目标数据块,或根据数据块更新请求包含的写入数据的属性信息,确定出待写入的目标数据块。然后,计算机设备可以从目标数据块组对应的校验块中获取元数据,并从校验块的元数据中提取出该目标数据块组对应的基准标识序列。计算机设备基于待写入的数据生成新的校验码,并将待写入数据下发至目标数据块进行存储,以及将新的校验码下发至校验块进行存储的过程,在此不再赘述。
步骤302,将目标数据块组对应的基准标识序列中,目标数据块的标识信息移至基准标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于目标标识序列,对目标数据块当前记录的标识序列进行更新。
在实施中,计算机设备获取到目标数据块组对应的基准标识序列后,可以将该基准标识序列中、目标数据块的标识信息移至其他标识信息之前。例如,若从校验块获取到的基准标识序列为(1,2,3,4),目标数据块为D2(即本次需更新的数据块),则可以将数据块D2的标识信息“2”移至其它标识信息之前(序列首位),得到目标标识序列(2,1,3,4)。可以理解的,若目标数据块为多个,各目标数据块的标识信息可以随机排序,如为D2和D4两个,则可以将标识信息“2”和“4”移至其它标识信息之前,得到目标标识序列(2,4,1,3)或(4,2,1,3)。
然后,计算机设备可以向目标数据块和校验块发送写请求,以将目标数据块当前记录的标识序列更新为目标标识序列,以及将校验块当前记录的该目标数据块组对应的基准标识序列更新为目标标识序列。
在一个示例中,各数据块和校验块在初始状态,即未写入数据或更新数据时,可以在元数据中记录相同的无效标识序列,无效标识序列中的每个无效标识与数据块一一对应。如表2所示,目标数据块组中各数据块(如D1至D4)和校验块(P、Q)在初始时刻,可以记录无效标识序列为(I1,I2,I3,I4),其中,I1与数据块D1对应,I4与D4对应。当写入数据时,将需更新的目标数据块对应的无效标识信息替换为数据块的标识信息,并移至无效标识信息之前,生成新的标识序列。
表2
如表2所示,当对数据块D1、D2、D3写入数据时,可以生成标识序列(1,2,3,I4)(其中,标识信息“1”、“2”、“3”可以随机排序),并将该新的标识序列记录在数据块D1、D2、D3和校验块P、Q中。之后,若计算机设备接收到针对数据块D4的数据更新请求,则可以生成新的标识序列(4,1,2,3),并在数据块D4和校验块P、Q中更新写入。
本实施例中,在数据块更新时,可以从校验块中读取基准标识序列,并基于需更新的数据块的标识信息对基准标识序列进行更新,得到新的标识序列,记录在需更新的数据块和校验块中。由此可以采用标识序列作为数据版本信息,对数据块组中的任意数据块更新时,不需对不更新的数据块写入新的数据版本信息,并且,在数据一致性巡检时,可以基于校验块中的基准标识序列和各数据块当前记录的标识序列得到一致性校验结果,因而本方法可以兼顾低开销和校验准确度。
在一个实施例中,如图4所示,提供的数据一致性校验方法还包括另一种数据更新的过程,具体包括如下步骤:
步骤401,响应于数据块更新请求,确定目标数据块组中需更新的目标数据块。
在实施中,计算机设备可以响应于数据块更新请求,确定目标数据块组中需更新数据的目标数据块。
步骤402,根据目标数据块组中除目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列。
在实施中,目标数据块组中除目标数据块之外的其它数据块,即为当前不需要更新的数据块。计算机设备可以从其它数据块中获取其当前记录的标识序列,并从各标识序列中确定出参考标识序列。参考标识序列可以与校验块中记录的基准标识序列相同,也可以不同。
步骤403,将参考标识序列中,目标数据块的标识信息移至参考标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于目标标识序列,对目标数据块当前记录的标识序列进行更新。
在实施中,计算机设备可以将参考标识序列中,目标数据块的标识信息移至其它标识信息之前,得到目标标识序列。然后,计算机设备可以基于目标标识序列对目标数据块当前记录的标识序列进行更新,具体过程可以参照步骤302中的描述,在此不再赘述。
本实施例中,当目标数据块更新时,可以从目标数据块组中其它数据块记录的标识序列中确定出参照标识序列,参照标识序列可以表征或近似表征目标数据块组的全局更新时序,从而可以基于参照标识序列更新得到目标数据块的新的标识序列。也即,计算机设备可以不从校验块中读取基准标识序列,而是从其它数据块中读取标识序列。可以理解的,对数据块组更新数据时,通常可以采用两种写入方式。一种模式为需要从校验块中读取旧校验码的场景,如RMW(read modify write,读-改-写)模式写。一般对少部分数据块更新数据时可以采用该种模式,从而可以基于新数据和旧校验码得到新的校验码,写入校验块中。该种模式中,需要从校验块读取校验码等数据,因而可以一并从校验块中读取基准标识序列,而不用额外消耗读资源。另一种模式为不从校验块读取旧校验码的场景,如RCW(readconstruct write,读-构-写)模式写。该种模式中,是从不需要更新的其它数据块中读取旧数据,进而基于其它数据块的旧数据和需更新数据块的新写入数据直接生成新的校验码。因此,可以在从其它数据块中读取旧数据时,一并读取标识序列,并确定出参照标识序列,由此,不需要额外的消耗资源去读取校验块的数据。因而,在计算机设备采用的写入方式为不从校验块读取旧校验码的场景下,可以基于其它数据块的标识序列和需更新的数据块的标识信息,生成新的标识序列,避免额外从校验块中读取数据,节约资源开销。
在一个实施例中,步骤402中确定参考标识序列的过程具体包括如下步骤:将目标数据块组中除目标数据块之外的其它数据块当前记录的标识序列作为候选标识序列,计算任意两个候选标识序列的局部最长公共子序列;从各局部最长公共子序列中,确定出全局最长公共子序列,并在包含全局最长公共子序列的候选标识序列中,确定参考标识序列。
在实施中,计算机设备可以从目标数据块组内当前不需更新的其它数据块中获取其记录的标识序列,作为候选标识序列。然后,计算机设备可以计算任意两个候选标识序列的局部最长公共子序列。计算方法可以采用广义后缀树算法(Generalized Suffix Tree,GST)或其它算法。之后,计算机设备可以将各局部最长公共子序列中,最长的局部最长公共子序列确定为该目标数据块组的全局最长公共子序列。全局最长公共子序列可以有一个或多个。计算机设备可以从包含全局最长公共子序列的各候选标识序列中,随机选取一个作为参考标识序列。可选的,若包含全局最长公共子序列的各候选标识序列中,存在包含无效标识信息的候选标识序列,即生成该标识序列时,存在至少一个数据块未更新过数据,还是初始状态。则可以将包含无效标识信息的候选标识序列去除,从其它包含全局最长公共子序列、且不包含无效标识信息的候选标识序列中选取一个作为参考标识序列。
在一个示例中,如表3所示,若数据块组中各数据块D1至D4当前记录的标识序列分别为(1,2,3,I4)、(2,3,1,I4)、(2,3,1,I4)、(4,2,3,1),当接收到对数据块D2的写入请求时,可以将数据块D1、D3、D4当前记录的标识序列作为候选标识序列,即为(1,2,3,I4)、(2,3,1,I4)、(4,2,3,1)。
表3
然后,计算机设备可以基于各候选标识序列,计算出该组内至少两个序列包含的全局最长公共子序列,为(2,3,1),D3和D4的标识序列中包含该全局最长公共子序列,因此,可以从D3和D4的标识序列中确定参考标识序列。其中,由于D3的标识序列(2,3,1,I4)中包含无效标识信息“I4”,而D4的标识序列中不包含无效标识信息,说明书D4的最近更新时间晚于D3的最近更新时间,因而可以将D3的标识序列去除,将D4的标识序列确定为参考标识序列。该示例中,确定出的参考标识序列(4,2,3,1)与校验块记录的基准标识序列(4,2,3,1)一致,因而该参考标识序列可以表征该数据块组的全局更新时序。
进一步接收到数据块D3的写入请求时,可以根据数据块D1、D2和D4的标识序列确定出两个全局最长公共子序列,分别为D1和D4的序列中包含的公共子序列(2,3),以及D2和D4的序列中包含的公共子序列(3,1)。由于D1的标识序列中包含无效标识信息,则将该标识序列去除,可以从D2和D4的标识序列中随机选取参考标识序列。如表3所示,对于情形(a),若将D2的标识序列(2,4,3,1)确定为参考标识序列,则可以生成目标标识序列(3,2,4,1),写入数据块D3,此时确定出的参考标识序列与校验块记录的基准标识序列一致。对于情形(b),若将D4的标识序列(4,2,3,1)确定为参考标识序列,则可以生成目标标识序列(3,4,2,1),写入数据块D3,此时确定出的参考标识序列可以近似表征数据块组的全局更新时序。
可以理解的,在需对目标数据块组中所有数据块均需更新的情况下,可以直接基于各数据块的标识信息随机生成目标标识序列,由此提高效率。
本实施例中,通过计算当前不需要更新的其它数据块的标识序列的最长公共子序列,进而从包含最长公共子序列的其它标识序列中确定出参考标识序列。该参考标识序列可以表征或近似表征数据块组的全局更新时序,由此,可以避免从校验块中额外读取数据,兼顾低开销和准确性。
在一个实施例中,步骤302或步骤403中更新标识序列的过程具体包括如下步骤:根据预设的映射规则,确定目标标识序列对应的目标索引标识;将目标数据块当前记录的标识序列对应的索引标识,更新为目标索引标识。
在实施中,可以预先设置映射规则,例如建立序列映射表,存储各数据块的标识信息可能组成的序列形式对应的索引标识。例如,对于数据块组宽度为4(即组内包含四个数据块)的场景,其采用的序列映射表可以如表4所示。一共包含索引标识0至63共64种序列形式,其中,I1、I2、I3、I4为无效标识信息。
表4序列映射表
计算机设备确定出目标标识序列后,可以从该序列映射表中,确定目标标识序列对应的索引标识。然后,计算机设备可以将索引标识下发至需更新的数据块和校验块,使其更新记录。也即,数据块和校验块可以记录标识序列对应的索引标识,而不直接记录标识序列。计算机设备可以从数据块中获取当前记录的标识序列对应的索引标识,以及从校验块中获取基准标识序列对应的索引标识。进而根据该映射规则,查询对应的序列,并基于查询到的序列生成目标标识序列后,确定出目标标识序列对应的目标索引标识,从而可以在需更新的目标数据块和校验块中,将记录的索引标识更新为目标索引标识。
可以理解的,若目标数据块组为多个,如20+2模式中,可以将冗余组中的数据块分为5个子组。各子组的标识序列更新不存在耦合关系,也即,计算机设备可以对需更新的各目标数据块组,分别生成该组中各需更新的数据块的目标标识序列。各子组的目标标识序列可以分别映射为目标索引标识。然后,计算机设备可以将每个子组的目标索引标识(对于当前不需更新的子组,则采用历史索引标识)的集合作为元数据,记录在当前需更新的各个数据块和校验块中。数据一致性校验时,可以从数据块记录的元数据中,提取该数据块所在的目标数据块组对应的索引标识,进而映射为标识序列,以进行校验。
本实施例中,通过将标识序列映射为索引标识,从而可以在数据块和校验块中记录标识序列对应的索引标识,索引标识所占内存一般小于标识序列,因而可以节约内存开销。并且,分布式存储系统内各冗余组(子组宽度相同时)之间可以共享序列映射表,进一步节约内存开销。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据一致性校验方法的数据一致性校验装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据一致性校验装置实施例中的具体限定可以参见上文中对于数据一致性校验方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种数据一致性校验装置500,包括:获取模块501、匹配模块502和第一确定模块503,其中:
获取模块501,用于响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;标识序列是数据块的数据更新时生成的、用于表征当前数据块更新时目标数据块组中各数据块的更新时序。
匹配模块502,用于根据目标数据块组对应的基准标识序列和预设的序列匹配规则,将基准标识序列与各数据块当前记录的标识序列进行匹配处理,得到各数据块的匹配结果;基准标识序列用于表征目标数据块组中的全局更新时序。
第一确定模块503,用于根据各数据块的匹配结果确定目标数据块组的数据一致性校验结果。
在其中一个实施例中,匹配模块502具体用于:从目标数据块组对应的校验块中获取目标数据块组对应的基准标识序列;针对每个数据块,将基准标识序列中、数据块的标识信息之前的标识信息确定为待移除标识信息;从基准标识序列中移除待移除标识信息,得到待匹配序列,并从数据块当前记录的标识序列中移除待移除标识信息,得到待校验标识序列;将待匹配序列与待校验标识序列进行比对,得到数据块的匹配结果。
在其中一个实施例中,匹配模块502具体用于:在待匹配序列与待校验标识序列不同的情况下,确定数据块的匹配结果为匹配失败;在待匹配序列与待校验标识序列相同的情况下,确定数据块的匹配结果为匹配成功。
在其中一个实施例中,该装置还包括第二确定模块和第一更新模块,其中:
第二确定模块,用于响应于数据块更新请求,确定目标数据块组中需更新的目标数据块,并从目标数据块组对应的校验块中获取目标数据块组对应的基准标识序列。
第一更新模块,用于将目标数据块组对应的基准标识序列中,目标数据块的标识信息移至基准标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于目标标识序列,对目标数据块当前记录的标识序列进行更新。
在其中一个实施例中,该装置还包括第三确定模块、第四确定模块和第二更新模块,其中:
第三确定模块,用于响应于数据块更新请求,确定目标数据块组中需更新的目标数据块。
第四确定模块,用于根据目标数据块组中除目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列。
第二更新模块,用于将参考标识序列中,目标数据块的标识信息移至参考标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于目标标识序列,对目标数据块当前记录的标识序列进行更新。
在其中一个实施例中,第四确定模块具体用于:将目标数据块组中除目标数据块之外的其它数据块当前记录的标识序列作为候选标识序列,计算任意两个候选标识序列的局部最长公共子序列;从各局部最长公共子序列中,确定出全局最长公共子序列,并在包含全局最长公共子序列的候选标识序列中,确定参考标识序列。
在其中一个实施例中,第一更新模块或第二更新模块具体用于:根据预设的映射规则,确定目标标识序列对应的目标索引标识;将目标数据块当前记录的标识序列对应的索引标识,更新为目标索引标识。
上述数据一致性校验装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行上述数据一致性校验方法所需的或产生的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据一致性校验方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据一致性校验方法,其特征在于,所述方法包括:
响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;所述标识序列是所述数据块的数据更新时生成的、用于表征当前数据块更新时所述目标数据块组中各数据块的更新时序;
根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果;所述基准标识序列用于表征所述目标数据块组的全局更新时序;
根据各所述数据块的匹配结果确定所述目标数据块组的数据一致性校验结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果,包括:
从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;
针对每个所述数据块,将所述基准标识序列中、所述数据块的标识信息之前的标识信息确定为待移除标识信息;
从所述基准标识序列中移除所述待移除标识信息,得到待匹配序列,并从所述数据块当前记录的标识序列中移除所述待移除标识信息,得到待校验标识序列;
将所述待匹配序列与所述待校验标识序列进行比对,得到所述数据块的匹配结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块,并从所述目标数据块组对应的校验块中获取所述目标数据块组对应的基准标识序列;
将所述目标数据块组对应的基准标识序列中,所述目标数据块的标识信息移至所述基准标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于数据块更新请求,确定所述目标数据块组中需更新的目标数据块;
根据所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列;
将所述参考标识序列中,所述目标数据块的标识信息移至所述参考标识序列中的其他数据块的标识信息之前,得到目标标识序列,并基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列,确定参考标识序列,包括:
将所述目标数据块组中除所述目标数据块之外的其它数据块当前记录的标识序列作为候选标识序列,计算任意两个所述候选标识序列的局部最长公共子序列;
从各所述局部最长公共子序列中,确定出全局最长公共子序列,并在包含所述全局最长公共子序列的候选标识序列中,确定参考标识序列。
6.根据权利要求3或4所述的方法,其特征在于,所述基于所述目标标识序列,对所述目标数据块当前记录的标识序列进行更新,包括:
根据预设的映射规则,确定所述目标标识序列对应的目标索引标识;
将所述目标数据块当前记录的标识序列对应的索引标识,更新为所述目标索引标识。
7.一种数据一致性校验装置,其特征在于,所述装置包括:
获取模块,用于响应于数据一致性校验请求,获取目标数据块组中各数据块当前记录的标识序列;所述标识序列是所述数据块的数据更新时生成的、用于表征当前数据块更新时所述目标数据块组中各数据块的更新时序;
匹配模块,用于根据所述目标数据块组对应的基准标识序列和预设的序列匹配规则,将所述基准标识序列与各所述数据块当前记录的标识序列进行匹配处理,得到各所述数据块的匹配结果;所述基准标识序列用于表征所述目标数据块组的全局更新时序;
第一确定模块,用于根据各所述数据块的匹配结果确定所述目标数据块组的数据一致性校验结果。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310538549.5A CN116680281A (zh) | 2023-05-12 | 2023-05-12 | 数据一致性校验方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310538549.5A CN116680281A (zh) | 2023-05-12 | 2023-05-12 | 数据一致性校验方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680281A true CN116680281A (zh) | 2023-09-01 |
Family
ID=87777792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310538549.5A Pending CN116680281A (zh) | 2023-05-12 | 2023-05-12 | 数据一致性校验方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680281A (zh) |
-
2023
- 2023-05-12 CN CN202310538549.5A patent/CN116680281A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352490B2 (en) | Method and system for locating update operations in a virtual machine disk image | |
US9329799B2 (en) | Background checking for lost writes and data corruption | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
US20240143188A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
CN110442298B (zh) | 存储设备异常检测方法及装置、分布式存储系统 | |
CN111857603B (zh) | 数据处理方法及相关装置 | |
CN114860745B (zh) | 基于人工智能的数据库扩展方法及相关设备 | |
CN112000513A (zh) | 一种计算机及其vpd数据操作方法、装置、存储介质 | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN117743299A (zh) | 数据库迁移方法、装置、设备、介质和产品 | |
CN110287164B (zh) | 一种数据恢复方法、装置及计算机设备 | |
CN115454717B (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
CN115357429B (zh) | 恢复数据文件的方法、装置和客户端 | |
CN116680281A (zh) | 数据一致性校验方法、装置、计算机设备和存储介质 | |
CN116339626A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113032348A (zh) | 一种空间数据管理方法、系统及计算机可读存储介质 | |
CN116257531B (zh) | 一种数据库空间回收方法 | |
CN117539690B (zh) | 多磁盘数据的合并恢复方法、装置、设备、介质和产品 | |
CN116932779B (zh) | 知识图谱的数据处理方法和装置 | |
US11520488B2 (en) | Method and apparatus for identifying a device missing from a consistency group | |
CN118519583A (zh) | 数据处理方法、装置、设备、可读存储介质和程序产品 | |
CN117851102A (zh) | 数据修复方法、装置、计算机设备和存储介质 | |
CN118467642A (zh) | 数据同步的确定方法、装置、设备、存储介质和程序产品 | |
CN118567906A (zh) | 网关发布数据的录入方法、装置、计算机设备和存储介质 | |
CN115373903A (zh) | 逻辑备份方法、装置、计算机设备和存储介质 |
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 |