CN114048061A - 校验块的生成方法及装置 - Google Patents
校验块的生成方法及装置 Download PDFInfo
- Publication number
- CN114048061A CN114048061A CN202111176152.3A CN202111176152A CN114048061A CN 114048061 A CN114048061 A CN 114048061A CN 202111176152 A CN202111176152 A CN 202111176152A CN 114048061 A CN114048061 A CN 114048061A
- Authority
- CN
- China
- Prior art keywords
- local
- global
- original data
- block
- coding
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本说明书一个或多个实施例提供一种校验块的生成方法及装置。所述方法包括:针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵,各个局部域内包括归属于所述局部域的原始数据块;基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
Description
技术领域
本说明书一个或多个实施例涉及数据存储技术领域,尤其涉及一种校验块的生成方法及装置。
背景技术
随着技术发展和需求提升,数据存储的规模日益扩大,现行的数据存储方案大多结合具有高可扩展性的分布式系统加以实现。在所述分布式系统中,数据以数据块的形式进行存储,一个文件将被分解为多个数据块(Block)分别存储在不同的磁盘或存储节点上。
为了保障数据的可恢复性,分布式系统中一般会为原始数据块设置校验块(Parity Block),所述校验块可以分为全局校验块(Global Parity Block)和局部校验块(Local Reconstruction Parity Block)。在原始数据块部分丢失的情况下,基于未丢失的原始数据块和校验块能够对丢失的原始数据块进行恢复,而在校验块丢失的情况下,基于原始数据块也能够再现丢失的校验块。相关技术中,为恢复丢失的校验块,在获取原始数据块时耗费了大量的流量和时间,降低了数据恢复的效率。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种校验块的生成方法及装置。
为实现上述目的,本说明书一个或多个实施例提供如下技术方案:
根据本说明书一个或多个实施例的第一方面,提出了一种校验块的生成方法,所述方法包括:
针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;
针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块;
基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
根据本说明书一个或多个实施例的第二方面,提出了一种校验块的生成装置,所述装置包括全局矩阵确定单元、局部矩阵确定单元和校验块生成单元:
所述全局矩阵确定单元,针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;
所述局部矩阵确定单元,针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块;
所述校验块生成单元,基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括处理器和用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令实现如上述第一方面所述方法中的步骤。
根据本说明书一个或多个实施例的第四方面,提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述方法中的步骤。
由以上描述可以看出,本说明书中,针对待生成校验块的多个原始数据块,先确定了其全局编码矩阵,在将多个原始数据块划分至各个局部域后,又基于所述全局编码矩阵分别确定了各个局部域的局部编码矩阵,继而基于所述全局编码矩阵生成了所述多个原始数据块的全局校验块,基于各个局部域的局部编码矩阵生成了各个局部域的局部校验块,其中,生成各个局部域的局部校验块时所采用的局部编码矩阵是在全局编码矩阵的基础上确定的,因而使得局部校验块与全局校验块产生彼此间的推导关系。基于所述推导关系可以由未丢失的校验块实现丢失校验块的恢复,减少了为获取原始数据块而耗费的流量和时间,优化了校验块的生成方式,提高了数据恢复的效率。
附图说明
图1是一示例性实施例提供的一种校验块的生成方法的流程示意图。
图2是一示例性实施例示出的确定局部编码矩阵的方法流程示意图。
图3是一示例性实施例示出的生成全局校验块和局部校验块的方法流程示意图。
图4是一示例性实施例提供的一种校验块的生成装置所在电子设备的结构示意图。
图5是一示例性实施例提供的一种校验块的生成装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
随着技术发展和需求提升,数据存储的规模日益扩大,现行的数据存储方案大多是基于具有高可扩展性的分布式系统实现的。在所述分布式系统中,数据以数据块的形式进行存储,一个文件或一个存储请求要求存储的所有数据将被分解为多个数据块(Block)分别存储在不同的磁盘或存储节点上。
为了保障数据的可恢复性,分布式系统在以数据块进行数据存储时,一般还会结合纠删码(Erasure Code)的编码方式在原始数据块的基础上设置用于数据恢复的校验块(Parity Block)。所述校验块一般可分为全局校验块(Global Parity Block)和局部校验块(Local Reconstruction Parity Block),其中,基于待生成校验块的全部多个原始数据块可以生成所述多个原始数据块的全局校验块,而在将所述多个原始数据块分别划分至不同局部域后,针对各个局部域内的原始数据块可以分别生成各个局部域的局部校验块。
在原始数据块部分丢失的情况下,基于未丢失的原始数据块和校验块能够对丢失的原始数据块进行恢复,而在校验块丢失的情况下,基于原始数据块也能够再现丢失的校验块。
举例来说,假设存在6个待生成校验块的原始数据块D1、D2、D3、D4、D5、D6,将它们分别划分至两个局部域中,局部域F1内包括原始数据块D1、D2、D3,局部域F2内包括原始数据块D4、D5、D6。针对6个原始数据块D1、D2、D3、D4、D5、D6,可以生成全局校验块P1,P1=D1+2D2+3D3+4D4+5D5+6D6;针对局部域F1内原始数据块D1、D2、D3可以生成局部域F1的局部校验块L1,L1=D1+D2+D3;针对局部域F2内原始数据块D4、D5、D6可以生成局部域F2的局部校验块L2,L2=D4+D5+D6。此处及后文的“+”运算可以采用异或运算实现。
在原始数据块D1丢失的情况下,基于其所属局部域F1内剩余未丢失的原始数据块D2、D以及局部域F1的局部校验块L1可以恢复丢失的原始数据块D1,D1=L1-(D2+D3);或者,基于其他未丢失的原始数据块D2、D3、D4、D5、D6以及全局校验块P1也可以恢复丢失的原始数据块D1,D1=P1-(2D2+3D3+4D4+5D5+6D6)。此处及后文的“-”运算可以基于异或运算实现。
而在全局校验块P1丢失的情况下,基于全部原始数据块D1、D2、D3、D4、D5、D6可以再现丢失的全局校验块P1,P1=D1+D2+D3+D4+D5+D6;在局部校验块L1丢失的情况下,基于局部域F1内的原始数据块D1、D2、D3可以再现丢失的局部校验块L1,L1=D1+D2+D3。
可以看出,相关技术中,在校验块丢失的情况下,为恢复丢失的校验块需要对原始数据块进行获取,原始数据块的数量越多,校验块恢复的流量及时间消耗越大,从而造成数据恢复效率降低的问题。
有鉴于此,本说明书提供一种校验块的生成方法,基于生成全局校验块所采用的全局编码矩阵确定生成各个局部校验块的局部编码矩阵,使得全局校验块与各个局部校验块之间具备推导关系,从而在恢复校验块时能够减少对原始数据块的获取,降低流量和时间消耗,提高数据恢复的效率。
请参考图1,图1所示为一示例性实施例提供的一种校验块的生成方法的流程示意图。
图1所示的校验块的生成方法,可以应用在分布式系统中的任一节点设备上,所述分布式系统提供数据存储服务。
所述校验块的生成方法,可以包括如下具体步骤:
步骤102,针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵。
分布式系统中以数据块的形式进行数据存储,一份待存储的文件或用户的一个存储请求要求存储的所有数据将被分解为多个待存储的原始数据块,分解得到的多个原始数据块可以存储在分布式系统中不同的节点设备上,也可以存储在同一节点设备的不同磁盘上,从而避免了所述文件或所述存储请求要求存储的数据因为某一节点设备或某一磁盘的故障而全部丢失。
为实现数据恢复,针对待生成校验块的多个原始数据块,分布式系统中的任一节点设备,首先可以确定所述多个原始数据块的全局编码矩阵,以基于所述全局编码矩阵生成所述多个原始数据块的全局校验块。所述任一节点设备,可以是存储所述原始数据块的节点设备之一,也可以是分布式系统中用于生成校验块的节点设备。
所述全局编码矩阵采用预设的矩阵格式,基于待生成校验块的原始数据块的数量以及预先设置的全局校验块的数量加以确定。所述全局编码矩阵的矩阵格式存在多种可选择的实现格式,而待生成校验块的原始数据块的数量以及要求生成的全局校验块的数量可以视实际应用场景加以设定,本说明书中对此不做具体限制。
以为k个原始数据块D1、D2、......、Dk生成m个全局校验块P1、P2、......、Pm为例,k、m均为正整数,预设采用范德蒙德(Vandermonde)矩阵的格式对全局编码矩阵进行确定,所述全局编码矩阵如公式(1)所示:
要说明的是,所述全局编码矩阵虽然存在多种可选择的矩阵格式,但为了实现纠删码针对k个原始数据块和m个全局校验块,在丢失的原始数据块的数量不超出m的情况下仍能对丢失的原始数据块进行恢复的编码要求,所述全局编码矩阵中的任意全局编码向量应当与单位矩阵中的任意向量构成可逆矩阵,所述单位矩阵的阶数与所述原始数据块的数量一致,上述范德蒙德矩阵的格式为能够满足这一编码要求的矩阵格式之一。
步骤104,针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块。
待生成校验块的多个原始数据块将被划分至多个局部域中,各个局部域内包括归属于所述局部域的原始数据块,局部校验块的生成将针对各个局部域进行。所述局部域的划分存在多种可选择的实现方式,划分出的局部域的数量可以是预先设置的,也可以是视待生成校验块的原始数据块的数量而变化的;各个局部域内包括的原始数据块的数量可以一致,也可以不一致;各个局部域内包括的原始数据块可以是在原始的文件或存储请求中连续的数据块,也可以是随机而不连续的数据块;本说明书中对此不做具体限制。
在一个例子中,可以预先设置每个局部域内包括的原始数据块的数量,基于待生成校验块的原始数据块的数量确定划分出的局部域的数量,在确定了局部域的数量以及每个局部域内包括的原始数据块的数量后,再将所述多个原始数据块依照其在分解时的连续顺序划分至各个局部域中。例如,针对待生成校验块的原始数据块D1、D2、D3、D4、D5、D6,预先设置每个局部域内包括的原始数据块的数量为3,确定将划分出2个局部域,将在分解时连续得到的原始数据块D1、D2、D3划分至局部域F1,原始数据块D4、D5、D6划分至局部域F2。
完成局部域的划分后,可以确定各个局部域及其中包括的原始数据块,针对每个局部域,在步骤102确定的全局编码矩阵的基础上确定所述局部域的局部编码矩阵,以使基于各个局部域的局部编码矩阵生成的局部校验块与基于所述全局编码矩阵生成的全局校验块之间具备推导关系。
基于前述,所述全局编码矩阵包括一或多个全局编码向量,每个全局编码向量中包括与各个原始数据块一一对应的全局编码参数,以为k个原始数据块D1、D2、......、Dk生成m个全局校验块P1、P2、......、Pm为例,所述全局编码矩阵中包括m个全局编码向量,第i个全局编码向量中包括与原始数据块Dj一一对应的k个全局编码参数Aij(i=1、2、......、m;j=1、2、......、k),以公式(1)所示的全局编码矩阵为例,第i个全局编码向量如公式(2)所示:
假设划分出n个局部域,针对每个局部域Fq(q=1、2、......、n),可以基于所述全局编码矩阵中的全局编码参数Aij确定所述局部域Fq的局部编码矩阵中的局部编码参数Bqr(r=1、2、......、rmax,rmax与所述局部域内包括的原始数据块的数量一致),由所述局部编码参数Bqr构成所述局部域Fq的局部编码矩阵,如公式(3)所示:
基于全局编码矩阵确定局部域的局部编码矩阵,存在多种可选择实现方式,本说明书对此不做具体限制。可以理解的是,基于全局编码矩阵确定各个局部域的局部编码矩阵的逻辑影响着全局校验块与各个局部域的局部校验块之间的推导关系。
步骤106,基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
在确定全局编码矩阵和各个局部域的局部编码矩阵后,基于所述全局编码矩阵可以生成所述多个原始数据块的全局校验块,所述全局编码矩阵中的第i个全局编码向量对应生成第i个全局校验块Pi;基于各个局部域的局部编码矩阵可以生成各个局部域的局部校验块,基于第q个局部域Fq的局部编码矩阵对应生成所述局部域Fq的局部校验块Lq。
在一个例子中,基于公式(1)所示的全局编码矩阵,生成k个原始数据块D1、D2、......、Dk的m个全局校验块P1、P2、......、Pm,如公式(4)所示:
所述全局校验块可以用于恢复丢失的原始数据块,当k个原始数据块中丢失的原始数据块的数量不超出m的情况下,假设丢失了原始数据块D1、D2,对丢失的原始数据块D1、D2进行恢复的方式,如公式(5)所示:
而针对一个包括原始数据块D1、D2、D3的局部域F1,所述局部域F1的局部编码矩阵,如公式(6)所示:
[B11 B12 B13] 公式(6)
基于公式(6)所示的局部域F1的局部编码矩阵,生成所述局部域F1的局部校验块L1,如公式(7)所示:
其中,所述局部校验块L1=B11*D1+B12*D2+B13*D3。
所述局部校验块可以用于恢复所述局部域内丢失的原始数据块,当局部域F1内的原始数据块D1丢失的情况下,基于局部域F1的局部编码矩阵以及域内未丢失的数据块D2、D3,可以对丢失的原始数据块D1进行恢复,D1=(L1-B12*D2-B13*D3)/B11。
由于各个局部域的局部编码矩阵是在全局编码矩阵的基础上确定的,故而基于所述全局编码矩阵生成的全局校验块与基于所述局部编码矩阵生成的各个局部域的局部校验块之间产生推导关系,步骤106中所述全局校验块与各个局部域的局部校验块之间的推导关系由步骤104中基于所述全局编码矩阵确定各个局部域的局部编码矩阵的逻辑确定。
由以上描述可以看出,本说明书中,针对待生成校验块的多个原始数据块,先确定了其全局编码矩阵,在将多个原始数据块划分至各个局部域后,又基于所述全局编码矩阵分别确定了各个局部域的局部编码矩阵,继而基于所述全局编码矩阵生成了所述多个原始数据块的全局校验块,基于各个局部域的局部编码矩阵生成了各个局部域的局部校验块,其中,生成各个局部域的局部校验块时所采用的局部编码矩阵是在全局编码矩阵的基础上确定的,因而使得局部校验块与全局校验块产生彼此间的推导关系。基于所述推导关系可以由未丢失的校验块实现丢失校验块的恢复,减少了为获取原始数据块而耗费的流量和时间,优化了校验块的生成方式,提高了数据恢复的效率。
为了使本领域技术人员更好地理解本说明书中的技术方案,下面对前文所述内容做进一步的详细说明。
请参考图2,在一种可选择的实现方式下,步骤104,针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块,可以包括如下步骤:
步骤1042,针对所述局部域内的每个原始数据块,基于所述全局编码矩阵的各个全局编码向量中与所述原始数据块对应的全局编码参数,确定所述原始数据块对应的局部编码参数,得到所述局部域内各个原始数据块对应的局部编码参数。
步骤1044,基于所述局部域内各个原始数据块对应的局部编码参数,确定所述局部域的局部编码矩阵。
假设划分出n个局部域,针对每个局部域Fq(q=1、2、……、n),可以确定所述局部域Fq的局部编码矩阵。所述局部编码矩阵中包括与所述局部域Fq内各个原始数据块一一对应的局部编码参数,针对所述局部域Fq内的每个原始数据块Dj,基于全局编码矩阵的各个全局编码向量中与所述原始数据块Dj对应的全局编码参数Aij,可以确定所述局部域内所述原始数据块对应的局部编码参数Bqj。
以包括原始校验块D1、D2、D3的局部域F1为例,所述局部域F1的局部编码矩阵中包括与原始数据块D1、D2、D3一一对应的局部编码参数B11、B12、B13,基于全局编码矩阵中与原始数据块D1对应的各个全局编码参数Ai1(i=1、2、......、m)可以确定所述局部编码参数B11,基于全局编码矩阵中与原始数据块D2对应的各个全局编码参数Ai2(i=1、2、......、m)可以确定所述局部编码参数B12,基于全局编码矩阵中与原始数据块D3对应的各个全局编码参数Ai3(i=1、2、......、m)可以确定所述局部编码参数B13。
在一个例子中,原始数据块对应的局部编码参数可以为其对应的全局编码参数之和,则B11=A11+A21+…+Am1,B12=A12+A22+…+Am2,B13=A13+A23+…+Am3。
在确定所述局部域内各个原始数据块对应的局部编码参数后,基于所述局部编码参数可以确定所述局部域的局部编码矩阵,如上述局部域F1的局部编码矩阵为[A11+A21+…+Am1 A12+A22+…+Am2 A13+A23+…+Am3]。
可以理解的是,基于全局编码矩阵确定各个局部域的局部编码矩阵的逻辑影响着全局校验块以及各个局部域的局部校验块之间的推导关系。基于前例,当各个局部域内的原始数据块对应的局部编码参数为其对应的全局编码参数之和时,步骤106中基于所述全局编码矩阵生成的全局校验块执行异或运算的值,与基于各个局部域的局部编码矩阵生成的局部校验块执行异或运算的值相一致:
请参考图3,在一种可选择的实现方式下,步骤106,基于全局编码矩阵生成多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,可以包括如下步骤:
步骤1062,基于全局编码矩阵和各个局部域的局部编码矩阵确定目标编码矩阵。
在确定了全局编码矩阵以及各个局部域的局部编码矩阵后,结合所述全局编码矩阵以及各个局部域的局部编码矩阵可以确定目标编码矩阵,在一个例子中,可以对各个局部域的局部编码矩阵可以进行补零填充,并将补零填充后的各个局部域的局部编码矩阵与全局编码矩阵拼接得到所述目标编码矩阵。
所述目标编码矩阵包括多个目标编码向量,所述目标编码向量与各个校验块一一对应,每个目标编码向量中包括与各个原始数据块一一对应的目标编码参数。
其中,对应于全局校验块的目标编码向量可以采用全局编码矩阵中的全局编码向量,所述目标编码向量中的目标编码参数可以为全局编码向量中的全局编码参数;对应于各个局部域的局部校验块的目标编码向量则可以基于所述局部域的局部编码矩阵确定,所述目标编码向量中对应于所述局部域内原始数据块的目标编码参数可以为局部编码矩阵中的局部编码参数,而对应于所述局部域外原始数据块的目标编码参数可以为0。
步骤1064,基于所述目标编码矩阵生成所述多个原始数据块的全局校验块以及各个局部域的局部校验块。
基于已确定的目标编码矩阵生成各个校验块,其中,基于所述目标编码矩阵中的各个全局编码向量可以生成各个全局校验块,基于所述目标编码矩阵中由各个局部域的局部编码矩阵确定的目标编码向量可以生成各个局部域的局部校验块。要说明的是,基于目标编码矩阵可以一次生成全局校验块以及各个局部域的局部校验块。
该方式下,通过将全局编码矩阵以及各个局部域的局部编码矩阵结合在一个目标编码矩阵中,并基于所述目标编码矩阵完成全局校验块以及各个局部域的局部校验块的生成,相较于基于全局编码矩阵、各个局部域的局部编码矩阵分别生成全局校验块以及各个局部校验块,简化了运算过程,提高了生成校验块的效率。
可选择地,本说明书提供的校验块的生成方法,还可以包括对校验块的恢复方法。
在一种可选择的实现方式下,所述方法还包括对全局校验块的恢复方法:
在任一全局校验块丢失的情况下,基于未丢失的全局校验块以及各个局部域的局部校验块,对已丢失的全局校验块进行恢复。
恢复所述全局校验块的方式,视步骤106中基于全局编码矩阵确定各个局部域的局部编码矩阵时所采用的逻辑而定,以前文所述,局部域内原始数据块对应的局部编码参数为其对应的各个全局编码参数之和为例,全局校验块P1、P2、......、Pm与各个局部域的局部校验块L1、L2、......、Ln之间的推导关系为P1+P2+......+Pm=L1+L2+......+Ln,基于未丢失的全局校验块以及各个局部域的局部校验块可以恢复丢失的任一全局校验块Pi,
在一种可选择的实现方式下,所述方法还包括对局部校验块的恢复方法:
在任一局部校验块丢失的情况下,基于全局校验块以及未丢失的各个局部域的局部校验块,对已丢失的局部校验块进行恢复。
恢复所述全局校验块的方式,视步骤106中基于全局编码矩阵确定各个局部域的局部编码矩阵时所采用的逻辑而定,以前文所述,局部域内原始数据块对应的局部编码参数为其对应的各个全局编码参数之和为例,全局校验块P1、P2、......、Pm与各个局部域的局部校验块L1、L2、......、Ln之间的推导关系为P1+P2+......+Pm=L1+L2+......+Ln,基于未丢失的全局校验块以及各个局部域的局部校验块可以恢复丢失的任一全局校验块Lq,
相较于相关技术中在恢复全局校验块时需要获取全部原始数据块,在恢复局部校验块时需要获取对应局部域内的全部原始数据块,本说明书提供的校验块的生成方法基于未丢失的校验块就可以恢复任一丢失的全局校验块或局部校验块,消耗的流量及时间减少,数据恢复的效率提升,并且在待生成校验块的原始数据块的数量越大的情况下,效果越为显著。
为了使本领域技术人员更好地理解本说明书中的技术方案,下面结合一个具体的例子对本说明书提供的一种校验块的生成方法进行详细说明。
分布式系统中的一节点设备,针对待生成校验块的原始数据块D1、D2、D3、D4、D5、D6,以及预先设置的全局校验块数量:2,采用范德蒙德矩阵的格式确定原始数据块D1、D2、D3、D4、D5、D6的全局编码矩阵,如下:
对原始数据块D1、D2、D3、D4、D5、D6进行划分,将其划分至两个局部域中,局部域F1包括原始数据块D1、D2、D3,局部域F2包括原始数据块D4、D5、D6。
针对局部域F1,确定其局部编码矩阵,域内原始数据块D1在全局编码矩阵中对应的全局编码参数为1、1,确定原始数据块1对应的局部编码参数B11为二者之和:2;域内原始数据块D2在全局编码矩阵中对应的全局编码参数为1、2,确定其对应的局部编码参数B12为3;域内原始数据块D3对应的局部编码参数B13为5,从而确定局部域F1的局部编码矩阵,如下:
[2 3 5]
同理,确定局部域F2的局部编码矩阵,如下:
[9 17 33]
基于上述全局编码矩阵以及各个局部域的局部编码矩阵,采用补零和拼接的方式确定目标编码矩阵,所述目标编码矩阵中包括与校验块数量一致的目标编码向量,每个目标编码向量中包括与原始数据块数量一致的目标编码参数,与全局校验块对应的目标编码向量沿用全局编码向量,与局部校验块对应的目标编码向量则在各个局部域的局部编码矩阵的基础上补零构成,将全局编码矩阵以及补零后的局部编码矩阵拼接得到的目标编码矩阵,如下:
基于目标编码矩阵,可以生成原始数据块D1、D2、D3、D4、D5、D6的全局校验块P1、P2,以及局部域F1的局部校验块L1和局部域F2的局部校验块L2,如下:
在任一全局校验块或局部校验块丢失的情况下,基于P1+P2=L1+L2的推导关系,可以基于未丢失的校验块,恢复丢失的全局校验块或局部校验块。
由以上描述可以看出,本说明书中,针对待生成校验块的多个原始数据块,先确定了其全局编码矩阵,在将多个原始数据块划分至各个局部域后,又基于所述全局编码矩阵分别确定了各个局部域的局部编码矩阵,继而基于所述全局编码矩阵生成了所述多个原始数据块的全局校验块,基于各个局部域的局部编码矩阵生成了各个局部域的局部校验块,其中,生成各个局部域的局部校验块时所采用的局部编码矩阵是在全局编码矩阵的基础上确定的,因而使得局部校验块与全局校验块产生彼此间的推导关系。基于所述推导关系可以由未丢失的校验块实现丢失校验块的恢复,减少了为获取原始数据块而耗费的流量和时间,优化了校验块的生成方式,提高了数据恢复的效率。
图4是一示例性实施例提供的一种电子设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,本说明书提供的一种校验块的生成装置可以应用于如图4所示的电子设备中,以实现本说明书的技术方案。其中,所述校验块的生成装置可以包括全局矩阵确定单元510、局部矩阵确定单元520和校验块生成单元530:
所述全局矩阵确定单元510,针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;
所述局部矩阵确定单元520,针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块;
所述校验块生成单元530,基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
可选择地,所述全局编码矩阵包括一或多个全局编码向量,每个全局编码向量中包括与各个原始数据块一一对应的全局编码参数;
所述局部矩阵确定单元520,在针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵时,包括:
针对所述局部域内的每个原始数据块,基于各个全局编码向量中与所述原始数据块对应的全局编码参数,确定所述原始数据块对应的局部编码参数,得到所述局部域内各个原始数据块对应的局部编码参数;
基于所述局部域内各个原始数据块对应的局部编码参数,确定所述局部域的局部编码矩阵。
可选择地,所述校验块生成单元530,在基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块时,包括:
基于全局编码矩阵和各个局部域的局部编码矩阵确定目标编码矩阵;
基于所述目标编码矩阵生成所述多个原始数据块的全局校验块以及各个局部域的局部校验块。
可选择地,所述装置还包括:
校验块恢复单元540,在任一全局校验块丢失的情况下,基于未丢失的全局校验块以及各个局部域的局部校验块,对已丢失的全局校验块进行恢复。
可选择地,所述装置还包括:
校验块恢复单元540,在任一局部校验块丢失的情况下,基于全局校验块以及未丢失的各个局部域的局部校验块,对已丢失的局部校验块进行恢复。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种校验块的生成方法,所述方法包括:
针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;
针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块;
基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
2.根据权利要求1所述的方法,所述全局编码矩阵包括一或多个全局编码向量,每个全局编码向量中包括与各个原始数据块一一对应的全局编码参数;
针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵,包括:
针对所述局部域内的每个原始数据块,基于各个全局编码向量中与所述原始数据块对应的全局编码参数,确定所述原始数据块对应的局部编码参数,得到所述局部域内各个原始数据块对应的局部编码参数;
基于所述局部域内各个原始数据块对应的局部编码参数,确定所述局部域的局部编码矩阵。
3.根据权利要求1所述的方法,所述基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,包括:
基于全局编码矩阵和各个局部域的局部编码矩阵确定目标编码矩阵;
基于所述目标编码矩阵生成所述多个原始数据块的全局校验块以及各个局部域的局部校验块。
4.根据权利要求1所述的方法,还包括:
在任一全局校验块丢失的情况下,基于未丢失的全局校验块以及各个局部域的局部校验块,对已丢失的全局校验块进行恢复。
5.根据权利要求1所述的方法,还包括:
在任一局部校验块丢失的情况下,基于全局校验块以及未丢失的各个局部域的局部校验块,对已丢失的局部校验块进行恢复。
6.一种校验块的生成装置,所述装置包括全局矩阵确定单元、局部矩阵确定单元和校验块生成单元:
所述全局矩阵确定单元,针对待生成校验块的多个原始数据块,确定所述多个原始数据块的全局编码矩阵;
所述局部矩阵确定单元,针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵;各个局部域内包括归属于所述局部域的原始数据块;
所述校验块生成单元,基于所述全局编码矩阵生成所述多个原始数据块的全局校验块,并基于各个局部域的局部编码矩阵生成各个局部域的局部校验块,以使所述全局校验块与所述各个局部域的局部校验块之间具备推导关系。
7.根据权利要求6所述的装置,所述全局编码矩阵包括一或多个全局编码向量,每个全局编码向量中包括与各个原始数据块一一对应的全局编码参数;
所述局部矩阵确定单元,在针对划分所述多个原始数据块得到的各个局部域,基于所述全局编码矩阵确定所述局部域的局部编码矩阵时,包括:
针对所述局部域内的每个原始数据块,基于各个全局编码向量中与所述原始数据块对应的全局编码参数,确定所述原始数据块对应的局部编码参数,得到所述局部域内各个原始数据块对应的局部编码参数;
基于所述局部域内各个原始数据块对应的局部编码参数,确定所述局部域的局部编码矩阵。
8.根据权利要求6所述的装置,还包括:
全局校验块恢复单元,在任一全局校验块丢失的情况下,基于未丢失的全局校验块以及各个局部域的局部校验块,对已丢失的全局校验块进行恢复。
9.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令实现如权利要求1-5中任一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176152.3A CN114048061A (zh) | 2021-10-09 | 2021-10-09 | 校验块的生成方法及装置 |
PCT/CN2022/123497 WO2023056904A1 (zh) | 2021-10-09 | 2022-09-30 | 校验块的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176152.3A CN114048061A (zh) | 2021-10-09 | 2021-10-09 | 校验块的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048061A true CN114048061A (zh) | 2022-02-15 |
Family
ID=80205098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111176152.3A Pending CN114048061A (zh) | 2021-10-09 | 2021-10-09 | 校验块的生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114048061A (zh) |
WO (1) | WO2023056904A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454712A (zh) * | 2022-11-11 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种校验码恢复方法、系统、电子设备及存储介质 |
WO2023056904A1 (zh) * | 2021-10-09 | 2023-04-13 | 阿里云计算有限公司 | 校验块的生成方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106527993B (zh) * | 2016-11-09 | 2019-08-30 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中的海量文件储存方法及装置 |
CN107656832B (zh) * | 2017-09-18 | 2019-10-25 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
CN107844272A (zh) * | 2017-10-31 | 2018-03-27 | 成都信息工程大学 | 一种提高纠错能力的交叉分组编译码方法 |
CN107994971B (zh) * | 2017-11-17 | 2020-06-02 | 南通大学 | 面向有限缓冲区中继链路的编码传输方法及编码通信系统 |
US11531593B2 (en) * | 2018-09-03 | 2022-12-20 | Here Data Technology | Data encoding, decoding and recovering method for a distributed storage system |
KR102109015B1 (ko) * | 2018-10-23 | 2020-05-11 | 네이버 주식회사 | 부분 접속 복구가 가능하고 중복 인코딩이 용이한 데이터 저장 방법 및 시스템 |
CN114048061A (zh) * | 2021-10-09 | 2022-02-15 | 阿里云计算有限公司 | 校验块的生成方法及装置 |
-
2021
- 2021-10-09 CN CN202111176152.3A patent/CN114048061A/zh active Pending
-
2022
- 2022-09-30 WO PCT/CN2022/123497 patent/WO2023056904A1/zh unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023056904A1 (zh) * | 2021-10-09 | 2023-04-13 | 阿里云计算有限公司 | 校验块的生成方法及装置 |
CN115454712A (zh) * | 2022-11-11 | 2022-12-09 | 苏州浪潮智能科技有限公司 | 一种校验码恢复方法、系统、电子设备及存储介质 |
CN115454712B (zh) * | 2022-11-11 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 一种校验码恢复方法、系统、电子设备及存储介质 |
WO2024098647A1 (zh) * | 2022-11-11 | 2024-05-16 | 苏州元脑智能科技有限公司 | 一种校验码恢复方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023056904A1 (zh) | 2023-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180181324A1 (en) | Data protection with erasure coding and xor | |
CN110471795B (zh) | 区块链状态数据恢复方法及装置、电子设备 | |
US10503611B1 (en) | Data protection management for distributed storage | |
Rashmi et al. | Having your cake and eating it too: Jointly optimal erasure codes for {I/O}, storage, and network-bandwidth | |
WO2023056904A1 (zh) | 校验块的生成方法及装置 | |
US20190205212A1 (en) | Method and apparatus for storing data and method and apparatus for recovering data | |
WO2023116238A1 (zh) | 基于纠删码的编码方法、分布式系统、设备及存储介质 | |
CN111064471B (zh) | 数据处理方法、装置及电子设备 | |
CN112200713A (zh) | 一种联邦学习中的业务数据处理方法、装置以及设备 | |
US9344120B2 (en) | Adjusting redundancy in an erasure code object store to account for varying data value | |
CN111782152A (zh) | 数据存储方法、数据恢复方法、装置、服务器及存储介质 | |
JP2019504426A (ja) | ランダム文字列を生成する方法および装置 | |
CN115098295A (zh) | 数据局部恢复方法、设备及存储介质 | |
CN104636673A (zh) | 一种在大数据背景下的数据安全存储方法 | |
CN109844774B (zh) | 一种并行反卷积计算方法、单引擎计算方法及相关产品 | |
CN113901395A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN114924911B (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
US10050775B2 (en) | Element replication device, element replication method, and program | |
CN115834018A (zh) | 一种保护隐私的多方数据处理方法、系统和设备 | |
CN114501029B (zh) | 图像编码、图像解码方法、装置、计算机设备和存储介质 | |
CN110796238B (zh) | 基于arm架构fpga硬件系统的卷积神经网络权重压缩方法及其装置 | |
CN112015325B (zh) | 一种生成解码矩阵的方法、解码方法和对应装置 | |
US10191678B1 (en) | System and method for data re-protection with erasure coding | |
CN113778346A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067022 Country of ref document: HK |