CN109151054B - 一种层次码的构造方法及故障节点的修复方法 - Google Patents

一种层次码的构造方法及故障节点的修复方法 Download PDF

Info

Publication number
CN109151054B
CN109151054B CN201811105682.7A CN201811105682A CN109151054B CN 109151054 B CN109151054 B CN 109151054B CN 201811105682 A CN201811105682 A CN 201811105682A CN 109151054 B CN109151054 B CN 109151054B
Authority
CN
China
Prior art keywords
node
storage unit
group
data
fault
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
Application number
CN201811105682.7A
Other languages
English (en)
Other versions
CN109151054A (zh
Inventor
王静
王淑霞
张雪飞
王甜甜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Minglong Electronic Technology Co ltd
Original Assignee
Changan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changan University filed Critical Changan University
Priority to CN201811105682.7A priority Critical patent/CN109151054B/zh
Publication of CN109151054A publication Critical patent/CN109151054A/zh
Application granted granted Critical
Publication of CN109151054B publication Critical patent/CN109151054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols 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)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (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,将步骤1得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤2得到的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,将步骤1得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤2得到的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,将步骤1得到的2l-1个单元原始数据片进行两两分组,通过位置标识得到第一组基础组的位置标号,然后得到其余基础组中3个存储单元组的位置标号,同时根据2个单元原始数据片所在存储单元组中相同位置标号上的数据块异或得到第三个存储单元组相同位置的数据块,得到2l-2个基础组中3个存储单元组的位置标号和相应位置上的数据块;
步骤3,将步骤2得到的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所述方法构造的层次码进行故障节点修复的方法,其特征在于,包括如下步骤:
步骤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}时,有两种修复方式,将所述故障单节点作为父结点,利用所述故障单节点所属结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复;或者:
将所述故障单节点作为孩子结点,通过所述故障单节点所属结点的父结点与和所述故障单节点所属结点具有相同父结点的孩子结点中相同位置标号存储数据块之间存在的异或关系,计算得到故障单节点中的数据块,完成该故障单节点的修复。
CN201811105682.7A 2018-09-21 2018-09-21 一种层次码的构造方法及故障节点的修复方法 Active CN109151054B (zh)

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 CN109151054A (zh) 2019-01-04
CN109151054B true 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)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145929A (zh) * 2007-08-09 2008-03-19 复旦大学 一种面向ipv6环境的p2p流媒体点播系统
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 中南民族大学 一种分布式存储环境下实现节点数据安全的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788415B2 (en) * 2007-05-28 2010-08-31 Sandisk Il Ltd. Management of internal operations by a storage device
US9026168B2 (en) * 2013-09-26 2015-05-05 L-3 Communications Corp. Transmitting portions of a data block in transmission bursts from a plurality of transmitters

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145929A (zh) * 2007-08-09 2008-03-19 复旦大学 一种面向ipv6环境的p2p流媒体点播系统
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)

* Cited by examiner, † Cited by third party
Title
Locally Minimum Storage Regenerating Codes in Distributed Cloud Storage Systems;Jing Wang;《SERVICES AND COMMUNICATIONS IN FOG COMPUTING》;20171130;全文 *
分布式存储系统中再生码的研究;李淼;《中国优秀硕士学位论文全文数据库》;20180119;全文 *

Also Published As

Publication number Publication date
CN109151054A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN101971168B (zh) 动态量化和提高分布式数据存储系统的可靠性
CN108540520B (zh) 基于部分重复码的局部性修复编码及节点故障修复方法
CN101183565B (zh) 存储介质中数据校验方法
US9280416B1 (en) Selection of erasure code parameters for no data repair
CN111149093B (zh) 分布式存储系统的数据编码、解码及修复方法
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
CN105159618B (zh) 用于单盘失效修复的优化方法及优化装置
CN101231891A (zh) 差错控制的方法和存储器系统
CN110750382A (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
CN103761195A (zh) 一种利用分布式数据编码的存储方法
WO2020035086A3 (en) Data security of shared blockchain data storage based on error correction code
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN105353974B (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN112799605B (zh) 平方部分重复码构造方法、节点修复方法及容量计算方法
WO2022174537A1 (zh) 一种条带数据存储结构及其构建、修复和更新方法
CN102520890A (zh) 基于gpu的rs-draid系统及存储设备数据控制方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN109194444A (zh) 一种基于网络拓扑的平衡二叉树修复方法
CN108762978B (zh) 一种局部部分重复循环码的分组构造方法
CN111459710B (zh) 感知热度与风险的纠删码内存恢复方法、设备及内存系统
CN113258936B (zh) 一种基于循环移位的双重编码的构造方法
CN107153661A (zh) 一种基于hdfs系统的数据的存储、读取方法及其装置
CN103838649A (zh) 一种降低二进制编码存储系统中计算量的方法
CN101256521B (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
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