一种基于shadow的部分重复码构造方法

文档序号:27627648发布日期:2021-11-29 15:34阅读:246来源:国知局
一种基于shadow的部分重复码构造方法

1.本发明属于计算机领域,具体涉及一种基于shadow的部分重复码构造方法。


背景技术:

2.随着技术的进步,越来越多数据需要存储,但是传统的存储系统已无法满足海量的数据存储,可以大量存储数据的分布式存储系统应运而生。在分布式存储系统中,经常存在数据的丢失,所以需要一些方法来保证数据的可靠性,一般会采用“复制”和“纠删码”技术。但是复制策略所占据的存储开销较大,纠删码修复较为复杂,在修复过程中需要下载整个文件进行修复,所需较大的修复带宽开销。于是rouayheb和ramchandran于2010年提出一种精确修复的部分重复(fractional repetition,fr)码。fr码能容忍多故障节点的精确无编码修复,其修复带宽开销和计算复杂度较小,故障节点修复性能大大提升。fr码的构造方法现有许多,如利用steiner系、成对平衡设计等方法构造fr码。
3.现有fr码构造中大都无法调整系统参数,如运用正则图构造部分重复码,其重复度不可改变且只能修复单节点故障。prajapati提出一种具有环形结构的部分重复码,无法根据系统需求及时地调整参数。基于可分组设计的fr码,可以根据系统需要选择合适的存储容量或重复度,但是其修复局部性会随着参数增大而增大。


技术实现要素:

4.本发明的目的在于提供一种基于shadow的部分重复码构造方法,用以解决现有技术中的无法根据系统需求改变存储容量、重复度以及修复局部性较大的问题。
5.为了实现上述任务,本发明采用以下技术方案:
6.一种基于shadow的部分重复码构造方法,包括以下步骤:
7.步骤1:将原始文件m分成k个原始数据块,对k个原始数据块进行(n,k)mds编码得到n个编码数据块,其中,k≥2且n≥k;
8.步骤2:根据编码数据块的个数n构建集合x和集合ψ,其中,集合x包括n个不同元素,集合ψ包括t个子集φ,所述子集φ为集合x的(d+1)元子集,子集φ包含(d+1)个元素且每个子集φ内没有相同的元素,其中,d为正整数且(d+1)<n;
9.步骤3:获得集合ψ的影子集合其中,影子集合包括t组子影子集合,每组子影子集合包含(d+1)个集合φ',集合φ'包含d个元素,集合φ'由删除子集φ中任一个元素后其余元素组成;
10.步骤4:根据影子集合构造fr码,包括三种情况:
11.情况一:若构造同构fr码,则所述同构fr码的每个节点对应影子集合的每个集合φ',所述同构fr码的节点个数为t
×
(d+1),所述同构fr码的节点存储容量为d,所述同构fr码的重复度为d,所述同构fr码的每个节点存储的数据块为对应集合包含的元素;
12.情况二:若构造重复度异构fr码,则删除中每组子影子集合中的任一个集合
φ',得到删减后的影子集合删减后的影子集合包括t组子影子集合,每组子影子集合包含d个集合φ';
13.所述的重复度异构fr码的每个节点对应删减后的影子集合的每个集合φ',所述重复度异构fr码的节点个数为t
×
d,所述重复度异构fr码的节点存储容量为d,所述重复度异构fr码的重复度为d或(d

1),所述重复度异构fr码的每个节点存储的数据块为对应集合φ'包含的元素;
14.情况三:若构造存储容量异构fr码,则在情况二的基础上构建删减后的影子集合的shadow子关联矩阵a,对a进行行列互换得到矩阵a';
15.所述的存储容量异构fr码的每个节点对应矩阵a'中每一行,所述存储容量异构fr码的节点个数为矩阵a'行数,所述存储容量异构fr码的节点存储容量为d或d

1,所述存储容量异构fr码的重复度为d,所述存储容量异构fr码的每个节点存储的数据块为对应行中元素为1的列数。
16.本发明与现有技术相比具有以下技术特点:
17.1、基于shadow构造的部分重复码是一种新的算法,利用该算法来构造fr码更加简单直观和高效,构造出的fr码修复局部性较低不会随着系统参数增加而增加。
18.2、基于shadow构造的部分重复码,可以根据系统需要选择合适的节点存储容量以及数据重复度。
附图说明
19.图1是基于shadow构造的同构fr码结构;
20.图2是基于shadow构造的重复度异构fr码;
21.图3是基于shadow构造的存储容量异构fr码。
具体实施方式
22.以下结合附图及实施例,对本发明进行进一步详细说明。需要说明的是,在以下的实施例中,仅仅是使本领域技术人员对本发明的目的、技术方案及优点更加清楚明白,本发明不限于这些实施例。
23.shadow影子结构:设x是n个元素组成的集合,让表示全部x中k个元素组成的集合,存在集合其中0≤k≤n。集合
[0024][0025]
称集合为δ的影子(shadow),其中表示x中所有k

1个元素组成的集合。e
表示集合中的一个子集,f表示集合δ中的一个子集,shadow集合是通过删除集合δ中的一个元素构成的集合。
[0026]
在本实施例中公开了一种基于shadow构造的部分重复码的构造方法,具体包括以下步骤:
[0027]
步骤1:将原始文件m分成k个原始数据块,对k个原始数据块进行(n,k)mds编码得到n个编码数据块c1,

,c
k
‑1,c
k
,c
k+1
,

c
n
,n个编码数据块包括k个原始数据块和n

k个校验数据块,其中,k≥2且n≥k;
[0028]
步骤2:根据编码数据块的个数n构建集合x和集合ψ,其中,集合x包括n个不同元素,集合ψ包括t个子集φ,所述子集φ为集合x的(d+1)元子集,子集φ包含(d+1)个元素且每个子集φ内没有相同的元素,其中,d为正整数且(d+1)<n;
[0029]
步骤3:对子集φ中的每个元素均删除一次,获得集合ψ的影子集合其中,影子集合包括t组子影子集合,每组子影子集合包含(d+1)个集合φ',每个集合φ'包含d个元素;
[0030]
步骤4:根据影子集合构造fr码,包括三种情况:
[0031]
情况一:若构造同构fr码,则所述同构fr码的每个节点对应影子集合的每个集合φ',所述同构fr码的节点个数为t
×
(d+1),所述同构fr码的节点存储容量为d,所述同构fr码的重复度为d,所述同构fr码的每个节点存储的数据块为对应集合φ'包含的元素;
[0032]
情况二:若构造重复度异构fr码,则删除中每组子影子集合中的任一个集合φ',得到删减后的影子集合删减后的影子集合包括t组子影子集合,每组子影子集合包含d个集合φ';
[0033]
所述的重复度异构fr码的每个节点对应删减后的影子集合的每个集合φ',所述重复度异构fr码的节点个数为t
×
d,所述重复度异构fr码的节点存储容量为d,所述重复度异构fr码的重复度为d或(d

1),所述重复度异构fr码的每个节点存储的数据块为对应集合φ'包含的元素;
[0034]
情况三:若构造存储容量异构fr码,则在情况二的基础上构建删减后的影子集合的shadow子关联矩阵a,对a进行行列互换得到矩阵a';
[0035]
所述的存储容量异构fr码的每个节点对应矩阵a'中每一行,所述存储容量异构fr码的节点个数为矩阵a'行数,所述存储容量异构fr码的节点存储容量为d或d

1,所述存储容量异构fr码的重复度为d,所述存储容量异构fr码的每个节点存储的数据块为对应行中元素为1的列数。
[0036]
具体的,情况一中的第i个集合即为fr码第i个节点,的第i个集合包含的元素对应为fr码第i个节点存储的数据块。根据集合ψ及shadow影子集合的特性,将fr码分为t个子shadow组,fr码第s个子shadow组是由集合ψ中的第s个子集(其中0<s≤t)所生成的shadow集合φs'对应产生。
[0037]
具体的,情况三中矩阵a'中每一行代表一个存储节点,矩阵a'中的第i行表示分布
式存储系统中的第i个存储节点n
i
,i=1,2,

,n。由以下公式构造fr码:
[0038]
n
i
={j:a
ij
=1}
ꢀꢀꢀꢀꢀꢀ
(2)
[0039]
j=1,2,

,n,i表示第i个存储节点,a
ij
表示矩阵第i行第j列的值。n
i
表示fr码的存储节点,n
i
中包含的数据块为矩阵a'中第i行所有1所对应的列数,将列数提取出即得到一个节点所存储的数据块,可构造每个节点存储容量为d或者d

1,重复度ρ=d的异构fr码。
[0040]
实施例
[0041]
本实施例给出一种可无限扩展的部分重复(fractional repetition,fr)码的构造方法,在上述实施例的基础上还公开了如下技术特征:
[0042]
本实施例为构造(12,9)mds码,用m=(m1,m2,m3,m4,m5,m6,m7,m8,m9)表示分布式存储系统中存储的原始文件,c=(m1,m2,m3,m4,m5,m6,m7,m8,m9,p
10
,p
11
,p
12
)表示系统mds码,其中的m1,m2,m3,m4,m5,m6,m7,m8,m9表示原始数据块;p
10
,p
11
,p
12
表示校验数据块。
[0043]
本实施例中,首先明确分布式存储系统中部分重复码节点存储容量为d=3,所以选取含有12个元素的集合x={1,2,3,4,5,6,7,8,9,10,11,12},构造满足条件的一个4元集合ψ如下
[0044]
ψ={{1,4,8,12},{2,5,9,11},{3,6,7,10}}
ꢀꢀꢀꢀꢀ
(3)
[0045]
本实施例中,含有3个子集所以分为3个子shadow组,shadow影子集合如下:
[0046][0047]
本实施例中,按照步骤4中的情况一shadow集合与分布式存储系统相对应,构造的同构fr码如下图1所示。每个节点存储容量d=3,重复度ρ=3且分为三个子shadow组。可以根据系统存储容量大小,通过删减shadow影子集合φs'来满足重复度要求。
[0048]
本实施例中,删减一个子集后得到的shadow影子集合如下:
[0049][0050]
由集合按照步骤4中的情况二可得重复度异构的fr码,如图2所示。构造的fr码重复度ρ=2或者3,存储容量d=3。
[0051]
本实施例中,shadow影子集合对应的shadow子关联矩阵如下所示为:
[0052][0053]
shadow影子集合对应的shadow子关联矩阵互换行列,得到如下矩阵
[0054]
本实施例中,关联矩阵a'按步骤4中的情况三可得存储容量异构的fr码,如图3所示。节点存储容量为2或者3、重复度为ρ=3的异构部分重复码。
[0055]
本实施例可以看出构造同构fr码对每个存储节点都有着一样的存储容量和相同的重复度,经过对集合的简单删减可以构造出重复度不同的异构fr码,对关联矩阵的反转可构造节点存储容量不同的异构fr码,而且可以根据系统对于节点存储容量以及数据重复度需要选择合适的shadow集合来构造。明显可见,此fr码比一般的fr码更适应实际的分布式存储系统,而且花费的存储成本更低。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1