数据校验方法、装置、电子设备及存储介质与流程

文档序号:24413812发布日期:2021-03-26 20:27阅读:160来源:国知局
数据校验方法、装置、电子设备及存储介质与流程

1.本申请涉及计算机技术领域,具体涉及云计算、云存储、大数据处理等人工智能技术领域,尤其涉及数据校验方法、装置、电子设备及存储介质。


背景技术:

2.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
3.数据校验,是分布式存储系统保障数据完整性的必要手段,其中,数据完整性是指数据的正确性和可靠性,即,数据不仅能够被读到正确的值,而且其在分布式存储系统内部的存储状态满足一定的约束条件。


技术实现要素:

4.提供了一种数据校验方法、装置、电子设备、存储介质及计算机程序产品。
5.根据第一方面,提供了一种数据校验方法,包括:确定待校验数据;获取与所述待校验数据对应的多个副本,其中,所述多个副本分别携带相应的多个第一校验码;以及结合所述多个第一校验码采用分块校验方式对所述待校验数据进行校验。
6.根据第二方面,提供了一种数据校验装置,包括:确定模块,用于确定待校验数据;获取模块,用于获取与所述待校验数据对应的多个副本,其中,所述多个副本分别携带相应的多个第一校验码;以及校验模块,用于结合所述多个第一校验码采用分块校验方式对所述待校验数据进行校验。
7.根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例的数据校验方法。
8.根据第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请实施例公开的数据校验方法。
9.根据第五方面,提出了一种计算机程序产品,包括计算机程序,当所述计算机程序由处理器执行时实现本申请实施例公开的数据校验方法。
10.应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
11.附图用于更好地理解本方案,不构成对本申请的限定。其中:
12.图1是根据本申请第一实施例的示意图;
13.图2为分布式存储系统的存储架构示意图;
14.图3是根据本申请第二实施例的示意图;
15.图4是根据本申请第三实施例的示意图;
16.图5是根据本申请第四实施例的示意图;
17.图6是根据本申请第五实施例的示意图;
18.图7是用来实现本申请实施例的数据校验方法的电子设备的框图。
具体实施方式
19.以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
20.图1是根据本申请第一实施例的示意图。
21.其中,需要说明的是,本实施例的数据校验方法的执行主体为数据校验装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。
22.本申请实施例涉及云计算、云存储、大数据处理等人工智能技术领域。
23.其中,人工智能(artificial intelligence),英文缩写为ai。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
24.云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
25.云存储,是指通过集群应用、网格技术或分布式文件系统等功能,网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,保证数据的安全性,并节约存储空间。
26.而大数据处理,是指采用人工智能的方式对规模巨大的数据进行分析以及处理的过程,而大数据可以概括为5个v,数据量大(volume)、速度快(velocity)、类型多(variety)、价值(value)、真实性(veracity)。
27.如图1所示,该数据校验方法包括:
28.s101:确定待校验数据。
29.本申请实施例可以应用在对分布式存储系统中所存储的数据进行校验,而待校验数据,则可以被称为待校验数据。
30.首先对分布式存储系统的存储架构进行解释说明,参见图2,图2为分布式存储系统的存储架构示意图,其中,space(空间)可以表示为逻辑隔离单位;volume(容器)表示存储blob对象的逻辑容器,一个volume包含n个vlet(实体容器);而vlet表示存放数据的实体容器,默认占据32g的存储容量,一个vlet包含若干个record(记录);blob(块,在该blob块中存储数据)表示用户需要存储的单个小对象;而shard(副本)表示blob经过擦除码
(erasure code,ec)编码之后的各个副本;record(记录)表示一个副本shard在磁盘上的真实存储数据。
31.本申请正是可以应用在对上述分布式存储系统中所存储的数据进行校验,其中,待校验数据可以例如为该blob块中存储的数据。
32.s102:获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码。
33.本申请实施例中的分布式存储系统包括多个存储节点node,则上述的多个副本shard可以具体是分别存储在分布式存储系统对应的多个存储节点之中,则获取与待校验数据对应的多个副本,可以是从各个存储节点之中读取相应的副本,而各个副本会对应携带一个校验码(该校验码比如循环冗余校验(cyclic redundancy check,crc))码,与副本shard对应的校验码可以被称为第一校验码,该校验码是对各个副本对应的真实存储数据(即数据段)编码得到的,当然也可以采用其他校验码生成方式,得到与各个副本对应的第一校验码。
34.s103:结合多个第一校验码采用分块校验方式对待校验数据进行校验。
35.上述在获取与待校验数据对应的多个副本之后,可以结合各个副本携带的第一校验码并结合分块校验方式对原始的待校验数据进行校验,比如,可以首先根据第一校验码校验每个副本对应的数据段,在校验通过之后,再校验原始的待校验数据。
36.本实施例中,通过确定待校验数据,并获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码,以及结合多个第一校验码采用分块校验方式对待校验数据进行校验,能够有效提高数据校验的时效性,并且减小存储节点输入、输出的资源消耗。
37.图3是根据本申请第二实施例的示意图。
38.如图3所示,该数据校验方法包括:
39.s301:确定待校验数据。
40.而为了避免校验请求影响正常读写请求的处理,保障分布式存储系统的运行稳定性,本申请实施例中在接收到校验请求,校验请求包括:校验优先级和数据标识,可以根据校验优先级,确定待处理请求数量;当待处理请求数量小于数量阈值时,根据数据标识从分布式存储系统之中读取待校验数据。
41.其中,待处理请求的数量表示当前等待校验的校验请求的数量,比如可以在每次接收到校验请求时,将该校验请求添加至一个校验请求队列当中,并记录校验请求队列中的校验请求数量,当再次接收到校验请求时,可以直接读取相应的校验请求数量。
42.本申请实施例中上述是根据校验优先级来确定待处理请求数量,其中的校验优先级可以用于描述校验请求的优先程度,可以用m表示,其中,m小于或者等于m,m为大于1且小于n的正整数,n表示正整数,则待处理请求数量qm可以表示为:
[0043][0044]
而后,在根据校验优先级,确定待处理请求数量之后,可以将待处理请求数量qm与数量阈值进行比对,该数量阈值可以表示为x,数量阈值x用于描述执行数据校验方法的执行主体对应的处理能力。
[0045]
则当待处理请求数量qm小于数量阈值时,表示该执行主体尚未满负荷,此时可以
触发解析校验请求中携带的数据标识,而后根据数据标识从分布式存储系统之中读取待校验数据,对此不做限制。
[0046]
也即是说,如果待处理请求数量qm大于或者等于数量阈值时,表示该执行主体已满负荷(已满负荷的原因,可能是已接收到若干份的数据读写请求),此时可以禁止对数据进行校验,从而有效地避免校验请求影响正常读写请求的处理,并且不会由于队列里存在大量低优先级的请求而导致拒绝高优先级的请求,保障分布式存储系统的运行稳定性。
[0047]
s302:获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码。
[0048]
一些实施例中,获取与待校验数据对应的多个副本,可以确定副本对应的排序位置,其中,副本,是对待校验数据基于排序位置进行切分以得到对应的数据段,并对对应的数据段编码得到的,并确定副本对应的存储节点标识,以及根据排序位置和存储节点标识,从多个存储节点之中顺序地获取多个副本。
[0049]
也即是说,依据ec编码特性,其在对数据进行编码时,是首先将数据切分为k个数据段,k为大于或等于1且小于n的正整数,n为大于1且小于n的正整数,n表示正整数,并且,是依据排序位置将数据切分为k个数据段,即各个数据段之间,依据其在整个数据当中的上下文位置是具有相对应的排序位置的,而后采用ec编码方式对各个数据段编码得到的副本,而副本的数量可以是n,其中,1~k表示原始切分得到的各个数据段对应的副本,而k+1~n个副本表示对应的多个校验块。
[0050]
依据上述ec编码特性,在存储n时,也可以依据该排序位置相应地存储多个数据段,比如,将数据段对应的排序位置,作为与其对应的副本的排序位置,从而依据该排序位置,将n个副本相应地存储至一个对应的存储节点之中。
[0051]
由此,本申请实施例中上述在获取与待校验数据对应的多个副本时,可以依据排序位置顺序地从各个存储节点之中获取副本,也即是说,确定副本对应的排序位置,确定副本对应的存储节点标识(该存储节点标识能够用于唯一标识该副本所存储的存储节点),以及根据排序位置和存储节点标识,从多个存储节点之中顺序地获取多个副本,由此,对于一个存储节点来说,不需要读取其他存储节点上副本shard对应的数据段,而直接根据自身的副本shard对应的第一校验码,即可以进行数据校验,从而能够提升校验效率,能够有效满足分布式存储系统中的大规模数据的校验需求。
[0052]
s303:如果当前获取的副本的排序位置是首位,或者,副本不属于排序在前的设定个数的副本,则根据副本的第一校验码对副本对应的数据段进行校验。
[0053]
结合上述描述的内容:
[0054]
依据ec编码特性,其在对数据进行编码时,是首先将数据切分为k个数据段,k为大于或等于1且小于n的正整数,n为大于1且小于n的正整数,n表示正整数,并且,是依据排序位置将数据切分为k个数据段,即各个数据段之间,依据其在整个数据当中的上下文位置是具有相对应的排序位置的,而后采用ec编码方式对各个数据段编码得到的副本,而副本的数量可以是n,其中,1~k表示原始切分得到的各个数据段对应的副本,而k+1~n个副本表示对应的多个校验块。
[0055]
依据上述ec编码特性,在存储n时,也可以依据该排序位置相应地存储多个数据段,比如,将数据段对应的排序位置,作为与其对应的副本的排序位置,从而依据该排序位
置,将n个副本相应地存储至一个对应的存储节点之中。
[0056]
则设定个数可以具体是上述的k,前k个副本对应的数据段,是对原始的待校验数据顺序切分得到的。
[0057]
则如果当前获取的副本的排序位置是首位(比如1~k中的第一位),或者,副本不属于排序在前的设定个数的副本(比如该副本不属于前k个副本,而是属于k+1~n个副本之中),则根据副本的第一校验码对副本对应的数据段进行校验。
[0058]
s304:如果副本的排序位置不是末位,则确定与后一排序位置对应的目标存储节点标识,后一排序位置在排序位置之后,且与排序位置相邻。
[0059]
结合上述内容,如果副本的排序位置不是末位(即不是k个副本当中的最后一位),则确定与后一排序位置(即,假设副本的排序位置是第3位,k等于10,则第3位不是10个副本当中的最后一位,则可以确定后一排序位置第4位的副本)对应的目标存储节点标识(第4位副本的存储节点,可以被称为目标存储节点,而目标存储节点标识可以用于唯一标识该目标存储节点),后一排序位置在排序位置之后,且与排序位置相邻,比如,第4位的排序位置在第3位的排序位置之后,且第4位的排序位置在第3位的排序位置相邻。
[0060]
s305:将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中,并由目标存储节点,对自身存储副本对应的数据段进行校验。
[0061]
上述在副本的排序位置不是末位(即不是k个副本当中的最后一位),则确定与后一排序位置对应的目标存储节点标识之后,将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中,并由目标存储节点,对自身存储副本对应的数据段进行校验。
[0062]
比如,第3位副本存储的存储节点,可以将第3位存储副本对应的第一校验码传输至第4位副本的目标存储节点之中,而后触发目标存储节点根据第4位副本的第一校验码结合所接收到的第3位存储副本对应的第一校验码对第4位副本对应的数据段进行校验。
[0063]
s306:如果当前获取的副本的排序位置不是首位,且副本属于排序在前的设定个数的副本,则获取前一排序位置的副本的第三校验码,前一排序位置在排序位置之前,且与排序位置相邻。
[0064]
进一步地,上述将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中,并由目标存储节点,对自身存储副本对应的数据段进行校验,即如果当前获取的副本的排序位置不是首位,且副本属于排序在前的设定个数的副本,则可以由目标存储节点结合前一排序位置的副本的第三校验码(前一排序位置的副本的校验码,可以被称为第三校验码)和自身存储副本的第一校验码对自身副本对应的数据段进行校验。
[0065]
s307:根据副本的第一校验码结合第三校验码对当前获取的副本对应的数据段进行校验。
[0066]
由此,本实施例中,当前获取的副本的排序位置是首位,或者,副本不属于排序在前的设定个数的副本,则根据副本的第一校验码对副本对应的数据段进行校验;当前获取的副本的排序位置不是首位,且副本属于排序在前的设定个数的副本,则获取前一排序位置的副本的第三校验码,前一排序位置在排序位置之前,且与排序位置相邻;根据副本的第一校验码结合第三校验码对当前获取的副本对应的数据段进行校验,实现在对前k个副本对应的数据段进行校验的过程中,不仅仅结合了自身的第一校验码,还获取前一排序位置副本的第三校验码,并且在该校验的过程中,并不需要获知前一排序位置副本对应的数据
段,从而避免了读取全部的数据段,在有效提升校验的准确性的同时,能够大幅度地提升校验效率。
[0067]
另外,本申请实施例中,还在副本的排序位置不是末位,则确定与后一排序位置对应的目标存储节点标识,后一排序位置在排序位置之后,且与排序位置相邻;将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中,以使由目标存储节点,对自身存储副本对应的数据段进行校验,能够保障不同存储节点之间校验码传输的时效性,从而从校验码传递的维度有效提升各个副本对应数据段校验的连贯性。
[0068]
本实施例中,由目标存储节点,对自身存储副本对应的数据段进行校验,从而实现将校验任务下放给每个存储节点node,对于存储节点node,可以对副本shard对应的数据段进行批量读取,比如每次读取4m的数据段,按一定规则依次计算每个副本shard对应的第一校验码。
[0069]
s308:在校验通过之后,根据多个副本携带的第一校验码确定待校验数据的第二校验码,并根据第二校验码对待校验数据进行校验。
[0070]
而本申请实施例中,上述在结合多个第一校验码采用分块校验方式对待校验数据进行校验,可以是在每次获取副本时,根据副本的第一校验码对副本对应的数据段进行校验,在校验通过之后,根据多个副本携带的第一校验码确定待校验数据的第二校验码;根据第二校验码对待校验数据进行校验。
[0071]
其中与待校验数据对应的校验码,可以被称为第二校验码。
[0072]
也即是说,上述根据排序位置和存储节点标识,从多个存储节点之中顺序地获取多个副本,在顺序读取的过程中,在每次读取到一个存储节点之中的副本shard,则可以相应地,对该副本shard对应的数据段进行数据校验,即是一个边读取边校验的过程,而后,在对各个数据段校验完毕之后,由于各个数据段的副本shard,是对原始的待校验数据编码得到的,原始的待校验数据和多个副本shard存在编码对应关系,则相应地,可以结合一些运算方式实现根据多个副本shard携带的第一校验码来确定整个原始的待校验数据对应的第二校验码,从而能够大幅度地提升校验效率,并且有效地保障了校验准确性。
[0073]
比如,可以根据多个副本shard之中的前k个副本的第一校验码运算得到待校验数据对应的第二校验码。
[0074]
本实施例中,通过确定待校验数据,并获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码,以及结合多个第一校验码采用分块校验方式对待校验数据进行校验,能够有效提高数据校验的时效性,并且减小存储节点输入、输出的资源消耗。实现在对前k个副本对应的数据段进行校验的过程中,不仅仅结合了自身的第一校验码,还获取前一排序位置副本的第三校验码,并且在该校验的过程中,并不需要获知前一排序位置副本对应的数据段,从而避免了读取全部的数据段,在有效提升校验的准确性的同时,能够大幅度地提升校验效率。在副本的排序位置不是末位,则确定与后一排序位置对应的目标存储节点标识,后一排序位置在排序位置之后,且与排序位置相邻;将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中,以使由目标存储节点,对自身存储副本对应的数据段进行校验,能够保障不同存储节点之间校验码传输的时效性,从而从校验码传递的维度有效提升各个副本对应数据段校验的连贯性。
[0075]
图4是根据本申请第三实施例的示意图。
[0076]
如图4所示,该数据校验方法包括:
[0077]
s401:确定待校验数据。
[0078]
s402:获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码。
[0079]
s403:结合多个第一校验码采用分块校验方式对待校验数据进行校验。
[0080]
s401

s403的描述可以参见上述实施例,在此不再赘述。
[0081]
针对上述校验过程的具体示例可以如下:
[0082]
1、可以由校验组件check_worker向1个存储节点node通过rpc(remote procedure call,远程过程调用)发起校验请求。
[0083]
2、该存储节点node收到请求后,向校验组件check_worker反馈已收到校验请求的响应消息,并将校验请求插入校验队列之中。
[0084]
3、存储节点node从校验队列里获取一个校验任务,而后,获取上一个存储节点node的校验结果(此处假设该存储节点node不是首位的存储节点,如果是首位的存储节点node,则可以直接根据自身的第一校验码进行校验)。
[0085]
4、存储节点node从磁盘上批量读取副本shard,计算并校验副本shard对应的数据段。
[0086]
5、当校验完毕前k个副本shard,则触发校验整个待校验数据。
[0087]
6、存储节点node向校验组件check_worker上报校验结果,该校验结果中包括每个副本shard的第一校验码。
[0088]
7、校验组件check_worker收到存储节点node上报的校验结果后,向下一个存储节点node发起校验任务,并将前一个存储节点node的第一校验码传递至下一个存储节点node。
[0089]
8、如果校验组件check_worker收到了所有存储节点node的第一校验码,则表示当前校验任务结束。
[0090]
s404:如果对待校验数据校验失败,则接收副本读取请求。
[0091]
上述执行完毕针对每个存储节点node的副本shard的校验任务之后,可以对待校验数据进行校验,如果对待校验数据校验失败,则可以即时地触发对异常数据进行相应的修复处理。
[0092]
比如,可以接收校验组件check_worker下发的副本读取请求,而后触发后续步骤。
[0093]
s405:根据副本读取请求读取设定个数的副本对应的数据段。
[0094]
s406:对设定个数的副本对应的数据段进行解码,以得到目标数据。
[0095]
s407:根据目标数据对待校验数据对应的副本进行恢复处理。
[0096]
上述在接收校验组件check_worker下发的副本读取请求之后,可以根据副本读取请求读取设定个数(即k个)的副本对应的数据段。
[0097]
举例而言,当校验至第k份副本shard时,将校验失败的数据上报至校验组件check_worker,校验组件check_worker针对异常的数据重新发起副本shard的副本读取请求,对于读取失败的副本shard,计算校验成功的副本shard是否大于k个,若是,则进行ec解码,即对k个的副本对应的数据段进行解码,以得到目标数据(对对k个的副本对应的数据段进行解码得到的数据,可以被称为目标数据),从而还原出缺失的副本shard,而后,根据目
标数据对待校验数据对应的副本进行恢复处理,从而实现及时地对异常数据的副本进行恢复处理,保障了数据的准确性和完整性,从而有效提升整个分布式存储系统的存储性能。
[0098]
可选地,一些实施例中,根据目标数据对待校验数据对应的副本进行恢复处理,可以是确定待校验数据中的待恢复副本,和其存储节点标识,将与目标数据对应的多个目标副本之中,与待恢复副本对应的目标副本存储至其存储节点标识属于的存储节点之中,可以实现便捷地对待校验数据对应的副本进行恢复处理,且具有较好的可靠性,并且在恢复处理的过程中,也不会影响其他数据的读写。
[0099]
本实施例中,通过确定待校验数据,并获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码,以及结合多个第一校验码采用分块校验方式对待校验数据进行校验,能够有效提高数据校验的时效性,并且减小存储节点输入、输出的资源消耗。如果对待校验数据校验失败,则接收副本读取请求,并根据副本读取请求读取设定个数的副本对应的数据段,以及对设定个数的副本对应的数据段进行解码,以得到目标数据,根据目标数据对待校验数据对应的副本进行恢复处理,从而还原出缺失的副本shard,而后,根据目标数据对待校验数据对应的副本进行恢复处理,从而实现及时地对异常数据的副本进行恢复处理,保障了数据的准确性和完整性,从而有效提升整个分布式存储系统的存储性能。
[0100]
图5是根据本申请第四实施例的示意图。
[0101]
如图5所示,该数据校验装置50包括:
[0102]
确定模块501,用于确定待校验数据;
[0103]
获取模块502,用于获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码;
[0104]
校验模块503,用于结合多个第一校验码采用分块校验方式对待校验数据进行校验。
[0105]
在本申请的一些实施例中,多个副本分别存储在分布式存储系统对应的多个存储节点之中,其中,获取模块502,具体用于:
[0106]
确定副本对应的排序位置,其中,副本,是对待校验数据基于排序位置进行切分以得到对应的数据段,并对对应的数据段编码得到的;
[0107]
确定副本对应的存储节点标识;
[0108]
根据排序位置和存储节点标识,从多个存储节点之中顺序地获取多个副本。
[0109]
在本申请的一些实施例中,其中,校验模块503,具体用于:
[0110]
在每次获取副本时,根据副本的第一校验码对副本对应的数据段进行校验;
[0111]
在校验通过之后,根据多个副本携带的第一校验码确定待校验数据的第二校验码;
[0112]
根据第二校验码对待校验数据进行校验。
[0113]
在本申请的一些实施例中,其中,校验模块503,还用于:
[0114]
如果当前获取的副本的排序位置是首位,或者,副本不属于排序在前的设定个数的副本,则根据副本的第一校验码对副本对应的数据段进行校验;
[0115]
如果当前获取的副本的排序位置不是首位,且副本属于排序在前的设定个数的副本,则获取前一排序位置的副本的第三校验码,前一排序位置在排序位置之前,且与排序位
置相邻;
[0116]
结合副本的第一校验码和第三校验码对当前获取的副本对应的数据段进行校验。
[0117]
在本申请的一些实施例中,其中,校验模块503,进一步用于:
[0118]
如果副本的排序位置不是末位,则确定与后一排序位置对应的目标存储节点标识,后一排序位置在排序位置之后,且与排序位置相邻;
[0119]
将副本的第一校验码传输至目标存储节点标识属于的目标存储节点之中。
[0120]
在本申请的一些实施例中,其中,校验模块503,还用于:
[0121]
由目标存储节点,对自身存储副本对应的数据段进行校验。
[0122]
在本申请的一些实施例中,如图6所示,图6是根据本申请第五实施例的示意图,该数据校验装置60包括:确定模块601、获取模块602、校验模块603,还包括:
[0123]
接收模块604,用于在对待校验数据校验失败时,接收副本读取请求;
[0124]
读取模块605,用于根据副本读取请求读取设定个数的副本对应的数据段;
[0125]
恢复处理模块606,用于对设定个数的副本对应的数据段进行解码,以得到目标数据,并根据目标数据对待校验数据对应的副本进行恢复处理。
[0126]
在本申请的一些实施例中,其中,恢复处理模块606,具体用于:
[0127]
确定待校验数据中的待恢复副本,和其存储节点标识;
[0128]
将与目标数据对应的多个目标副本之中,与待恢复副本对应的目标副本存储至其存储节点标识属于的存储节点之中。
[0129]
在本申请的一些实施例中,其中,确定模块601,具体用于:
[0130]
接收校验请求,校验请求包括:校验优先级和数据标识;
[0131]
根据校验优先级,确定待处理请求数量;
[0132]
当待处理请求数量小于数量阈值时,根据数据标识从分布式存储系统之中读取待校验数据。
[0133]
可以理解的是,本实施例附图6中的数据校验装置60与上述实施例中的数据校验装置50,确定模块601与上述实施例中的确定模块501,获取模块602与上述实施例中的获取模块502,校验模块603与上述实施例中的校验模块503,可以具有相同的功能和结构。
[0134]
需要说明的是,前述对数据校验方法的解释说明也适用于本实施例的数据校验装置,此处不再赘述。
[0135]
本实施例中,通过确定待校验数据,并获取与待校验数据对应的多个副本,其中,多个副本分别携带相应的多个第一校验码,以及结合多个第一校验码采用分块校验方式对待校验数据进行校验,能够有效提高数据校验的时效性,并且减小存储节点输入、输出的资源消耗。
[0136]
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0137]
图7是用来实现本申请实施例的数据校验方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文
中描述的和/或者要求的本申请的实现。
[0138]
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
[0139]
设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0140]
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如,数据校验方法。
[0141]
例如,在一些实施例中,数据校验方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的数据校验方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据校验方法。
[0142]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0143]
用于实施本申请的数据校验方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0144]
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0145]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0146]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网及区块链网络。
[0147]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0148]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0149]
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1