一种分布式存储中的纠删码的编解码方法技术

技术编号:30041358 阅读:26 留言:0更新日期:2021-09-15 10:40
本发明专利技术公开了一种分布式存储中的纠删码的编解码方法。现有的基于范德蒙编码矩阵方法计算复杂度非线性增长,影响了计算效率。本发明专利技术方法首先对纠删码进行截短操作,得到具有与母码相同校验位的截短码。编码时,首先设定整体上稀疏的二进制矩阵组成的编码矩阵,将任意两行全部置零后得到得到截短后的编码矩阵,利用截短后的编码矩阵和信息矩阵得到编码后的编码块矩阵。解码时,从校验块矩阵中中的两个校验块,与数据块矩阵所有数据排列成重建编码矩阵,删除全部置零的两行,插入两个校验块的行向量,求逆后与重建编码矩阵相乘,完成数据重建。本发明专利技术方法编解码过程中异或次数少、效率高,编解码效率优于基于范德蒙编码矩阵的方案。案。案。

【技术实现步骤摘要】
一种分布式存储中的纠删码的编解码方法


[0001]本专利技术属于云存储
,具体是分布式存储数据编码
,涉及一种分布式存储中的纠删码的编解码方法,具体是一种通过二进制稀疏矩阵对数据进行截短编解码的方法。

技术介绍

[0002]随着云计算、大数据、5G、边缘计算技术以及电子商务、社交网络、视频分享等应用的蓬勃兴起,互联网的使用者贡献了越来越多的内容,数据在规模方面的显著特点是体量庞大和爆炸式增长,这对构建良好的存储系统提出了重大挑战。系统既要保证数据的可靠性,也要提供高可用性。传统的独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)已无法满足大数据存储在可扩展性和经济成本上的需求。因此分布式存储系统在数据存储和数据管理上得到了极为广泛的应用。
[0003]分布式存储要保证数据的可靠性,常用的容错技术主要有两种:一种是多副本技术,通过简单的复制进行容错;另一种是纠删码容错技术,通过编码提供容错能力。常用的3副本复制方案虽然简单易行,但是存储空间利用率过低,导致存储空间浪费,且存在副本一致性不易维护的问题。对比之下,纠删码方案可以在保证相同数据容错能力的同时显著降低存储空间开销,在很大程度上降低了存储成本,但其通常采用基于范德蒙编码矩阵的方案,没有考虑编解码时的效率问题,当其数据集较大时要用到大量有限域GF(q)上的矩阵乘运算从而使计算复杂度非线性增长,极大地影响了计算效率。
[0004]所以只有提出一种计算高效且存储开销低的纠删码编码方法,才能真正解决纠删码在大规模分布式存储系统中的实际应用问题,提升系统响应速度、用户体验并降低存储成本。

技术实现思路

[0005]本专利技术的目的就是提供一种分布式存储中的纠删码的编解码方法,该方法采用二进制稀疏矩阵与截短的方案,配合矩阵乘框架,对纠删码进行高效的编解码,能够提升性能,减小存储开销。
[0006]本专利技术方法包括编码方法和解码方法。
[0007]本专利技术方法首先对纠删码进行截短操作,将长度为n、包含k个信息位及n

k个校验位的纠删码母码(n,k)删除t个信息位,得到截短码(n

t,k

t);截短码与母码具有相同的校验位。
[0008]所述的编码方法具体是:
[0009](1)设定整体上稀疏的二进制矩阵组成的编码矩阵其中,I是k
×
k的k
×
k
[0010]单位矩阵,φ
(n

k)
×
k
为(n

k)
×
k的校验矩阵,对应Ψ
n
×
k
第i行的编码向量为Ψ
i
,i=
1,2,

,n;截短后的编码矩阵其中,Q
k
×
k
由I
k
×
k
将任意两行全部置零后得到;
[0011](2)分布式系统中n个节点存储的码字表示为一个n
×
1的矩阵C,利用截短后的编码矩阵Ψ

n
×
k
以及的信息矩阵M得到编码后的编码块矩阵C=Ψ

n
×
k
×
M;信息矩阵M为k
×
1的列向量,其中,数据块d
j
为一维数组,j=1,2,

,k;
[0012]编码后的编码块矩阵C包括数据块矩阵C1和校验块矩阵C2,数据块矩阵C1为k
×
1的列向量,C1=Q
k
×
k
×
M,校验块矩阵C2为(n

k)
×
1的列向量,C2=φ
(n

k)
×
k
×
M;
[0013]编码块矩阵C的第i行的数据c
i
为第i个节点存储的数据c
i
=Ψ

i
×
M,Ψ

i
为对应Ψ

n
×
k
第i行的编码向量。
[0014]所述的解码方法即数据重建,当用户需要读取数据时,数据收集者提取数据块矩阵C1中的所有数据,以及从校验块矩阵C2中提取两个校验块,用于恢复出截短的数据块;具体是:
[0015](3)数据收集者将提取到的数据块和校验块按矩阵形式排列成重建编码矩阵B
k
×1,其中校验块置于数据块之下,重建编码矩阵B
k
×1为k
×
1的列向量;
[0016](4)将Q
k
×
k
中全部置零的两行删除,将提取的两个校验块对应的两行行向量加入Q
k
×
k
中,置于最后两行,构成k
×
k的重建矩阵R
k
×
k

[0017](5)对重建矩阵R
k
×
k
求逆,得到逆矩阵R

k
×
k

[0018](6)将逆矩阵R

k
×
k
与重建编码矩阵B
k
×1相乘,即恢复出包含截短数据块的信息矩阵M,M=R

k
×
k
×
B
k
×1;
[0019](7)数据收集者将所有数据块并发送给用户组合成原数据,完成数据重建。
[0020]进一步,分布式存储系统中节点间通过通信探测彼此存活状态,解码过程中,如发生节点失效,即该节点存储的数据块丢失,其他节点探测到该失效节点后,分布式存储系统生成新生节点N用于代替失效节点进行数据存储;
[0021]新生节点N首先生成k
×
k的单位矩阵I
k
×
k
,并将对应失效节点的行向量移除,加入两个校验块中的任意一个对应的行向量,置于I
k
×
k
的最下一行,得到修复矩阵H
k
×
k
;验证加入的行是否能使修复矩阵H
k
×
k
满秩,如果不满秩,更换另一个校验块;
[0022]对修复矩阵H
k
×
k
求逆,得到逆矩阵H

k
×
k
;取出H

k
×
k
中对应失效节点的行向量,得到修复该失效节点所需的数据块,发送新生节点N;
[0023]新生节点N将接收到的数据块进行异或运算,即得到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储中的纠删码的编解码方法,包括编码方法和解码方法;其特征在于:该方法首先对纠删码进行截短操作,将长度为n、包含k个信息位及n

k个校验位的纠删码母码(n,k)删除t个信息位,得到截短码(n

t,k

t);截短码与母码具有相同的校验位;所述的编码方法具体是:(1)设定整体上稀疏的二进制矩阵组成的编码矩阵其中,I
k
×
k
是k
×
k的单位矩阵,φ
(n

k)
×
k
为(n

k)
×
k的校验矩阵,对应Ψ
n
×
k
第i行的编码向量为Ψ
i
,i=1,2,

,n;截短后的编码矩阵其中,Q
k
×
k
由I
k
×
k
将任意两行全部置零后得到;(2)分布式系统中n个节点存储的码字表示为一个n
×
1的矩阵C,利用截短后的编码矩阵Ψ

n
×
k
以及的信息矩阵M得到编码后的编码块矩阵C=Ψ

n
×
k
×
M;信息矩阵M为k
×
1的列向量,其中,数据块d
j
为一维数组,j=1,2,

,k;编码后的编码块矩阵C包括数据块矩阵C1和校验块矩阵C2,数据块矩阵C1为k
×
1的列向量,C1=Q
k
×
k
×
M,校验块矩阵C2为(n

k)
×
1的列向量,C2=φ
(n

k)
×
k
×
M;编码块矩阵C的第i行的数据c
i
为第i个节点存储的数据c
i
=Ψ

i
×
M,Ψ

i
为对应Ψ

n
×
k
第i行的编码向量;所述的解码方法即数据重建,当用户需要读取数据时,数据收集者提取数据块矩阵C...

【专利技术属性】
技术研发人员:宋罡徐欣张权
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1