CN110990188B - 一种基于Hadamard矩阵的部分重复码的构造方法 - Google Patents

一种基于Hadamard矩阵的部分重复码的构造方法 Download PDF

Info

Publication number
CN110990188B
CN110990188B CN201911134160.4A CN201911134160A CN110990188B CN 110990188 B CN110990188 B CN 110990188B CN 201911134160 A CN201911134160 A CN 201911134160A CN 110990188 B CN110990188 B CN 110990188B
Authority
CN
China
Prior art keywords
matrix
data blocks
code
row
hadamard
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
CN201911134160.4A
Other languages
English (en)
Other versions
CN110990188A (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.)
Changan University
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 CN201911134160.4A priority Critical patent/CN110990188B/zh
Publication of CN110990188A publication Critical patent/CN110990188A/zh
Application granted granted Critical
Publication of CN110990188B publication Critical patent/CN110990188B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于Hadamard矩阵的部分重复码的构造方法,该方法将原始文件M分成k个原始数据块,对k个原始数据块采用(n,k)MDS编码,生成n个编码块。根据编码块个数选取一个n+1阶的反对称Hadamard矩阵,再根据公式对Hadamard矩阵进行变换得到新矩阵,再根据此矩阵构造同构的FR码,然后再对矩阵进行删减得到另外一个新矩阵,利用此矩阵构造存储容量不同的异构FR码。利用Hadamard矩阵构造FR码更加简单直观,并且可以经过变换很容易的将同构FR码变成存储容量不同的异构FR码。

Description

一种基于Hadamard矩阵的部分重复码的构造方法
技术领域
本发明属于计算机领域,涉及一种基于Hadamard的部分重复码的构造方法。
背景技术
在分布式存储***中,一般会采用“复制”和“纠删码”技术来保证数据的可靠性。但是复制需要的存储开销比较大,纠删码需要编码和译码操作,在修复过程中需要下载整个文件进行修复,修复带宽开销较大,修复较为复杂。为此Rouayheb和Ramchandran于2010年提出一种精确修复的部分重复(Fractional Repetition,FR)码。FR码能容忍多故障节点的精确无编码修复,其修复带宽开销和磁盘I/O开销较小,***修复性能得到明显改进。现有的FR码的构造方法有许多,如利用拉丁方,二分图等方法构造FR码。
发明内容
本发明的目的在于,提供一种基于Hadamard矩阵的部分重复(HadamardFractional Repetition,HFR)码的构造法。
为了实现上述任务,本发明采用如下技术解决方案:
一种基于Hadamard矩阵的部分重复码的构造方法,其特征在于,该方法具体包括以下步骤:
步骤一,将原始文件M分成k个原始数据块,k≥2,对k个原始数据块采用(n,k)MDS编码(n≥k),得到n个编码数据块c1,…,ck-1,ck,ck+1,…cn,n个编码数据块包括k个原始数据块和n-k个校验数据块;
步骤二,取一个n+1阶的反对称Hadamard矩阵Hn+1
步骤三,根据以下公式(1):
Figure BDA0002279130860000021
得到零一矩阵K′n+1(n≥k),其中,Jn+1表示元素全为1的n+1阶矩阵,Hn+1为反对称Hadamard矩阵,需满足n+1为4的倍数;
步骤四,对零一矩阵K′n+1进行变换将第一行第一列删去得到新矩阵Kn
步骤五,通过矩阵Kn构造FR码:
1)矩阵Kn中每一行代表一个节点,用矩阵Kn中的第i行表示分布式存储***中的第i个存储节点Ni,共有n个存储节点(i=1,2…n);
2)由以下公式(2)构造同构FR码:
Ni={j:aij=1} (2)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;其中Ni表示同构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所对应的列数;
将列数提取出,即得到一个节点所存储的数据块,构成同构的FR码;
3)根据以下方法构造异构FR码:
将矩阵Kn中第j列出现的第
Figure BDA0002279130860000022
个1改为0得到新的矩阵Kn1,然后利用以下公式(3):
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;
Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出,即得到一个存储节点所存储的数据块,得到节点存储容量不同的异构FR码。
根据本发明,所述的Hadamard矩阵具体定义为:
设H为一个(1,-1)矩阵,即以1和-1为元素的n×n矩阵,若满足:
HHT=nI,则称H为一个n阶Hadamard矩阵。
进一步地,步骤三中,若n阶H矩阵存在,则n=1,2或n=0(mod4)。
若步骤三中得到的所述零一矩阵K′n+1(n≥k)第一行全为0第一列全部为1,则步骤四中将零一矩阵K′n+1第一行第一列删去。
步骤五所述的数据块包括原始数据块和校验数据块。
本发明的基于Hadamard矩阵的部分重复码的构造法,与现有技术相比,带来的技术效果是:
1、利用Hadamard矩阵构造一种新的算法,利用该算法来构造FR码更加简单直观和高效。
2、利用Hadamard矩阵可以很容易地将同构FR码转换为异构FR码。
附图说明
图1是12阶的反对称Hadamard矩阵;
图2是由12阶反对称的Hadamard矩阵所变换得到的11阶矩阵K11
图3是由Hadamard矩阵变换构造的同构FR码数据块存放;
图4是对K11每一列进行删去一个1构成的新矩阵;
图5是由Hadamard矩阵变换构造的异构FR码数据块存放;
以下结合附图及实施例,对本发明进行进一步详细说明。
具体实施方式
本发明的技术思路是,用Hadamard矩阵来构造FR码,经过简单步骤可将同构变为异构。
需要说明的是,在以下的实施例中,仅仅是使本领域技术人员对本发明的目的、技术方案及优点更加清楚明白,本发明不限于这些实施例。
按照本发明的技术方案,本实施例给出一种基于Hadamard矩阵的部分重复码的构造法,具体包括以下步骤:
步骤1,将原始文件M分成k个原始数据块,k≥2,对k个原始数据块采用(n,k)MDS编码(n≥k),得到n个编码数据块c1,…,ck-1,ck,ck+1,…cn,n个编码数据块包括k个原始数据块和n-k个校验数据块;
步骤2,取一个n+1阶的反对称Hadamard矩阵Hn+1
步骤3,根据以下公式(1):
Figure BDA0002279130860000041
得到零一矩阵K′n+1(n≥k),其中Jn+1表示元素全为1的n+1阶矩阵,Hn+1为反对称Hadamard矩阵,需满足n+1为4的倍数;
步骤4,对零一矩阵K′n+1进行变换将第一行第一列删去得到新矩阵Kn
步骤5,通过矩阵Kn构造FR码:
1)矩阵Kn中每一行代表一个节点,用矩阵Kn中的第i行表示分布式存储***中的第i个存储节点Ni,共有n个存储节点(i=1,2…n);
2)由以下公式(2)构造同构FR码:
Ni={j:aij=1} (2)
j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值,Ni表示同构FR的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所对应的列数,将列数提取出即得到一个节点所存储的数据块,构成了同构的FR码。
3)根据以下方法构造异构FR码:
将矩阵Kn中第j列出现的第
Figure BDA0002279130860000042
个1改为0得到新的矩阵Kn1,然后利用公式:
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值。
Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出即得到一个节点所存储的数据块,即得到节点存储容量不同的异构FR码。
本实施例中,Hadamard矩阵具体定义为:
设H为一个(1,-1)矩阵,即以1和-1为元素的n×n矩阵,若满足:
HHT=nI,则称H为一个n阶Hadamard矩阵(简称H矩阵)。
其中,步骤3中得到的零一矩阵K′n+1(n≥k)第一行全为0第一列全部为1,则步骤四中将零一矩阵K′n+1第一行第一列删去。
步骤5所述的数据块包括原始数据块和校验数据块。
以下是发明人给出的具体实施例。
实施例:
本实施例给出一种基于Hadamard矩阵的部分重复(HadamardFractionalRepetition,HFR)码的构造方法,具体包括以下步骤:
步骤1,将原始文件M分成k个原始数据块,k≥2,对k个原始数据块采用(n,k)MDS编码(n≥k),得到n个编码数据块c1,…,ck-1,ck,ck+1,…cn,n个编码数据块包括k个原始数据块和n-k个校验数据块;
本实施例为构造(11,7)***MDS码,用m=(m1,m2,m3,m4,m5,m6,m7)表示分布式存储***中存储的原始文件,c=(m1,m2,m3,m4,m5,m6,m7,p8,p9,p10,p11)表示MDS码,其中的m1,m2,m3,m4,m5,m6,m7表示原始数据块;p8,p9,p10,p11表示校验数据块;
步骤2,取一个n+1阶的反对称Hadamard矩阵Hn+1
步骤1中共得到11个数据块和校验块,Hadamard矩阵具体定义为:
设H为一个(1,-1)矩阵,即以1和-1为元素的n×n矩阵,若满足HHT=nI,则称H为一个n阶Hadamard矩阵简称H矩阵。
本实施例选取12阶的反对称Hadamard矩阵,进而得到图1所示的12阶的反对称Hadamard矩阵H12
步骤3,根据公式(1):
Figure BDA0002279130860000061
得到零一矩阵K′n+1(n≥k),其中Jn+1表示元素全为1的n+1阶矩阵,Hn+1为反对称Hadamard矩阵,需满足n+1为4的倍数;
在本实例中,由步骤2中得到的12阶反对称Hadamard矩阵H12,由公式(1)得到了12阶的一个矩阵K'12,供下一步使用。
步骤4,对零一矩阵K'n+1进行变换,将第一行第一列删去得到新矩阵Kn
在本实例中,对步骤3得到的矩阵K'12矩阵进行删去第一行第一列的操作,得到一个新矩阵K11如图2所示。
步骤5,通过矩阵Kn构造FR码:
1)矩阵Kn中每一行代表一个节点,用矩阵Kn中的第i行表示分布式存储***中的第i个存储节点Ni,共有n个存储节点(i=1,2…n);
如图2所示,在本实施例中11阶矩阵K11,矩阵的每一行代表一个节点,所以有11个存储节点存放数据块。
2)由以下公式(2)构造同构FR码:
Ni={j:aij=1} (2)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值,Ni表示同构FR的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所对应的列数,将列数提取出即得到一个节点所存储的数据块,构成了同构的FR码。
如图2所示,本实施例中有7个数据块及其重复度和4个校验块及其重复度,将其进行叠加,得到11个存储节点及数据块对应的重复度ρ,在这里数据块包括原始数据块与校验数据块。
这11个存储节点分别对应于11阶矩阵K11,如在第二行的第三列元素为1,则表示第二个存储节点存放着原始数据块3,如在第二行的第十一列元素为1,则表示第二个存储节点存放着校验块11。
如图3所示,按此方法对矩阵进行对应可得到11个存储节点所存放的数据块,如下所示:
N1={2,4,5,6,10}N2={3,5,6,7,11}
N3={1,4,6,7,8}N4={2,5,7,8,9}
N5={3,6,8,9,10}N6={4,7,9,10,11}
N7={1,5,8,10,11}N8={1,2,6,9,11}
N9={1,2,3,7,10}N10={2,3,4,8,11}
N11={1,3,4,5,9}
可以看出是共有11个存储节点,每一个存储节点存储容量是5,并且重复度ρ为5的一个同构的FR码。
步骤5.3,根据以下方法构造异构FR码:
将矩阵Kn中第j列出现的第
Figure BDA0002279130860000071
个1改为0得到新的矩阵Kn1,然后利用公式(3):
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个FR节点,aij表示矩阵第i行第j列的值。其中Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出即得到一个节点所存储的数据块,即得到节点存储容量不同的异构FR码。
在本实施例中,将K11中每一列的第
Figure BDA0002279130860000081
个1变为0得到新矩阵Kn1,由于Kn1是11阶矩阵,所以得到的新矩阵Kn1表示为K111,如图4所示,根据公式(3)得到:
N1={2,4,5}N2={3,5,7,11}
N3={1,4,6,7,8}N4={2,5,8,9}
N5={3,6,8,9,10}N6={4,7,9,10}
N7={5,10,11}N8={1,6,9,11}
N9={1,2,3,7,10}N10={2,4,8,11}
N11={1,3,5}
可以看出第一个存储节点存储容量是3,第二个存储节点容量是4,第三个存储节点容量是5,第四个存储节点容量是4,第五个存储节点容量是5,第六个存储节点容量是4,第七个存储节点存储容量是3,第八个存储节点容量是4,第九个存储节点容量是5,第十个存储节点容量是4,第十一个存储节点容量是3。
最后利用矩阵生成的异构FR有11个存储节点,即7个原始数据块及4个校验块进行存储,重复度ρ为4,但是其存储节点存储容量不同分别为3,4,5。
由Hadamard矩阵产生的数据块对应同构FR数据块如图3所示,构造的异构FR如图5所示。
可以看出同构FR对每个数据节点都采用一样的存储容量,而实施例的异构FR码采用的是不一样的存储容量,而且利用Hadamard矩阵构造FR码也比较简单,由同构的FR码构造存储容量不同的异构FR码也相当简便。明显可见,此FR码比一般的FR码更适应实际的分布式存储***,而且花费的存储成本更低。

Claims (5)

1.一种基于Hadamard矩阵的部分重复码的构造方法,其特征在于,该方法具体包括以下步骤:
步骤一,将原始文件M分成k个原始数据块,k≥2,对k个原始数据块采用(n,k)MDS编码(n≥k),得到n个编码数据块c1,…,ck-1,ck,ck+1,…cn,n个编码数据块包括k个原始数据块和n-k个校验数据块;
步骤二,取一个n+1阶的反对称Hadamard矩阵Hn+1
步骤三,根据以下公式(1):
Figure FDA0002279130850000011
得到零一矩阵K′n+1(n≥k),其中,Jn+1表示元素全为1的n+1阶矩阵,Hn+1为反对称Hadamard矩阵,需满足n+1为4的倍数;
步骤四,对零一矩阵K′n+1进行变换将第一行第一列删去得到新矩阵Kn
步骤五,通过矩阵Kn构造FR码:
1)矩阵Kn中每一行代表一个节点,用矩阵Kn中的第i行表示分布式存储***中的第i个存储节点Ni,共有n个存储节点(i=1,2…n);
2)由以下公式(2)构造同构FR码:
Ni={j:aij=1} (2)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;其中Ni表示同构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所对应的列数;
将列数提取出,即得到一个节点所存储的数据块,构成同构的FR码;
3)根据以下方法构造异构FR码:
将矩阵Kn中第j列出现的第
Figure FDA0002279130850000021
个1改为0得到新的矩阵Kn1,然后利用以下公式(3):
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;
Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出,即得到一个存储节点所存储的数据块,得到节点存储容量不同的异构FR码。
2.如权利要求1所述的方法,其特征在于,所述的Hadamard矩阵具体定义为:
设H为一个(1,-1)矩阵,即以1和-1为元素的n×n矩阵,若满足:
HHT=nI,则称H为一个n阶Hadamard矩阵。
3.如权利要求1所述的方法,其特征在于,步骤三中,若n阶H矩阵存在,则n=1,2或n=0(mod4)。
4.如权利要求1所述的方法,其特征在于,若步骤三中得到的所述零一矩阵K′n+1(n≥k)第一行全为0第一列全部为1,则步骤四中将零一矩阵K′n+1第一行第一列删去。
5.如权利要求1所述的方法,其特征在于,步骤五所述的数据块包括原始数据块和校验数据块。
CN201911134160.4A 2019-11-19 2019-11-19 一种基于Hadamard矩阵的部分重复码的构造方法 Active CN110990188B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911134160.4A CN110990188B (zh) 2019-11-19 2019-11-19 一种基于Hadamard矩阵的部分重复码的构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911134160.4A CN110990188B (zh) 2019-11-19 2019-11-19 一种基于Hadamard矩阵的部分重复码的构造方法

Publications (2)

Publication Number Publication Date
CN110990188A CN110990188A (zh) 2020-04-10
CN110990188B true CN110990188B (zh) 2023-03-24

Family

ID=70084915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911134160.4A Active CN110990188B (zh) 2019-11-19 2019-11-19 一种基于Hadamard矩阵的部分重复码的构造方法

Country Status (1)

Country Link
CN (1) CN110990188B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113708780B (zh) * 2021-08-13 2024-02-02 上海映盛网络技术股份有限公司 一种基于shadow的部分重复码构造方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721611A (zh) * 2016-04-15 2016-06-29 西南交通大学 一种由极大距离可分存储码生成最小存储再生码的一般方法
WO2018072294A1 (zh) * 2016-10-17 2018-04-26 成都信息工程大学 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN110032470A (zh) * 2019-03-18 2019-07-19 长安大学 一种基于哈夫曼树的异构部分重复码的构造方法
CN110389848A (zh) * 2019-06-25 2019-10-29 长安大学 基于分块构造的部分重复码构造方法及故障节点修复方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721611A (zh) * 2016-04-15 2016-06-29 西南交通大学 一种由极大距离可分存储码生成最小存储再生码的一般方法
WO2018072294A1 (zh) * 2016-10-17 2018-04-26 成都信息工程大学 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN110032470A (zh) * 2019-03-18 2019-07-19 长安大学 一种基于哈夫曼树的异构部分重复码的构造方法
CN110389848A (zh) * 2019-06-25 2019-10-29 长安大学 基于分块构造的部分重复码构造方法及故障节点修复方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一类新的(k+2,k)Hadamard MSR码;张司娜等;《西南交通大学学报》;20160215(第01期);全文 *
基于可分组设计的部分重复码研究;朱兵等;《通信学报》;20150225(第02期);全文 *

Also Published As

Publication number Publication date
CN110990188A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
Sasidharan et al. A high-rate MSR code with polynomial sub-packetization level
CN101741396B (zh) 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
US7451374B2 (en) Apparatus and method for channel coding in mobile communication system
WO2018072294A1 (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN104850468A (zh) 基于校验矩阵的纠删码解码方法
US20210273654A1 (en) Erasure code calculation method
US10425106B2 (en) Balanced Reed-Solomon codes
Kadhe et al. Codes with unequal locality
Shahabinejad et al. A class of binary locally repairable codes
Hu et al. New constructions of SD and MR codes over small finite fields
CN103746774A (zh) 一种高效数据读取的容错编码方法
CN105811996B (zh) 一种基于准循环ldpc的数据处理方法及***
US8145971B2 (en) Data processing systems and methods for processing digital data with low density parity check matrix
Sasidharan et al. High-rate regenerating codes through layering
Su Optimal pliable fractional repetition codes that are locally recoverable: A bipartite graph approach
CN110990188B (zh) 一种基于Hadamard矩阵的部分重复码的构造方法
CN103401650B (zh) 一种(n,1,m)有误码卷积码的盲识别方法
US11316534B2 (en) Encoding method and device, decoding method and device, and storage medium
CN111125014B (zh) 一种基于u-型设计的柔性部分重复码的构造方法
CN102386932B (zh) Ldpc码的构造方法
CN102386933B (zh) 一种准循环ldpc码校验矩阵的构造方法
CN106788454B (zh) 一种局部性不相等码的构造方法
Silberstein et al. Optimal fractional repetition codes
CN113708780B (zh) 一种基于shadow的部分重复码构造方法
CN104202059B (zh) 一种用于构造围长12 qc‑ldpc码的确定性设计方法

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