CN110990188B - 一种基于Hadamard矩阵的部分重复码的构造方法 - Google Patents
一种基于Hadamard矩阵的部分重复码的构造方法 Download PDFInfo
- 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
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/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
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的部分重复码的构造方法。
背景技术
在分布式存储***中,一般会采用“复制”和“纠删码”技术来保证数据的可靠性。但是复制需要的存储开销比较大,纠删码需要编码和译码操作,在修复过程中需要下载整个文件进行修复,修复带宽开销较大,修复较为复杂。为此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):
得到零一矩阵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码:
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):
得到零一矩阵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码:
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):
得到零一矩阵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码:
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个FR节点,aij表示矩阵第i行第j列的值。其中Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出即得到一个节点所存储的数据块,即得到节点存储容量不同的异构FR码。
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):
得到零一矩阵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码:
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所述的方法,其特征在于,步骤五所述的数据块包括原始数据块和校验数据块。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708780B (zh) * | 2021-08-13 | 2024-02-02 | 上海映盛网络技术股份有限公司 | 一种基于shadow的部分重复码构造方法 |
Citations (4)
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 | 长安大学 | 基于分块构造的部分重复码构造方法及故障节点修复方法 |
-
2019
- 2019-11-19 CN CN201911134160.4A patent/CN110990188B/zh active Active
Patent Citations (4)
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)
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 |