CN109151054A - 一种层次码的构造方法及故障节点的修复方法 - Google Patents
一种层次码的构造方法及故障节点的修复方法 Download PDFInfo
- Publication number
- CN109151054A CN109151054A CN201811105682.7A CN201811105682A CN109151054A CN 109151054 A CN109151054 A CN 109151054A CN 201811105682 A CN201811105682 A CN 201811105682A CN 109151054 A CN109151054 A CN 109151054A
- Authority
- CN
- China
- Prior art keywords
- memory cell
- node
- cell group
- data
- label
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000008439 repair process Effects 0.000 claims abstract description 18
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 10
- 238000013467 fragmentation Methods 0.000 claims abstract description 9
- 238000012795 verification Methods 0.000 claims description 15
- 239000003550 marker Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种层次码的构造方法:将存储原始数据的原始文件平均分为小文件;再将每个小文件分为数据分片分别存放在数据节点中,将每个数据分片分为数据块存放在对应的存储单元中;将单元原始数据片两两分组,得到第一组基础组的位置标号;将基础组执行步骤2的操作得到新的基础组,依次类推,重复对每次新得到的基础组进行操作,得到最终的层次码。同时基于层次码的构造方法提出了一种故障节点修复方法,通过判断故障单节点所处位置,根据故障单节点所述结点与其父结点、具有相同父结点的孩子结点中存储的数据块之间的异或关系进行修复,得到故障单节点中数据块。本发明的方法避免了某个节点成为系统的瓶颈,达到负载均衡,降低了故障节点的修复局部性与修复带宽,且计算复杂度低。
Description
技术领域
本发明属于计算机领域,涉及一种层次码的构造方法及故障节点的修复方法。
背景技术
现今,分布式存储系统逐渐取代了集中式存储,越来越多的采用“复制”和“纠删码”来确保数据存储的可靠性。然而“复制”需要较大的存储开销,“纠删码”需要进行编码和译码操作,计算复杂度较高,且纠删码策略在单节点修复过程中需要下载整个文件来修复数据,修复带宽开销过大。针对上述问题,Dimakis等人提出了再生码,包括最小存储再生(Minimum Storage Regenerating,MSR)码和最小带宽再生(MinimumBandwidthRegenerating,MBR)码,但上述两种编码的修复局部性大,计算复杂度较高。现有的局部性修复编码虽然具有较小的修复局部性,但计算复杂。
综上所述,现有技术存在故障节点在修复过程中,修复开销过大,且计算复杂度较高的问题。
发明内容
针对现有技术中存在故障节点在修复过程中修复开销过大,且计算复杂度较高的问题,本发明的目的在于,提供一种层次码的构造方法,具体包括以下步骤:
步骤1,将存储原始数据的原始文件平均分为2l-1个小文件,其中l为大于2的整数;再将每个小文件分为m个数据大小相等的数据分片分别存放在m个数据节点中,其中m为大于3的整数,记m个数据节点存储的数据为一个单元数据片,作为单元原始数据片,则所述原始文件有2l-1个单元原始数据片;并将每个数据分片平均分为m个数据块,每个数据块存放在对应的存储单元中;
步骤2,将步骤2得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤3得到的2l-2个基础组中的确定位置标号的单元校验数据片作为单元原始数据片,进行两两分组,执行步骤2的操作,得到新的基础组,依次类推,重复对每次新得到的基础组进行操作,得到最终的层次码。
进一步的,所述步骤2具体包括如下子步骤:
步骤21,将步骤1得到的2l-1单元原始数据片进行两两分组,得到2l-2个基础组;
步骤22,求取第一个基础组的位置标号,具体操作是:将第一个基础组中的两个单元原始数据片分别存储在A存储单元组和B存储单元组中,并对A存储单元组和B存储单元组采用位置标识法,得到A存储单元组和B存储单元组的位置标号,同时得到C存储单元组的位置标号,所述C存储单元组用于存储单元校验数据片;将A存储单元组和B存储单元组的位置标号分别作为一个整体,依次放置为一列,将C存储单元组的位置标号作为整体放置在其后一列;
步骤23,求取第二个基础组的位置标号,具体操作是:将第一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的第一个基础组各存储单元组的位置标号对应作为第二个基础组的存储单元组的位置标号;即是将第一个基础组中A、B和C存储单元组的位置标号依次对应作为第二个基础组中B1、C1和A1存储单元组的位置标号;
步骤24,求取其余基础组的位置标号,具体操作是:对于待求取的当前基础组,将其前一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的各存储单元组的位置标号对应作为当前基础组的每个存储单元组的位置标号;
步骤25,根据步骤22-24得到存储单元组的位置标号,将步骤21得到的每个基础组中两个单元原始数据片所在存储单元组的相同位置标号上的两个数据块进行异或运算,得到的数据块分别存入第三个存储单元组中与A和B存储单元组相同的位置标号内,第三个存储单元组中的所有数据块组成单元校验数据片;
进一步的,所述步骤22中所述的位置标识的方法包括如下操作:
步骤221,将A存储单元组的位置从左到右从上到下依次标号为1~m2;
步骤222,求取B存储单元组的位置标号:B存储单元组第一行位置标号为A存储单元组第一列的位置标号;将A存储单元组第二列位置标号的最下一位位置标号放置该列的最上方,然后将当前的位置标号顺序作为B存储单元组第二行的位置标号,以此类推,将A存储单元组第i列位置标号的最后i-1位的位置标号从最下一位开始依次向最上方放置,然后将当前的位置标号顺序作为B存储单元组第i行的位置标号,1≤i≤m;
步骤223,求取C存储单元组的位置标号:C存储单元组第一行位置标号为B存储单元组第一列的位置标号,将B存储单元组第二列位置标号的最下一位位置标号放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第二行存储单元位置;以此类推,将B存储单元组第i列位置标号的最后i-1位的位置标号从最下一位位置标号开始依次放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第i行存储单元位置;1≤i≤m。
进一步的,所述步骤3包括如下子步骤:
步骤31,将步骤2得到的2l-2个基础组中的单元校验数据片均作为新的单元原始数据片,并进行两两分组得到2l-3个新的基础组;
步骤32,对于每个新的基础组,执行与步骤22-25相同的操作,得到每个新的基础组中两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;
步骤33,依次类推,继续分组并求取每个新的基础组中的两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;直至新的单元校验数据片仅有一个,停止计算;
步骤34,将步骤34之前进行的每次分组得到的基础组对应存储单元原始数据片、单元校验数据片的存储单元组中的数据作为层次码。
本发明的另一个目的在于,提供一种故障节点的修复方法,包括如下步骤:
步骤1,将层次码用一个满二叉树来表示,其叶子结点表示存储原始数据的单元原始数据片,其余结点表示存储校验数据的单元校验数据片,其中,设置0层为最底层,用pi表示满二叉树第i层存放的单元数据片,pi,j表示满二叉树第i层第j个结点,l为大于2的整数,0≤i≤l-1,0≤j≤2l-1-1且i和j都为整数,每个结点代表一个m×m的单元数据片,m为大于3的整数;
步骤2,利用与故障单节点所属结点相关联的两个结点中相同位置标号存储的数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
进一步的,所述步骤2具体操作如下:
若发生故障的单节点属于pi,j,分以下三种情况对发生故障的单节点进行修复:
(1)当i=0时,发生故障的单节点所属结点发生在p0所处的层,通过故障单节点所属结点的父结点与该父结点的另一孩子结点中相同位置标号存储的数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复,所述异或关系是指两个孩子结点中相同位置标号中存储的数据块进行异或运算得到它们的父结点中对应位置标号中存储的数据块;
(2)当i=l-1时,发生故障的单节点发生在pl-1所处的层,通过故障单节点所属结点的两个孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;
(3)当i∈{1,2,…,l-2}时,有两种修复方式,将所述故障单节点作为父结点,利用所述故障单节点所属结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;或者:
将所述故障单节点作为孩子结点,通过所述故障单节点所属结点的父结点与和所述故障单节点所属结点具有相同父结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
与现有技术相比,本发明具有以下技术效果:
1、考虑到实际分布式存储系统中避免某个节点成为系统的瓶颈,本发明修复故障单节点时,使每个节点传输的数据量相同,即负载均衡。
2、本发明在对单节点进行修复时,利用节点的并行I/O性质,只需读取一次即可修复故障节点。
3、本发明利用层次码的优点,在修复故障节点时保证了较小的修复带宽,修复局部性较好,且只需进行异或操作,计算复杂度低。
下面结合附图和实施例对本发明的方案做进一步详细地解释和说明。
附图说明
图1是本发明的层次码的构造方法的流程图;
图2是本发明的故障节点修复方法的流程图;
图3是实施例中m=3的数据节点的位置标号示意图;
图4是实施例中m=3的层次码中一个基础组的位置标号;
图5是实施例中m=3,l=4的层次码位置标号;
图6是实施例中l=4的层次码的满二叉树示意图。
以下结合附图对本发明进一步解释说明。
具体实施方式
如图1所示,本发明的层次码的构造方法,具体包括以下步骤:
步骤1,将存储原始数据的原始文件平均分为2l-1个小文件,其中l为大于2的整数;再将每个小文件分为m个数据大小相等的数据分片分别存放在m个数据节点中,其中m为大于3的整数,记m个数据节点存储的数据为一个单元数据片,作为单元原始数据片,则所述原始文件有2l-1个单元原始数据片;并将每个数据分片平均分为m个数据块,每个数据块存放在对应的存储单元中;
步骤2,将步骤2得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤3得到的2l-2个基础组中的确定位置标号的单元校验数据片作为单元原始数据片,进行两两分组,执行步骤2的操作,得到新的基础组,依次类推,重复对每次新得到的基础组进行操作,得到最终的层次码。
本发明给出的上述层次码的构造方法使修复单节点时具有较小的修复带宽,修复局部性较好,且只需进行异或操作,计算复杂度低;同时,在修复单故障节点过程中使每个节点传输数据量相同,保证了节点负载均衡。
优选的,步骤2具体包括如下子步骤:
步骤21,将步骤2得到的2l-1单元原始数据片进行两两分组,得到2l-2个基础组;
步骤22,求取第一个基础组的位置标号,具体操作是:将第一个基础组中的两个单元原始数据片分别存储在A存储单元组和B存储单元组中,并对A存储单元组和B存储单元组采用位置标识法,得到A存储单元组和B存储单元组的位置标号,同时得到C存储单元组的位置标号,所述C存储单元组用于存储单元校验数据片;将A存储单元组和B存储单元组的位置标号分别作为一个整体,依次放置为一列,将C存储单元组的位置标号作为整体放置在其后一列;
步骤23,求取第二个基础组的位置标号,具体操作是:将第一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的第一个基础组各存储单元组的位置标号对应作为第二个基础组的存储单元组的位置标号;即是将第一个基础组中A、B和C存储单元组的位置标号依次对应作为第二个基础组中B1、C1和A1存储单元组的位置标号;
步骤24,求取其余基础组的位置标号,具体操作是:对于待求取的当前基础组,将其前一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的各存储单元组的位置标号对应作为当前基础组的每个存储单元组的位置标号;
步骤25,根据步骤22-24得到存储单元组的位置标号,将步骤21得到的每个基础组中两个单元原始数据片所在存储单元组的相同位置标号上的两个数据块进行异或运算,得到的数据块分别存入第三个存储单元组中与A和B存储单元组相同的位置标号内,第三个存储单元组中的所有数据块组成单元校验数据片;
上述处理方式得到2l-2个基础组中3个存储单元组位置标号,及各存储单元的数据块,为修复故障单节点提供了理论依据。
优选的,步骤22中所述的位置标识的方法包括如下操作:
步骤221,将A存储单元组的位置从左到右从上到下依次标号为1~m2;
步骤222,求取B存储单元组的位置标号:B存储单元组第一行位置标号为A存储单元组第一列的位置标号;将A存储单元组第二列位置标号的最下一位位置标号放置该列的最上方,然后将当前的位置标号顺序作为B存储单元组第二行的位置标号,以此类推,将A存储单元组第i列位置标号的最后i-1位的位置标号从最下一位开始依次向最上方放置,然后将当前的位置标号顺序作为B存储单元组第i行的位置标号,1≤i≤m;
步骤223,求取C存储单元组的位置标号:C存储单元组第一行位置标号为B存储单元组第一列的位置标号,将B存储单元组第二列位置标号的最下一位位置标号放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第二行存储单元位置;以此类推,将B存储单元组第i列位置标号的最后i-1位的位置标号从最下一位位置标号开始依次放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第i行存储单元位置;1≤i≤m;
上述处理方式得到了三个存储单元组的位置标号,以保证存储的数据量相同,为达到负载平衡打好基础。
优选的,步骤3具体为:
步骤31,将步骤2得到的2l-2个基础组中的单元校验数据片均作为新的单元原始数据片,并进行两两分组得到2l-3个新的基础组;
步骤32,对于每个新的基础组,执行与步骤22-25相同的操作,得到每个新的基础组中两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;
步骤33,依次类推,继续分组并求取每个新的基础组中的两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;直至新的单元校验数据片仅有一个,停止计算;
步骤34,将步骤34之前进行的每次分组得到的基础组对应存储单元原始数据片、单元校验数据片的存储单元组中的数据作为层次码。
上述处理方式得到最终的层次码,降低了修复故障单节点时的修复局部性和修复宽度。
如图2所示,本发明提供的故障节点修复方法,具体步骤为:
步骤1,将利用本发明的方法得到的层次码用一个满二叉树来表示,其叶子结点表示存储原始数据的单元原始数据片,其余结点表示存储校验数据的单元校验数据片,其中,设置0层为最底层,用pi表示满二叉树第i层存放的单元数据片,pi,j表示满二叉树第i层第j个结点,l为大于2的整数,0≤i≤l-1,0≤j≤2l-1-1且i和j都为整数,每个结点代表一个m×m的单元数据片,m为大于3的整数;
步骤2,若发生故障的单节点(即一个数据节点)属于pi,j,分以下三种情况对发生故障的单节点进行修复:
(1)当i=0时,发生故障的单节点所属结点发生在p0所处的层(即最底层),通过故障单节点所属结点的父结点与该父结点的另一孩子结点中相同位置标号存储的数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复,所述异或关系是指两个孩子结点中相同位置标号中存储的数据块进行异或运算得到它们的父结点中对应位置标号中存储的数据块;
(2)当i=l-1时,发生故障的单节点发生在pl-1所处的层,通过故障单节点所属结点的两个孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;
(3)当i∈{1,2,…,l-2}时,有两种修复方式,既可将所述故障单节点作为父结点,利用所述故障单节点所属结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;也可将所述故障单节点作为孩子结点,通过所述故障单节点所属结点的父结点与和所述故障单节点所属结点具有相同父结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
上述单节点故障修复方法考虑到实际分布式存储系统中避免某个节点成为系统的瓶颈,在修复故障单节点时,基于层次码的构造方法,使每个节点传输的数据量相同,即负载均衡。同时,利用节点的并行I/O性质,只需读取一次即可修复故障节点,保证了较小的修复带宽,修复局部性较好;且只需进行异或操作,计算复杂度低。
实施例1:
将原始文件平均分为8个小文件,再将每个小文件分为3个相同的数据分片分别存放在3个数据节点中,将每个节点中的数据分片平均分为3个数据块,得到8个3×3的单元原始数据片。
将得到的单元原始数据片两两分组的得到4个基础组,图4为第一个基础组,通过位置标识法,确定第一个基础组中3个单元数据片的位置标号,位置标识法如图3所示;
第二个基础组中的3个单元数据片的位置标号是将第一个基础组中的已经确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组,将旋转后得到的第一个基础组各存储单元组的位置标号对应作为第二个基础组的存储单元组的位置标号;即是将第一个基础组中A、B和C存储单元组的位置标号依次对应作为第二个基础组中B1、C1和A1存储单元组的位置标号;
第三个基础组3个单元数据片的位置标号是将第二个基础组中的已经确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组,得到第三个基础组的位置标号;
根据3个基础组中各存储单元组的位置标号,将每个基础组中两个单元原始数据片所在存储单元组的相同位置标号上的两个数据块进行异或运算,
得到的数据块分别存入第三个存储单元组中与A和B存储单元组相同的位置标号内,第三个存储单元组中的所有数据块组成单元校验数据片;
如图5所示,将上述得到的基础组中的4个单元校验数据片作为单元原始数据片,两两分组,得到2个基础组的位置标号。重复上述操作,得到所求基础组的单元校验数据片位置标号,且两个单元原始数据片中位置标号相同的两个数据块异或得到单元校验数据片中相同位置标号的数据块,最后确定第3层基础组的位置标号及相应位置的数据块,即可得到m=3,l=4的层次码。
实施例2
如图6所示,将所述m=3,l=4的层次码用一个满二叉树来表示。用pi表示满二叉树第i层存放的单元数据片,pi,j表示满二叉树第i层第j个结点,0≤i≤3,0≤j≤7且i和j都为整数,二叉树中的每个结点代表一个3×3的单元数据片。
当故障节点发生在p0,2时,通过p1,1和p0,3中的6个数据节点中相同位置标号存储的数据块之间存在的异或关系进行修复,得到故障单节点中的数据块;
当故障节点发生在p3,0时,通过p2,0和p2,1中的6个数据节点中相同位置标号存储的数据块之间存在的异或关系进行修复,得到故障单节点中的数据块;
当故障节点发生在p1,0时,有两种修复方式。既可通过p0,0和p0,1中的6个数据节点中相同位置标号存储的数据块之间存在的异或关系进行修复,也可通过p2,0和p1,1中的6个数据节点中相同位置标号存储的数据块之间存在的异或关系进行修复,得到故障单节点中的数据块进行修复。
Claims (6)
1.一种层次码的构造方法,其特征在于,具体包括以下步骤:
步骤1,将存储原始数据的原始文件平均分为2l-1个小文件,其中l为大于2的整数;再将每个小文件分为m个数据大小相等的数据分片分别存放在m个数据节点中,其中m为大于3的整数,记m个数据节点存储的数据为一个单元数据片,作为单元原始数据片,则所述原始文件有2l-1个单元原始数据片;并将每个数据分片平均分为m个数据块,每个数据块存放在对应的存储单元中;
步骤2,将步骤2得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤3得到的2l-2个基础组中的确定位置标号的单元校验数据片作为单元原始数据片,进行两两分组,执行步骤2的操作,得到新的基础组,依次类推,重复对每次新得到的基础组进行操作,得到最终的层次码。
2.如权利要求1所述的层次码的构造方法,其特征在于,所述步骤2具体包括如下子步骤:
步骤21,将步骤1得到的2l-1单元原始数据片进行两两分组,得到2l-2个基础组;
步骤22,求取第一个基础组的位置标号,具体操作是:将第一个基础组中的两个单元原始数据片分别存储在A存储单元组和B存储单元组中,并对A存储单元组和B存储单元组采用位置标识法,得到A存储单元组和B存储单元组的位置标号,同时得到C存储单元组的位置标号,所述C存储单元组用于存储单元校验数据片;将A存储单元组和B存储单元组的位置标号分别作为一个整体,依次放置为一列,将C存储单元组的位置标号作为整体放置在其后一列;
步骤23,求取第二个基础组的位置标号,具体操作是:将第一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的第一个基础组各存储单元组的位置标号对应作为第二个基础组的存储单元组的位置标号;即是将第一个基础组中A、B和C存储单元组的位置标号依次对应作为第二个基础组中B1、C1和A1存储单元组的位置标号;
步骤24,求取其余基础组的位置标号,具体操作是:对于待求取的当前基础组,将其前一个基础组中的已确定位置标号的3个存储单元组逆时针旋转,旋转进度为一个存储单元组;将旋转后得到的各存储单元组的位置标号对应作为当前基础组的每个存储单元组的位置标号;
步骤25,根据步骤22-24得到存储单元组的位置标号,将步骤21得到的每个基础组中两个单元原始数据片所在存储单元组的相同位置标号上的两个数据块进行异或运算,得到的数据块分别存入第三个存储单元组中与A和B存储单元组相同的位置标号内,第三个存储单元组中的所有数据块组成单元校验数据片。
3.如权利要求2所述的层次码的构造方法,其特征在于,所述步骤22中所述的位置标识的方法包括如下操作:
步骤221,将A存储单元组的位置从左到右从上到下依次标号为1~m2;
步骤222,求取B存储单元组的位置标号:B存储单元组第一行位置标号为A存储单元组第一列的位置标号;将A存储单元组第二列位置标号的最下一位位置标号放置该列的最上方,然后将当前的位置标号顺序作为B存储单元组第二行的位置标号,以此类推,将A存储单元组第i列位置标号的最后i-1位的位置标号从最下一位开始依次向最上方放置,然后将当前的位置标号顺序作为B存储单元组第i行的位置标号,1≤i≤m;
步骤223,求取C存储单元组的位置标号:C存储单元组第一行位置标号为B存储单元组第一列的位置标号,将B存储单元组第二列位置标号的最下一位位置标号放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第二行存储单元位置;以此类推,将B存储单元组第i列位置标号的最后i-1位的位置标号从最下一位位置标号开始依次放置在该列的最上方,然后将当前的位置标号顺序作为C存储单元组第i行存储单元位置;1≤i≤m。
4.如权利要求1所述的层次码的构造方法,其特征在于,所述步骤3包括如下子步骤:
步骤31,将步骤2得到的2l-2个基础组中的单元校验数据片均作为新的单元原始数据片,并进行两两分组得到2l-3个新的基础组;
步骤32,对于每个新的基础组,执行与步骤22-25相同的操作,得到每个新的基础组中两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;
步骤33,依次类推,继续分组并求取每个新的基础组中的两个单元原始数据片及单元校验数据片所在存储单元组的位置标号,以及新的单元校验数据片;直至新的单元校验数据片仅有一个,停止计算;
步骤34,将步骤34之前进行的每次分组得到的基础组对应存储单元原始数据片、单元校验数据片的存储单元组中的数据作为层次码。
5.一种故障节点修复方法,其特征在于,包括如下步骤:
步骤1,将层次码用一个满二叉树来表示,其叶子结点表示存储原始数据的单元原始数据片,其余结点表示存储校验数据的单元校验数据片,其中,设置0层为最底层,用pi表示满二叉树第i层存放的单元数据片,pi,j表示满二叉树第i层第j个结点,l为大于2的整数,0≤i≤l-1,0≤j≤2l-1-1且i和j都为整数,每个结点代表一个m×m的单元数据片,m为大于3的整数;
步骤2,利用与故障单节点所属结点相关联的两个结点中相同位置标号存储的数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
6.如权利要求5所述的故障节点修复方法,其特征在于,所述步骤2具体操作如下:
若发生故障的单节点属于pi,j,分以下三种情况对发生故障的单节点进行修复:
(1)当i=0时,发生故障的单节点所属结点发生在p0所处的层,通过故障单节点所属结点的父结点与该父结点的另一孩子结点中相同位置标号存储的数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复,所述异或关系是指两个孩子结点中相同位置标号中存储的数据块进行异或运算得到它们的父结点中对应位置标号中存储的数据块;
(2)当i=l-1时,发生故障的单节点发生在pl-1所处的层,通过故障单节点所属结点的两个孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;
(3)当i∈{1,2,…,l-2}时,有两种修复方式,将所述故障单节点作为父结点,利用所述故障单节点所属结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;或者:
将所述故障单节点作为孩子结点,通过所述故障单节点所属结点的父结点与和所述故障单节点所属结点具有相同父结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105682.7A CN109151054B (zh) | 2018-09-21 | 2018-09-21 | 一种层次码的构造方法及故障节点的修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105682.7A CN109151054B (zh) | 2018-09-21 | 2018-09-21 | 一种层次码的构造方法及故障节点的修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109151054A true CN109151054A (zh) | 2019-01-04 |
CN109151054B CN109151054B (zh) | 2021-03-23 |
Family
ID=64822973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811105682.7A Active CN109151054B (zh) | 2018-09-21 | 2018-09-21 | 一种层次码的构造方法及故障节点的修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109151054B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860180A (zh) * | 2023-08-31 | 2023-10-10 | 中航金网(北京)电子商务有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145929A (zh) * | 2007-08-09 | 2008-03-19 | 复旦大学 | 一种面向ipv6环境的p2p流媒体点播系统 |
US20100299456A1 (en) * | 2007-05-28 | 2010-11-25 | Sandisk Il Ltd. | Management of internal operations by a storage device |
US20150087349A1 (en) * | 2013-09-26 | 2015-03-26 | L-3 Communications Corp. | Transmitting Portions Of A Data Block In Transmission Bursts From A Plurality Of Transmitters |
CN105260259A (zh) * | 2015-09-16 | 2016-01-20 | 长安大学 | 一种基于系统最小存储再生码的局部性修复编码方法 |
CN106100801A (zh) * | 2016-08-29 | 2016-11-09 | 湖南大学 | 一种云存储系统的非均匀纠删编码方法 |
CN106648905A (zh) * | 2017-01-12 | 2017-05-10 | 南京南瑞集团公司 | 一种电力大数据分布控制系统及其构建方法 |
CN107257329A (zh) * | 2017-05-31 | 2017-10-17 | 中国人民解放军国防科学技术大学 | 一种数据分段卸载发送方法 |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
-
2018
- 2018-09-21 CN CN201811105682.7A patent/CN109151054B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299456A1 (en) * | 2007-05-28 | 2010-11-25 | Sandisk Il Ltd. | Management of internal operations by a storage device |
CN101145929A (zh) * | 2007-08-09 | 2008-03-19 | 复旦大学 | 一种面向ipv6环境的p2p流媒体点播系统 |
US20150087349A1 (en) * | 2013-09-26 | 2015-03-26 | L-3 Communications Corp. | Transmitting Portions Of A Data Block In Transmission Bursts From A Plurality Of Transmitters |
CN105260259A (zh) * | 2015-09-16 | 2016-01-20 | 长安大学 | 一种基于系统最小存储再生码的局部性修复编码方法 |
CN106100801A (zh) * | 2016-08-29 | 2016-11-09 | 湖南大学 | 一种云存储系统的非均匀纠删编码方法 |
CN106648905A (zh) * | 2017-01-12 | 2017-05-10 | 南京南瑞集团公司 | 一种电力大数据分布控制系统及其构建方法 |
CN107257329A (zh) * | 2017-05-31 | 2017-10-17 | 中国人民解放军国防科学技术大学 | 一种数据分段卸载发送方法 |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
Non-Patent Citations (2)
Title |
---|
JING WANG: "Locally Minimum Storage Regenerating Codes in Distributed Cloud Storage Systems", 《SERVICES AND COMMUNICATIONS IN FOG COMPUTING》 * |
李淼: "分布式存储系统中再生码的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860180A (zh) * | 2023-08-31 | 2023-10-10 | 中航金网(北京)电子商务有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
CN116860180B (zh) * | 2023-08-31 | 2024-06-04 | 中航国际金网(北京)科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109151054B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN105721611B (zh) | 一种由极大距离可分存储码生成最小存储再生码的方法 | |
CN101183565B (zh) | 存储介质中数据校验方法 | |
CN105159618B (zh) | 用于单盘失效修复的优化方法及优化装置 | |
CN106776112B (zh) | 一种基于Pyramid码的局部性修复编码方法 | |
CN106788891A (zh) | 一种适用于分布式存储的最优局部修复码构造方法 | |
CN104021123B (zh) | 用于数据迁移的方法和系统 | |
CN105912844A (zh) | 一种天然气管网供气可靠性的评价方法及装置 | |
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
US20220358008A1 (en) | Wide stripe data storage and constructing, repairing and updating method thereof | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN103294595B (zh) | 一种基于遗传算法的软件修复方法 | |
CN113626250B (zh) | 一种基于纠删码的条带合并方法及系统 | |
CN108347306A (zh) | 分布式存储系统中类局部重构码编码及节点故障修复方法 | |
CN103838649B (zh) | 一种降低二进制编码存储系统中计算量的方法 | |
CN109358980A (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN112561700A (zh) | 区块链中交易数据的存储方法、验证方法、及区块链系统 | |
CN113258936B (zh) | 一种基于循环移位的双重编码的构造方法 | |
CN109151054A (zh) | 一种层次码的构造方法及故障节点的修复方法 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN104899101A (zh) | 基于多目标差异演化算法的软件测试资源动态分配方法 | |
CN106161599A (zh) | 一种存在数据依赖关系时降低云存储整体开销的方法 | |
CN109067852A (zh) | 一种基于纠删码的跨中心协同修复方法 | |
CN109801184A (zh) | 基于冗余编码修正的停电系统恢复路径优化方法 | |
CN105354346A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240115 Address after: 230000 B-1015, wo Yuan Garden, 81 Ganquan Road, Shushan District, Hefei, Anhui. Patentee after: HEFEI MINGLONG ELECTRONIC TECHNOLOGY Co.,Ltd. Address before: 710064 No. 126 central section of South Ring Road, Yanta District, Xi'an, Shaanxi Patentee before: CHANG'AN University |
|
TR01 | Transfer of patent right |