CN115993941B - 分布式数据存储纠错方法及系统 - Google Patents
分布式数据存储纠错方法及系统 Download PDFInfo
- Publication number
- CN115993941B CN115993941B CN202310287200.9A CN202310287200A CN115993941B CN 115993941 B CN115993941 B CN 115993941B CN 202310287200 A CN202310287200 A CN 202310287200A CN 115993941 B CN115993941 B CN 115993941B
- Authority
- CN
- China
- Prior art keywords
- data
- groups
- check
- information data
- error correction
- 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
Classifications
-
- 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
Abstract
本发明提供了一种分布式数据存储纠错方法及系统,分布式数据存储纠错方法包括:在数据存储过程中,将原始文件划分成多组信息数据;将多组信息数据进行编码后对应得到多组编码数据,将多组编码数据存储在多个存储节点中;在数据读取过程中,读取存储节点存储的多组编码数据;利用多组编码数据之间的约束关系进行纠错恢复以得到多组信息数据;将恢复得到的多组信息数据合并成原始文件。分布式数据存储纠错系统应用于分布式数据存储纠错方法。本发明技术避免了数据恢复过程中的多元有限域上的矩阵求逆运算,降低了数据恢复的计算复杂度,进而提高了数据恢复效率。
Description
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种分布式数据存储纠错方法及系统。
背景技术
随着信息技术的飞速发展,需要的数据存储量呈爆炸式增长,从而对数据存储性能提出了更高要求。分布式存储在性能方面具有其他存储方式无法比拟的优势,成为当今主流的数据存储方式,被若干大型数据中心采用。然而,数据存储节点不可避免地受到一些因素(例如发生故障)的影响而失效,导致存储数据丢失。因此,如何设计有效方法对失效的存储节点的数据进行纠错和修复,获得更好的数据存储性能,是分布式存储系统面临的关键问题之一。
容错技术是提高分布式存储系统数据可靠性的重要手段。目前常用的分布式存储系统容错技术主要包括多副本技术和纠删码两大类。多副本技术把相同数据的多个副本存储到不同的节点上,这些副本之间相互备份,当某个存储节点失效时,可以通过具有相同数据副本的存储节点进行数据恢复。通过设计副本数目,多副本技术可以提高分布式存储系统的可靠性,但是系统的整体存储效率过低。与多副本技术相比,使用纠删码来构建存储系统的容错机制能够在可靠性和效率之间获得更好的折中。这类容错机制中最常使用的纠删码是极大距离可分码(Maximum Distance Separable code,简称为MDS码)。MDS码具有最优恢复能力,并且容错能力可以灵活配置。但是,MDS码在数据恢复过程中涉及多元有限域上的大量计算,特别地涉及多元有限域上的矩阵求逆计算,具有高复杂度的特征,不利于实际分布式存储系统中的应用。
发明内容
本发明的主要目的在于提供一种分布式数据存储纠错方法及系统,以至少解决现有技术中纠删码数据恢复过程中的多元有限域上的矩阵求逆运算计算复杂度太高,数据恢复时间太长的问题。
为了实现上述目的,本发明提供了一种分布式数据存储纠错方法及系统。
本发明一方面提供了一种分布式数据存储纠错方法,包括:在数据存储过程中,将原始文件划分成多组信息数据;多组所述信息数据进行编码后对应得到多组编码数据,将多组所述编码数据存储在多个存储节点中;在数据读取过程中,读取所述存储节点存储的多组所述编码数据;利用多组所述编码数据之间的约束关系进行纠错恢复以得到多组所述信息数据;将恢复得到的多组所述信息数据合并成所述原始文件;其中,所述将多组所述信息数据进行编码后对应得到多组编码数据包括:将k组所述信息数据构造为向量d = [d0,d1,…,dk-1],预先设置r组校验数据构造的向量p = [p0,p1,…,pr-1],预先选取多个系数Pi,j(0≤i<r, 0≤j<k),所述系数Pi,j(0≤i<r, 0≤j<k)的个数为r×k个;将k组所述信息数据构造的向量d = [d0,d1,…,dk-1]与多个所述系数Pi,j(0≤i<r, 0≤j<k)通过运算得到r组所述校验数据构造的向量p = [p0,p1,…,pr-1],所述运算包括:
p0 = P0,0d0 + P0,1d1 + … + P0,k-1dk-1
p1 = P1,0d0 + P1,1d1 + … + P1,k-1dk-1
…
pr-1 = Pr-1,0d0 + P r-1,1d1 + … + P r-1,k-1dk-1
将得到的所述校验数据和所述信息数据共同编码组成所述编码数据;
其中,利用多组所述编码数据之间的约束关系进行纠错恢复包括:读取所述存储节点存储的所述编码数据中的所述信息数据和所述校验数据;所述信息数据为k组,所述校验数据为r组;将读取的所述编码数据中的k组所述信息数据和r组所述校验数据构成一个向量x,所述向量x的第i个分量xi对应第i组所述信息数据或所述校验数据;若读取的所述编码数据没有丢失,则读取结果为所述向量x的值,否则读取结果为一个特殊固定值,记为缺失值;预先设置校验矩阵H,所述校验矩阵H每列对应一个所述向量x,所述校验矩阵H每行对应一个校验方程;判断读取的所述向量x中的所述信息数据是否丢失;如果所述信息数据丢失,将所述向量x传递至所述校验方程;根据所述校验方程判断所述向量x是否可以将丢失的所述信息数据恢复;若可以恢复,则进行数据恢复,并将恢复的所述信息数据恢复传递至所述向量x;所述数据恢复使用的计算方法为:
其中,xi*为需要恢复的信息数据,hji*为xi*在所述校验矩阵H的某行上对应的元
素,为hji*的逆,Σi∈M(j)\i*hjixi为所述校验矩阵H的某行上除hji*以外的非零元素与所
述向量x的对应元素乘积之和;重复上述过程,直至丢失的所述信息数据全部恢复或者恢复
过程无法继续进行;纠错恢复多组所述编码数据后,得到多组所述信息数据。
进一步地,每组所述信息数据包含若干块,每块所述信息数据的长度为固定值。
进一步地,将多组所述编码数据存储在存储节点中包括:将每组所述编码数据在每个所述存储节点存储为一个数据块,所述数据块中包含所述校验数据和所述信息数据,所述信息数据存储在信息节点,所述校验数据存储在校验节点;其中,所述存储节点中包括所述信息节点和所述校验节点。
进一步地,在所述读取所述存储节点存储的多组所述编码数据时,读取丢失的所述数据块数量不超过所述校验数据的块数时,通过纠错译码恢复出原始的所述信息数据。
进一步地,通过在所述校验方程中设置条件进行判断所述恢复过程是否可以继续进行。
本发明另一方面提供了一种分布式数据存储纠错系统,分布式数据存储纠错系统应用于分布式数据存储纠错方法,分布式数据存储纠错系统包括:串并变换单元,串并变换单元用于将原始文件划分成多组信息数据;编码单元,编码单元用于将多组信息数据进行编码并对应得到多组编码数据;存储单元,存储单元用于将多组编码数据存储在存储节点中;读取单元,读取单元用于读取存储节点存储的多组编码数据;纠错恢复单元,纠错恢复单元用于利用多组编码数据之间的约束关系进行纠错恢复,以得到多组信息数据;合并单元,合并单元用于将恢复得到的多组信息数据合并成原始文件。
本发明技术方案提供了一种分布式数据存储纠错方法及系统。分布式数据存储纠错方法,包括:在数据存储过程中,将原始文件划分成多组信息数据;多组所述信息数据进行编码后对应得到多组编码数据,将多组所述编码数据存储在多个存储节点中;在数据读取过程中,读取所述存储节点存储的多组所述编码数据;利用多组所述编码数据之间的约束关系进行纠错恢复以得到多组所述信息数据;将恢复得到的多组所述信息数据合并成所述原始文件;其中,所述将多组所述信息数据进行编码后对应得到多组编码数据包括:将k组所述信息数据构造为向量d = [d0,d1,…,dk-1],预先设置r组校验数据构造的向量p =[p0,p1,…,pr-1],预先选取多个系数Pi,j(0≤i<r, 0≤j<k),所述系数Pi,j(0≤i<r, 0≤j<k)的个数为r×k个;将k组所述信息数据构造的向量d = [d0,d1,…,dk-1]与多个所述系数Pi,j(0≤i<r, 0≤j<k)通过运算得到r组所述校验数据构造的向量p = [p0,p1,…,pr-1],所述运算包括:
p0 = P0,0d0 + P0,1d1 + … + P0,k-1dk-1
p1 = P1,0d0 + P1,1d1 + … + P1,k-1dk-1
…
pr-1 = Pr-1,0d0 + P r-1,1d1 + … + P r-1,k-1dk-1
将得到的所述校验数据和所述信息数据共同编码组成所述编码数据;
其中,利用多组所述编码数据之间的约束关系进行纠错恢复包括:读取所述存储节点存储的所述编码数据中的所述信息数据和所述校验数据;所述信息数据为k组,所述校验数据为r组;将读取的所述编码数据中的k组所述信息数据和r组所述校验数据构成一个向量x,所述向量x的第i个分量xi对应第i组所述信息数据或所述校验数据;若读取的所述编码数据没有丢失,则读取结果为所述向量x的值,否则读取结果为一个特殊固定值,记为缺失值;预先设置校验矩阵H,所述校验矩阵H每列对应一个所述向量x,所述校验矩阵H每行对应一个校验方程;判断读取的所述向量x中的所述信息数据是否丢失;如果所述信息数据丢失,将所述向量x传递至所述校验方程;根据所述校验方程判断所述向量x是否可以将丢失的所述信息数据恢复;若可以恢复,则进行数据恢复,并将恢复的所述信息数据恢复传递至所述向量x;所述数据恢复使用的计算方法为:
其中,xi*为需要恢复的信息数据,hji*为xi*在所述校验矩阵H的某行上对应的元
素,为hji*的逆,Σi∈M(j)\i*hjixi为所述校验矩阵H的某行上除hji*以外的非零元素与所
述向量x的对应元素乘积之和;重复上述过程,直至丢失的所述信息数据全部恢复或者恢复
过程无法继续进行;纠错恢复多组所述编码数据后,得到多组所述信息数据。一种分布式数
据存储纠错系统,分布式数据存储纠错系统应用于分布式数据存储纠错方法,分布式数据
存储纠错系统包括:串并变换单元,串并变换单元用于将原始文件划分成多组信息数据;编
码单元,编码单元用于将多组信息数据进行编码并对应得到多组编码数据;存储单元,存储
单元用于将多组编码数据存储在存储节点中;读取单元,读取单元用于读取存储节点存储
的多组编码数据;纠错恢复单元,纠错恢复单元用于利用多组编码数据之间的约束关系进
行纠错恢复,以得到多组信息数据;合并单元,合并单元用于将恢复得到的多组信息数据合
并成原始文件。
本发明技术避免了纠删码数据恢复过程中的多元有限域上的矩阵求逆运算,降低了数据恢复的计算复杂度,进而提高了数据恢复效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例可选的一种分布式数据存储纠错方法的流程图;
图2是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码编码示意图;
图3是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码纠错恢复数据示意图;
图4是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码纠错恢复数据算法流程图;
图5是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码的校验矩阵示意图;
图6是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码的校验矩阵非零元素的逆构成的矩阵示意图;
图7是根据本发明实施例可选的一种分布式数据存储纠错系统示意图。
其中,上述附图包括以下附图标记:
10、串并变换单元;20、编码单元;30、存储单元;40、读取单元;50、纠错恢复单元;60、合并单元;201、信息数据;202、编码数据;2021、信息节点;2022、校验节点;301、读取数据。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是根据本发明实施例可选的一种分布式数据存储纠错方法的流程图。一种分布式数据存储纠错方法,包括以下步骤:
S101:在数据存储过程中,将原始文件划分成多组信息数据;
S102:将多组信息数据进行编码后对应得到多组编码数据,将多组编码数据存储在多个存储节点中;
S103:在数据读取过程中,读取存储节点存储的多组编码数据;
S104:利用多组编码数据之间的约束关系进行纠错恢复以得到多组信息数据;
S105:将恢复得到的多组信息数据合并成原始文件。
在上述步骤中,数据编码和纠错恢复是最关键的操作,直接影响存储系统的可靠性和计算复杂度。本发明提供了分布式存储系统中的高效数据存储及纠错恢复方案。
图2是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码编码示意图。假定每组信息数据201包含k块。为了便于实现,数据存储和读取通常以字节(8比特)为单位,即每块信息数据的长度选取为1字节。此时,每块信息数据对应有限域GF(256)中的一个元素。GF(256)是二元域GF(2)的扩域,其元素可用0、1、2 …255表示,每个元素对应于一个8比特二进制向量。GF(256)由GF(2)上的八次本原多项式构造得到,具体构造是本领域公知内容,不再详细介绍。数据编码采用纠删码方式,利用k块信息数据计算r块校验数据,得到n = k + r块编码数据202。
假定信息数据d = [d0,d1,…,dk-1],校验数据p = [p0,p1,…,pr-1]。校验数据的计算方法为:
p0 = P0,0d0 + P0,1d1 + … + P0,k-1dk-1
p1 = P1,0d0 + P1,1d1 + … + P1,k-1dk-1
…
pr-1 = Pr-1,0d0 + P r-1,1d1 + … + P r-1,k-1dk-1
其中,r×k个系数Pi,j(0≤i<r, 0≤j<k)为GF(256)中的元素。系数Pi,j(0≤i<r, 0≤j<k)的选择使得纠删码满足MDS码性质,即使得编码数据读取过程中丢失的数据数目不超过校验数据的块数r时,就可以通过纠错译码恢复出原始k个信息数据。
在完成计算后,将编码数据按块进行存储,每个存储节点存储一个数据块,其中k个信息节点2021存储信息数据,r个校验节点2022存储校验数据。
为了更清楚地说明上述编码计算和数据存储过程,下面以k=3、r=3为例具体进行描述。
假定信息数据d = [93,243,251],系数选择为P0,0 = 57、P0,1 = 176、P0,2 = 100、P1,0 = 193、P1,1 = 91、P1,2 = 25、P2,0 = 203、P2,1 = 87、P2,2 = 54使得构造的纠删码满足MDS性质。通过计算可以得出
p0 = 57×93 + 176×243 + 100×251 = 4
p1 = 193×93 + 91×243 + 25×251 = 7
p2 = 203×93 + 87×243 + 54×251 = 9
然后,将信息数据和校验数据进行存储,其中三个信息节点分别存储数据93、243、251;三个校验节点分别存储数据4、7、9。
图3是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码纠错恢复数据示意图。如前所述,数据存储节点的失效(图中标×的节点)会导致存储数据丢失。数据读取过程读取每个存储节点的数据块,获得读取数据301,然后将读取数据结果构成向量,其长度为n=k+r。若某个节点数据块没有丢失,则读取结果为该数据块的值,否则读取结果为缺失值(?)。数据纠错恢复采用特定的恢复方法,其保证当丢失数据数目不超过r时,就可以恢复出原始k个信息数据201。
目前典型的数据纠错恢复方案涉及多元有限域上的大量计算,特别地涉及多元有限域上的矩阵求逆计算,具有高复杂度的特征,不利于实际分布式存储系统中的应用。针对这一问题,本发明提出了一种分布式存储系统的纠删码高效纠错恢复算法。
图4是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码纠错恢复数据算法流程图。假定编码后的数据构成码字c = [d, p],纠删码的校验矩阵为H。由线性码性质可知,等式c∙HT = 0成立。其中,T表示矩阵转置。对于线性码,校验矩阵的构造是本领域公知内容,不再详细介绍。本发明利用上述约束关系,提出了一种高效数据纠错恢复算法,对读取结果向量中的缺失值进行恢复。
假定校验矩阵H的维数为m×n,H的第j行第i列元素为hji。定义I={1,2,…,n},J={1,2,…,m}。可以看出,I中每个元素对应编码后的一个数据块,J中每个元素对应一个校验方程。对于每个校验方程定义一个计数器,记tj为第j个校验方程的计数器。此外,对于任意i∈I,记N(i)={j∈J: hji≠0},对于任意j∈J,记M(j)={i∈I: hji≠0}。假定x为读取结果向量。纠错恢复过程将向量x传递至校验方程,判断是否可以将丢失数据恢复,若可以恢复,则将恢复数据传递至x。重复上述过程,直至信息数据全部恢复或者恢复过程无法继续。具体来说,提出的算法包含下述步骤:
S401:读取信息数据和校验数据。其中,信息数据的块数为k,校验数据的块数为r。
S402:构造长度为n向量x。x的第i个分量xi对应第i块数据,若在读取过程中未丢失,则xi为该块数据值,若在读取过程中丢失,则xi为?。
S403:判断x中信息数据是否丢失。若无丢失,转步骤S415;否则转步骤S404。
S404:置flag = 0。对于任意j∈J,置tj = 0。
S405:置i = 1。
S406:将数据xi传递至N(i)中的校验方程,具体方法为:
若xi ≠ ?,则传递至j∈N(i)的数据为hjixi;
若xi = ?,则对于任意j∈N(i),tj ← tj+ 1;
S407:判断i = n是否成立,若不成立,转步骤S408;否则转步骤S409。
S408:置i ← i + 1,转步骤S406。
S409:置j = 1。
S410:判断tj =1是否成立,若成立,转步骤S411;否则转步骤S412。
S411:记xi* = ?,i*∈M(j),恢复数据xi*,具体方法为
S412:判断j = m是否成立,若不成立,转步骤S413;否则转步骤S414。
S413:置j ← j + 1,转步骤S410。
S414:判断flag = 0是否成立,若成立,则转步骤S415;否则转步骤S403。
S415:结束数据恢复算法。
从上面描述的步骤中可以看出,本发明提出的数据恢复算法避免了多元有限域上
的矩阵求逆计算。此外,从步骤S411可知,在数据恢复的计算过程中,需要用到校验矩阵H元
素hji*的逆。元素求逆可以在数据恢复过程中进行计算,也可以预先计算出校验矩阵H
每个元素的逆,保存在一个矩阵F中。
为了更清楚地说明本发明提出的数据恢复算法,仍然以前面给出的k=3、r=3的纠删码为例具体进行描述算法的执行过程。
图5是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码的校验矩阵示意图。图6是根据本发明实施例可选的一种分布式数据存储纠错方法的纠删码的校验矩阵非零元素的逆构成的矩阵示意图。从图5和图6可知,m=6、n=6。假定编码后的数据构成码字[93,243,251,4,7,9],其中前三块数据为信息数据,后三块数据为校验数据。假定第1个信息节点、第2个信息节点、第3个校验节点失效。
步骤S401读取信息数据?、?、251,读取校验数据4、7、?。步骤S402构造向量x=[?,?,251,4,7,?]。步骤S403判断x中信息数据有丢失,转步骤S404,置flag = 0,对于j∈J={1,2,3,4,5,6},置tj = 0。
步骤S405~S408依次将数据x1~x6传递至校验方程,具体为:
i = 1:将数据x1传递至第1、4、5、6个校验方程,结果为t1 = 1,t2 = 0,t3 = 0,t4 =1,t5 = 1,t6 = 1;
i = 2:将数据x2传递至第2、4、5、6个校验方程,结果为t1 = 1,t2 = 1,t3 = 0,t4 =2,t5 = 2,t6 = 2;
i = 3:将数据x3传递至第3、4、5、6个校验方程,传递至第3个校验方程的数据为1×251=251,传递至第4个校验方程的数据为100×251=241,传递至第5个校验方程的数据为25×251=123,传递至第6个校验方程的数据为54×251=61;
i = 4:将数据x4传递至第1、2、3、4个校验方程,传递至第1个校验方程的数据为64×4=29,传递至第2个校验方程的数据为56×4=224,传递至第3个校验方程的数据为14×4=56,传递至第4个校验方程的数据为1×4=4;
i = 5:将数据x5传递至第1、2、3、5个校验方程,传递至第1个校验方程的数据为167×7=82,传递至第2个校验方程的数据为13×7=35,传递至第3个校验方程的数据为108×7=25,传递至第5个校验方程的数据为1×7=7;
i = 6:将数据x6传递至第1、2、3、6个校验方程,结果为t1 = 2,t2 = 2,t3 = 1,t4 =2,t5 = 2,t6 = 3。
步骤S409~S413进行数据恢复,具体为
j = 1和j = 2:不满足tj = 1;
j = 3:i*=6,x6 = 63-1×(1×251+14×4+108×7) =225×(251+56+25)=9,置flag=1;
j = 4、5、6:不满足tj = 1。
此时,向量x=[?,?,251,4,7,9]。
步骤S414依据flag值判断后转步骤S403,判断x中信息数据有丢失,转步骤S404,置flag = 0,对于j∈J={1,2,3,4,5,6},置tj = 0。
步骤S405~S408依次将数据x1~x6传递至校验方程,具体为:
i = 1:将数据x1传递至第1、4、5、6个校验方程,结果为t1 = 1,t2 = 0,t3 = 0,t4 =1,t5 = 1,t6 = 1;
i = 2:将数据x2传递至第2、4、5、6个校验方程,结果为t1 = 1,t2 = 1,t3 = 0,t4 =2,t5 = 2,t6 = 2;
i = 3:将数据x3传递至第3、4、5、6个校验方程,传递至第3个校验方程的数据为1×251=251,传递至第4个校验方程的数据为100×251=241,传递至第5个校验方程的数据为25×251=123,传递至第6个校验方程的数据为54×251=61;
i = 4:将数据x4传递至第1、2、3、4个校验方程,传递至第1个校验方程的数据为64×4=29,传递至第2个校验方程的数据为56×4=224,传递至第3个校验方程的数据为14×4=56,传递至第4个校验方程的数据为1×4=4;
i = 5:将数据x5传递至第1、2、3、5个校验方程,传递至第1个校验方程的数据为167×7=82,传递至第2个校验方程的数据为13×7=35,传递至第3个校验方程的数据为108×7=25,传递至第5个校验方程的数据为1×7=7;
i = 6:将数据x6传递至第1、2、3、6个校验方程,传递至第1个校验方程的数据为2×9=18,传递至第2个校验方程的数据为111×9=48,传递至第3个校验方程的数据为63×9=218,传递至第6个校验方程的数据为1×9=9。
步骤S409~S413进行数据恢复,具体为
j = 1:i*=1,x1 = 1-1×(64×4+167×7+2×9) = 1×(29+82+18)=93,置flag=1;
j = 2:i*=2,x2 = 1-1×(56×4+13×7+111×9) = 1×(224+35+48)=243,置flag=1;
j = 3、4、5、6:不满足tj = 1。
此时,向量x=[93,243,251,4,7,9]。
步骤S414依据flag值判断后转步骤S403,判断x中信息数据无丢失,转步骤S415,结束数据纠错恢复过程。
图7是根据本发明实施例可选的一种分布式数据存储纠错系统示意图。如图7所示,本发明提供了一种分布式数据存储纠错系统,分布式数据存储纠错系统应用于分布式数据存储纠错方法,分布式数据存储纠错系统包括:
串并变换单元10,串并变换单元10用于将原始文件划分成多组信息数据;
编码单元20,编码单元20用于将多组信息数据进行编码并对应得到多组编码数据;
存储单元30,存储单元30用于将多组编码数据存储在存储节点中;
读取单元40,读取单元40用于读取存储节点存储的多组编码数据;
纠错恢复单元50,纠错恢复单元50用于利用多组编码数据之间的约束关系进行纠错恢复,以得到多组信息数据;
合并单元60,合并单元60用于将恢复得到的多组信息数据合并成原始文件。
本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种分布式数据存储纠错方法,其特征在于,包括:
在数据存储过程中,将原始文件划分成多组信息数据;
将多组所述信息数据进行编码后对应得到多组编码数据,将多组所述编码数据存储在多个存储节点中;
在数据读取过程中,读取所述存储节点存储的多组所述编码数据;
利用多组所述编码数据之间的约束关系进行纠错恢复以得到多组所述信息数据;
将恢复得到的多组所述信息数据合并成所述原始文件;
其中,所述将多组所述信息数据进行编码后对应得到多组编码数据包括:
将k组所述信息数据构造为向量d = [d0,d1,…,dk-1],预先设置r组校验数据构造的向量p = [p0,p1,…,pr-1],预先选取多个系数Pi,j(0≤i<r, 0≤j<k),所述系数Pi,j(0≤i<r, 0≤j<k)的个数为r×k个;
将k组所述信息数据构造的向量d = [d0,d1,…,dk-1]与多个所述系数Pi,j(0≤i<r, 0≤j<k)通过运算得到r组所述校验数据构造的向量p = [p0,p1,…,pr-1],所述运算包括:
p0 = P0,0d0 + P0,1d1 + … + P0,k-1dk-1
p1 = P1,0d0 + P1,1d1 + … + P1,k-1dk-1
…
pr-1 = Pr-1,0d0 + P r-1,1d1 + … + P r-1,k-1dk-1
将得到的所述校验数据和所述信息数据共同编码组成所述编码数据;
其中,利用多组所述编码数据之间的约束关系进行纠错恢复包括:
读取所述存储节点存储的所述编码数据中的所述信息数据和所述校验数据;所述信息数据为k组,所述校验数据为r组;
将读取的所述编码数据中的k组所述信息数据和r组所述校验数据构成一个向量x,所述向量x的第i个分量xi对应第i组所述信息数据或所述校验数据;若读取的所述编码数据没有丢失,则读取结果为所述向量x的值,否则读取结果为一个特殊固定值,记为缺失值;预先设置校验矩阵H,所述校验矩阵H每列对应一个所述向量x,所述校验矩阵H每行对应一个校验方程;
判断读取的所述向量x中的所述信息数据是否丢失;
如果所述信息数据丢失,将所述向量x传递至所述校验方程;
根据所述校验方程判断所述向量x是否可以将丢失的所述信息数据恢复;
若可以恢复,则进行数据恢复,并将恢复的所述信息数据恢复传递至所述向量x;所述数据恢复使用的计算方法为:
其中,xi*为需要恢复的信息数据,hji*为xi*在所述校验矩阵H的某行上对应的元素,
为hji*的逆,Σi∈M(j)\i*hjixi为所述校验矩阵H的某行上除hji*以外的非零元素与所述向量x的
对应元素乘积之和;
重复上述过程,直至丢失的所述信息数据全部恢复或者恢复过程无法继续进行;
纠错恢复多组所述编码数据后,得到多组所述信息数据。
2.根据权利要求1所述的分布式数据存储纠错方法,其特征在于,每组所述信息数据包含若干块,每块所述信息数据的长度为固定值。
3.根据权利要求1所述的分布式数据存储纠错方法,其特征在于,将多组所述编码数据存储在存储节点中包括:
将每组所述编码数据在每个所述存储节点存储为一个数据块,所述数据块中包含所述校验数据和所述信息数据,所述信息数据存储在信息节点,所述校验数据存储在校验节点;
其中,所述存储节点中包括所述信息节点和所述校验节点。
4.根据权利要求3所述的分布式数据存储纠错方法,其特征在于,
在所述读取所述存储节点存储的多组所述编码数据时,读取丢失的所述数据块数量不超过所述校验数据的块数时,通过纠错译码恢复出原始的所述信息数据。
5.根据权利要求1所述的分布式数据存储纠错方法,其特征在于,通过在所述校验方程中设置条件进行判断所述恢复过程是否可以继续进行。
6.一种分布式数据存储纠错系统,所述分布式数据存储纠错系统应用于权利要求1到5中任一条中所述的分布式数据存储纠错方法,其特征在于,所述分布式数据存储纠错系统包括:
串并变换单元(10),所述串并变换单元(10)用于将原始文件划分成多组信息数据;
编码单元(20),所述编码单元(20)用于将多组所述信息数据进行编码并对应得到多组编码数据;
存储单元(30),所述存储单元(30)用于将多组所述编码数据存储在存储节点中;
读取单元(40),所述读取单元(40)用于读取所述存储节点存储的多组所述编码数据;
纠错恢复单元(50),所述纠错恢复单元(50)用于利用多组所述编码数据之间的约束关系进行纠错恢复,以得到多组所述信息数据;
合并单元(60),所述合并单元(60)用于将恢复得到的多组所述信息数据合并成所述原始文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310287200.9A CN115993941B (zh) | 2023-03-23 | 2023-03-23 | 分布式数据存储纠错方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310287200.9A CN115993941B (zh) | 2023-03-23 | 2023-03-23 | 分布式数据存储纠错方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115993941A CN115993941A (zh) | 2023-04-21 |
CN115993941B true CN115993941B (zh) | 2023-06-02 |
Family
ID=85992428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310287200.9A Active CN115993941B (zh) | 2023-03-23 | 2023-03-23 | 分布式数据存储纠错方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115993941B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834899A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种分布式自适应编码存储方法 |
CN110178122A (zh) * | 2018-07-10 | 2019-08-27 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN111625394A (zh) * | 2020-05-27 | 2020-09-04 | 成都信息工程大学 | 基于纠删码的数据恢复方法、装置、设备及存储介质 |
CN113505019A (zh) * | 2021-05-14 | 2021-10-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010033644A1 (en) * | 2008-09-16 | 2010-03-25 | File System Labs Llc | Matrix-based error correction and erasure code methods and apparatus and applications thereof |
CN107844272A (zh) * | 2017-10-31 | 2018-03-27 | 成都信息工程大学 | 一种提高纠错能力的交叉分组编译码方法 |
CN112860475B (zh) * | 2021-02-04 | 2023-02-28 | 山东云海国创云计算装备产业创新中心有限公司 | 基于rs纠删码的校验块恢复方法、装置、系统及介质 |
CN114564337A (zh) * | 2022-03-04 | 2022-05-31 | 中信银行股份有限公司 | 一种基于x码的分布式存储系统容错方法及系统 |
-
2023
- 2023-03-23 CN CN202310287200.9A patent/CN115993941B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834899A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种分布式自适应编码存储方法 |
CN110178122A (zh) * | 2018-07-10 | 2019-08-27 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN111625394A (zh) * | 2020-05-27 | 2020-09-04 | 成都信息工程大学 | 基于纠删码的数据恢复方法、装置、设备及存储介质 |
CN113505019A (zh) * | 2021-05-14 | 2021-10-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 |
Non-Patent Citations (4)
Title |
---|
D. Geraghty.All-optical message encoding, error detection and error correction.《NUSOD '05. Proceedings of the 5th International Conference on Numerical Simulation of Optoelectronic Devices, 2005.》.2005,第121-122页. * |
M. Matus ; M. Kolesik ; J.V. Moloney ; I.B. Djordjevic Electrical and Computer Engineering Department, University of Arizona Tucson, USA * |
基于软编码与变长编码的自纠错输出编码算法研究;冯凯杰;《中国优秀硕士学位论文全文数据库信息科技辑》;第I140-38页 * |
面向分布式文件存储系统的数据恢复策略;胡至洵;;能源与环保(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115993941A (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Greenan et al. | Flat XOR-based erasure codes in storage systems: Constructions, efficient recovery, and tradeoffs | |
US8359524B2 (en) | Parallel reed-solomon RAID (RS-RAID) architecture, device, and method | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
US7350126B2 (en) | Method for constructing erasure correcting codes whose implementation requires only exclusive ORs | |
US6823425B2 (en) | System and method for implementing advanced RAID using a set of unique matrices as coefficients | |
CN107395207A (zh) | 多容错性的mds 阵列码编码以及修复方法 | |
CN113297001B (zh) | 一种raid编解码方法及编解码电路 | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
WO2018072294A1 (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN109358980B (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN112799875A (zh) | 基于高斯消元进行校验恢复的方法、系统、设备及介质 | |
Huang et al. | On optimizing XOR-based codes for fault-tolerant storage applications | |
WO2017185681A1 (zh) | 一种gel码字结构编码和译码的方法、装置及相关设备 | |
CN113258936B (zh) | 一种基于循环移位的双重编码的构造方法 | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
CN115993941B (zh) | 分布式数据存储纠错方法及系统 | |
CN109496298A (zh) | 一种evenodd码的构造方法 | |
JP7429223B2 (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
WO2017041232A1 (zh) | 一种二进制循环码的编解码框架 | |
WO2020029417A1 (zh) | 一种二进制mds阵列编码的编码框架方法 | |
WO2020029423A1 (zh) | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 | |
CN115454712A (zh) | 一种校验码恢复方法、系统、电子设备及存储介质 | |
CN113258938B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Wan Chunyong Inventor after: Luo Zhengcheng Inventor before: Wan Chunyong Inventor before: Luo Zhengji |