CN104915370B - 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法 - Google Patents

基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法 Download PDF

Info

Publication number
CN104915370B
CN104915370B CN201510162479.3A CN201510162479A CN104915370B CN 104915370 B CN104915370 B CN 104915370B CN 201510162479 A CN201510162479 A CN 201510162479A CN 104915370 B CN104915370 B CN 104915370B
Authority
CN
China
Prior art keywords
matrix
node
turns
rows
neighborhood
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.)
Expired - Fee Related
Application number
CN201510162479.3A
Other languages
English (en)
Other versions
CN104915370A (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.)
Tianjin University of Technology
Original Assignee
Tianjin University of Technology
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 Tianjin University of Technology filed Critical Tianjin University of Technology
Priority to CN201510162479.3A priority Critical patent/CN104915370B/zh
Publication of CN104915370A publication Critical patent/CN104915370A/zh
Application granted granted Critical
Publication of CN104915370B publication Critical patent/CN104915370B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法。包含以下步骤:使用初始编码生成算法生成搜索起始编码矩阵;输入参数初始化搜索进程,采用C4圈数量作为启发式准则,利用固定行重列重矩阵交换操作产生邻域编码矩阵;通过禁忌搜索策略迭代搜索得到最优编码矩阵。本发明首先针对现有分片复制码编码矩阵构造方法只限于有限参数的情况,提出基于禁忌搜索的编码矩阵搜索方法,可在任意合法参数下给出分片复制码的编码矩阵;其次本发明针对现有构造方法构造的编码矩阵存储效率较低的问题,提出了基于C4圈计数的启发式规则,使得本方法的结果达到理论最优;最后本发明提出C4圈计数矩阵计算法,简化算法核心运算过程,极大加快搜索速度。

Description

基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法
技术领域
本发明属于计算机存储技术领域,涉及一种基于禁忌搜索的分片复制码(Fractional Repetition Code)最优冗余率编码矩阵构造方法,解决现有分片复制码编码矩阵构造方法构造的编码矩阵存储效率较低、构造适用参数范围较小的困难,并提高构造速度,可以用于分布式存储系统的冗余构造。
背景技术
计算机存储系统冗余技术是利用存储系统的并联存储模型来提高系统数据可靠性和可用性的技术。传统的冗余技术一般使用两种方法:数据备份和纠删码技术。采用数据备份的存储系统修复丢失数据速度较快但需使用大量冗余存储空间,造成了存储资源的浪费。而采用纠删码的存储系统占用冗余存储空间较小但恢复数据时需读取较多数据且需进行计算,不仅加速了存储设备的损耗且对存储系统有了计算功能上的要求。分片复制码能够很好的克服这些问题,适用于大型分布式存储系统、商用云存储系统以及对数据可靠性或可用性要求较高的各种类型存储系统。
分片复制码技术(FR编码)是由Rouayheb和Ramchandran提出的一种基于特定组合结构的纠删编码。该编码兼有数据备份和传统纠删码的优点,修复数据时读取数据量最低且不需要计算,同时具有比传统纠删码更大的冗余率。由于FR编码优良的性能,大量的研究者投入到了FR编码的研究中。FR的冗余率主要依靠其特定组合结构决定,现有得出这种特定组合结构的方法主要为依靠组合数学特定结构的构造法和基于布尔矩阵算法的构造法。由于组合数学特定结构对参数有较严要求,因此大部分参数下的FR编码无法由组合数学特定结构得出。布尔矩阵算法虽能给出所有参数下的FR编码矩阵,但其给出的编码矩阵冗余率较低,实用性较低。
如何在任意参数下给出FR编码的编码矩阵同时保证其冗余率最优是研究的重点和难点。由于每组参数下的编码矩阵各不相同,因此选取的构造方法对结果有很大影响;FR编码冗余率的本质是编码矩阵中1的分布对于参数是否均匀,这是可以看作矩阵的一个整体属性,因此任何一个1的位置改变都有可能改变编码矩阵的冗余率。
发明内容
本发明的目的是克服现有技术存在的上述问题,提出一种基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法。由于现有的方法不能在任意参数下给出最优冗余率的FR编码,基于禁忌搜索的构造方法能够很好的克服这些问题,可给出任意参数下的最优冗余率FR编码。
本发明提供的基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法,该方法具体包含以下步骤:
第1、生成搜索起始编码矩阵
在分布式存储系统中,将一个文件分为若干数据块后存储在n个节点上,每个节点存储d个不同的数据块,任意连接k个节点能够重构出原文件,将满足这一性质的存储系统记为(n,k,d)DSS;
在(n,k,d)DSS中,FR编码C:(n,θ,d,ρ)的定义如下:
FR编码C:(n,θ,d,ρ)定义为集合V={V1,V2,…,Vn},其中Vi为[n]={1,2,…,θ}的子集且|Vi|=d,满足[n]中的任一元素出现在V中的ρ个集合里;其中n即为(n,k,d)DSS中的n,表示参与文件存储的存储节点数量,d为(n,k,d)DSS中的d,表示每个存储节点上存储的数据块数量,θ表示文件被分割成的数据块的总数量,ρ表示每个数据包的存储次数;集合Vi表示编号为i的存储节点上需存入的数据包编号;且参数n,θ,d,ρ满足:
nd=θρ (1)
算法需根据存储文件和分布式存储系统的具体需要,输入参数n,d,θ,ρ,使用初始矩阵生成算法生成与上述定义相对应的每行权重为d、每列权重为ρ的n×θ布尔矩阵,此布尔矩阵即搜索的起始编码矩阵;
本发明使用布尔矩阵An×θ描述,则矩阵的各行代表存储节点,各列代表数据块,从而当FR编码的节点i需要存储数据块j,则矩阵A中i行j列的位置为1,否则为0;
本发明首先根据存储文件和分布式存储系统的具体需要,输入参与文件存储的存储节点数n,每个存储节点存储文件块数d,文件分割数据块数θ,每个数据块的复制深度ρ。根据以上参数,算法使用初始矩阵生成算法生成每行中1数量皆为d且每列中1数量皆为ρ初始布尔矩阵;
即初始矩阵为行权重序列为R,列权重序列为S的n×θ布尔矩阵,R与S定义如下:
行权重序列R表示布尔矩阵每行中1的数量,列权重序列S表示布尔矩阵中每列中1的数量。
第2、禁忌搜索初始化
在第1步获得搜索的起始编码矩阵后,初始化搜索所使用的搜索节点;首先将起始编码矩阵作为起始搜索节点的编码矩阵M;其次计算起始搜索节点的C4圈计数矩阵C4_Matrix;同时以C4_Matrix中所有元素之和作为此矩阵的C4圈数并以此初始化搜索进程的当前最优C4圈数Opt_C4和搜索节点C4圈数C4_Num;再次输入参数k计算此矩阵的冗余率RC(k)并以此初始化当前最优冗余率Opt_RC(k),同时计算冗余率上界g(k);最后输入禁忌步长最大值step_max,同时将当前节点的禁忌步长step设为step_max,并将搜索进程最优矩阵Opt_M设为起始搜索节点的编码矩阵M。
第3、生成邻域节点
在第2步得到初始化后的起始搜索节点的基础上,以起始搜索节点作为当前节点开始搜索;在当前节点上执行固定行重列重矩阵交换操作逐一生成邻域节点并计算邻域节点编码矩阵的C4圈数;若生成的邻域节点编码矩阵的C4圈数少于当前节点编码矩阵的C4圈数,则此邻域节点为较优节点,执行第4步;若生成的邻域节点编码矩阵的C4圈数等于当前节点编码矩阵的C4圈数,则此邻域节点为同等节点,执行第5步;若生成的邻域节点编码矩阵的C4圈数大于当前节点编码矩阵的C4圈数则此邻域节点为较差节点,直接放弃此节点继续执行第3步。
计算编码矩阵C4圈数,等价于计算编码矩阵的RC(2)。当编码矩阵中C4圈数较少到一定程度,其RC(2)即会上升。
本发明通过以下定理,证明了RC(2)与RC(k)间的充分关系,具体定理及证明过程如下:
引理3.1.设γ为一固定行重列重布尔矩阵D的RC(2),δ为D的RC(k)时,γ与δ存在以下关系:
证明:由RC(k)定义可知,D中任意两行中相同列的1的个数最多为2d-γ。不失一般性,令k=3,当出现最差情况,即3行不存在同一列的3个位置皆为1,又因任意两行间相同列的1数最多为γ,则矩阵D的δ与γ有以下关系:δ≥3d-3(2d-γ)。以此类推,得证。
引理3.1实际通过RC(2)给出了RC(k)值的一个下界,显然,若一个矩阵的RC(2)的值增大,无论k为何值,RC(k)的下界也随之增大。则由引理3.1,RC(2)与RC(k))存在以下关系:
定理3.1.设γ为一固定行重列重布尔矩阵D的RC(2),δ为D的RC(k)时,若δ不为最大时,必存在正整数η和对任意与D行重列重相同的布尔矩阵F和任意正整数ε,当且γ≤η,矩阵F的RC(2)与RC(k)有:
其中ε+γ≤2d-1。
证明:由引理3.1可知,当γ增大时,δ的下界也随之增大,当矩阵F的下界大于δ时,矩阵F的RC(k)也随之增大。
第4、处理较优节点
计算较优节点编码矩阵的RC(k),判断是否达到FR码存储能力上界g(k);FR码C:(n,θ,d,ρ)的存储能力上界g(k)的定义如下:
g(1)=d (3)
若RC(k)等于g(k)则结束算法返回较优节点;否则判断较优节点C4圈数和RC(k)是否优于搜索进程的当前最优C4圈数和RC(k),若是则以较优节点C4圈数和RC(k)更新当前最优C4圈数和RC(k),记录较优节点的C4圈数和RC(k),更新较优节点的C4圈计数矩阵,将搜索进程最优矩阵Opt_M更新为较优节点的编码矩阵M,将较优节点的禁忌步长设为初始值,以较优节点为当前节点执行第3步。
第5、处理同等节点
若生成此同等节点的当前节点的禁忌步长step大于1,则将同等节点的禁忌步长设为step-1,记录同等节点的C4圈数和RC(k),更新同等节点C4圈计数矩阵,以同等节点为当前节点执行第4步;否则直接放弃此同等节点执行第3步。
第6、输出结果
算法停止后返回搜索进程最优矩阵Opt_M。
本发明第2步所述的禁忌搜索初始化的具体方法包括:
第2.1、计算起始编码矩阵C4圈数C4_Num与C4圈计数矩阵C4_Matrix
在第1步中获得起始编码矩阵的基础上,本发明采用计算编码矩阵C4圈数的方法作为禁忌搜索的启发式规则;C4圈的定义如下:
C4圈为图论概念,在布尔矩阵中表现为2阶子方阵:
C4圈数C4_Num即为此2阶子方阵在编码矩阵中的数量;
在计算编码矩阵C4圈数C4_Num时,本发明使用C4圈计数矩阵C4_Matrix降低生成邻域节点时的C4圈数计算量;本发明通过布尔矩阵中的一行看作二进制数,利用二进制数间的并来计算两行之间的C4圈数,具体计算公式如下:
C4_Matrixij=wij(wij-1)/2 (6)
其中,C4_Matrixij为i行和j行之间的C4圈数,wij为编码矩阵M的i行和j行之间的并的值;算法遍历起始编码矩阵M的n行中所有两行组合,利用上述公式(6)计算C4圈数并存入C4圈计数矩阵C4_Matrix;C4圈计数矩阵C4_Matrix中元素C4_Matrixij即表示i行和j行之间的C4圈数;C4圈计数矩阵C4_Matrix中所有元素之和即为C4圈数C4_Num;
第2.2、计算冗余率RC(k)
一个FR编码C:(n,θ,d,ρ)的编码矩阵M的冗余率RC(k)的定义如下:
其中[n]={1,…,n},Vi为编码矩阵M的第i行。
根据公式(7)对RC(k)的定义,算法遍历起始编码矩阵n行中的所有k行组合,并计算每个k行组合之并的权值,所有k行组合之并的权值中的最小值即为编码矩阵冗余率RC(k)的值。
本发明第3步所述的生成邻域节点的具体方法包括:
第3.1、基于固定行重列重矩阵交换操作生成邻域节点
使用当前节点的布尔矩阵,通过固定行重列重矩阵交换操作生成邻域节点;固定行重列重矩阵交换操作的定义如下:
存在如下两种2阶子方阵之一,
经过这种交换,能够将这两种子矩阵相互转换,称为交换操作;
本步中将逐一生成当前节点的所有邻域节点;首先遍历当前解矩阵n行中的所有两行组合i,j;在得到的每个i行和j行中遍历所有2列组合r,l,即得到了矩阵M中所有2×2子矩阵:
判断编码矩阵中是否存在可执行交换操作的子矩阵,若是则执行交换操作即生成一邻域节点,否则继续判断下一个子矩阵;
第3.2、计算邻域节点C4圈数
计算邻域节点C4圈数为算法中运行频率最高的部分。其时间复杂度为O(n3)。本发明使用C4圈计数矩阵的方法简化计算领域节点C4圈数,将其复杂度降为O(n2)。
本发明使用C4圈计数矩阵的方法简化计算领域节点C4圈数;使用第2步中生成的C4圈计数矩阵C4_Matrix计算邻域节点C4圈数;重新计算生成此邻域节点的当前节点C4圈计数矩阵C4_Matrix中i行和j行相关的元素,但不计算C4_Matrixij,其中i和j为生成此邻域节点使用的2×2子矩阵中的2行。
本发明的优点和有益效果:
1)通过引入基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法,解决任意参数下的分片复制码最优冗余率编码矩阵构造的问题;2)本发明采用的禁忌搜索方法,克服了传统的构造法无法构造任意参数的FR编码的问题;3)本发明公开的C4圈计数方法能够准确的描述搜索进程中分片复制码冗余率的内在量变过程,使得禁忌搜索可以用于编码构造的数学模型之上,从而完成搜索过程中冗余率的优化;4)本发明提出的C4圈计数矩阵法,简化每个邻域节点的C4圈计算过程,极大加快搜索速度。
附图说明
图1为本发明的流程图。
图2为本发明使用的FR编码初始编码矩阵生成算法生成的起始矩阵实例。
图3为搜索节点初始化后的各个参数示意图。
图4为C4圈计数矩阵示例图。
图5为起始矩阵产生的数个最优解示例。
图6为起始矩阵产生的数个同等解示例。
图7为算法的运行结果。
图8为在n=12,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图9为在n=24,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图10为在n=36,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图11为在n=12,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图12为在n=24,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图13为在n=36,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图14为在n=12,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图15为在n=24,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图16为在n=36,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
具体实施方式
下面结合附图对本发明作进一步的描述。
实施例1
如图1所示,为本发明基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法的操作流程图,该方法的操作步骤包括:
步骤01搜索起始编码矩阵生成
首先在根据存储文件和分布式存储系统的具体需要,输入参数n,d,θ,ρ,用起始编码矩阵生成算法生成起始编码矩阵。起始编码矩阵需为行权重序列为R,列权重序列为S的n×θ布尔矩阵,即:
目前有分别由Anil和Gupta提出的两种不同的编码矩阵生成算法适用本发明的起始矩阵生成算法,本实例中选择Anil的算法。
如图2所示,为本发明经过生成算法生成的起始编码矩阵示意图。本实施例中n=10,d=4,θ=20,ρ=2。
步骤02禁忌搜索初始化
禁忌搜索是一种应用广泛的启发式算法,其实质是将待解决问题的解集用某种规则构造成图结构并利用特定的策略在此图结构上进行搜索。
在步骤01生成起始编码矩阵的基础上,本发明将需初始化的搜索节点参数分为搜索进程参数与搜索节点两类。如图3所示,为本发明搜索初始化后的各个参数。
(1)编码矩阵、C4圈数及C4圈计数矩阵初始化
C4圈为本发明的关键部分,是将编码矩阵集合构造为图结构的规则。本发明用定理证明编码矩阵中C4圈数与编码矩阵冗余率之间的充分关系,将表示编码矩阵冗余率的RC(k)转化为C4圈数,简化了算法的核心运算。
将步骤01使用的起始编码矩阵作为起始搜索节点的编码矩阵M,计算其C4圈计数矩阵C4_Matrix。计算C4圈计数矩阵C4_Matrix有如下公式:
C4numij=wij(wij-1)/2
其中,C4_Matrixij为i行和j行之间的C4圈数,wij为i行和j行之间的并的值。算法遍历起始编码矩阵n行中的所有两行组合,利用上述公式计算C4圈数并将之存入C4圈计数矩阵C4_Matrix。图4所示即为本实例的起始搜索节点的C4圈计数矩阵。
C4圈计数矩阵中所有元素之和即为起始搜索节点的编码矩阵矩阵C4圈数C4_Num,之后将搜索进程的当前最优C4圈数Opt_C4和搜索节点C4圈数C4_Num的值设为C4_Num。本实施例中,起始搜索节点的C4圈数为9。
(2)冗余率RC(k)初始化
输入参数k并以此计算此矩阵的冗余率RC(k)并以此初始化当前最优冗余率Opt_RC(k)。计算此矩阵的冗余率RC(k)有如下公式:
其中[n]={1,…,n},Vi为编码矩阵中行向量。本实施例中,k为4,起始矩阵的RC(k)为9。
(3)禁忌步长初始化
输入禁忌步长最大值step_max,同时令当前节点的禁忌步长step=step_max。本实施例中,step_max的值为1。
(4)冗余率上界g(k)初始化
冗余率上界g(k)是由Rouayheb和Ramchandran提出,其定义如下:
在(n,k,d)DSS上,FRC编码C:(n,θ,d,ρ)的maxRC(k)≤g(k),g(k)由下式递归得到:
g(1)=d
步骤03生成邻域节点
生成邻域节点为搜索中的核心步骤之一,是运行频率最高的程序。
在当前节点上执行固定行重列重矩阵交换操作逐一生成邻域节点,每生成一个邻域节点时计算其编码矩阵的C4圈数。固定行重列重矩阵交换操作定义如下:
存在如下两种2阶子方阵之一,
经过这种交换,可将其变为另外一个2阶子方阵,称为交换操作。
本步中将逐一生成当前节点的所有邻域节点。首先遍历当前搜索节点的编码矩阵M的n行中所有两行组合i,j。在得到的每个i行和j行中遍历所有2列组合k,l,即得到了矩阵M中所有2×2子矩阵:
判断上述子矩阵中是否可执行交换操作,若是则执行交换操作即生成一邻域节点,否则继续判断下一个子矩阵。
若生成的邻域节点编码矩阵的C4圈数少于当前节点编码矩阵的C4圈数则此邻域节点为较优节点,执行步骤04;若生成的邻域节点编码矩阵的C4圈数等于当前节点编码矩阵的C4圈数则此邻域节点为同等节点,执行步骤05;若生成的邻域节点编码矩阵的C4圈数大于当前节点编码矩阵的C4圈数则此邻域节点为较差节点,直接放弃此节点;
步骤04处理较优节点
较优搜索节点为搜索判断比当前节点更为接近最优解的节点,是算法的主要搜索目标。通过多次迭代寻找较优节点,程序即可逐步减少编码矩阵的C4圈数量。
计算此较优节点的编码矩阵RC(k),判断其是否达到冗余率上界g(k)。若其RC(k)等于g(k)则结束算法返回此节点。否则判断此节点C4圈数和RC(k)是否优于搜索进程的当前最优C4圈数和RC(k),若是则更新之。以此节点为当前节点,记录此节点的C4圈数和RC(k)等,更新节点C4圈计数矩阵,将其禁忌步长设为初始值,迭代执行第4步;
如图5所示为起始搜索节点产生的较优节点的编码矩阵。图5中为起始搜索节点产生的3个不同邻域节点编码矩阵,图5(a)中矩阵的C4圈数为8,图5(b)中矩阵的C4圈数为7,图5(c)中矩阵的C4圈数为6。
步骤05处理同等节点
同等搜索节点为搜索判断与当前搜索节点性能相同的节点,但依然有可能通过此节点到达最优解。且随着搜索的深入,出现邻域节点中无较优节点的几率会逐渐增高。故同等节点是算法的次要搜索目标。但由于其数量较多,禁忌搜索采用禁忌步长限制其搜索深度,防止其过多的访问无用节点。
若当前节点(即生成此同等节点的搜索节点)的禁忌步长step大于1,则将此同等节点的禁忌步长设为step-1,记录此节点的C4圈数和RC(k)等,更新节点C4圈计数矩阵,以此同等节点为当前节点执行第4步;否则直接放弃此邻域节点;
如图6为起始搜索节点产生的同等节点的编码矩阵。图6中为起始搜索节点产生的3个不同邻域节点编码矩阵,其C4圈数皆为9。
步骤06算法结果
图7为经过多次迭代之后算法输出的最优编码矩阵。本实例中,算法运行结果的编码矩阵中的C4圈数为0,RC(k)为11,比初始节点提高了2。
实施例2
如图8~16所示,为本发明基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法的效果说明图。本实例中,为了方便实际应用,复制深度ρ取实际中最常使用的2,3,4三值;为了方便数据对比,存储节点数n取可整除2,3,4的12,24,36三值,保证合法参数的数量最多。
本实例中,每个参数使用了分别由Srijan Anil和Toni Ernvail提出的两种不同的编码矩阵生成算法生成的编码矩阵作为起始编码矩阵。实例说明,本发明提出的方法在任何参数下,使用完全不同的起始搜索节点都可得到最优解。
图8为在n=12,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图9为在n=24,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图10为在n=36,ρ=2和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图11为在n=12,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图12为在n=24,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图13为在n=36,ρ=3和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图14为在n=12,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图15为在n=24,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。
图16为在n=36,ρ=4和k=4情形下,d取所有合法值的两种初始解,优化解和上界RC(k)之间的对比。A为使用Srijan Anil的编码矩阵生成算法作为起始矩阵生成算法得出的结果,B为使用Toni Ernvail的编码矩阵生成算法作为起始矩阵生成算法得出的结果。A和B两图中横坐标为参数d的取值,纵坐标为冗余率RC(k)。

Claims (3)

1.一种基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法,其特征在于该方法具体包含以下步骤:
第1、搜索起始编码矩阵的生成
在分布式存储系统中,将一个文件分为若干数据块后存储在n个节点上,每个节点存储d个不同的数据块,连接任意k个节点可重构出原文件,满足以上性质的分布式存储系统称为(n,k,d)DSS;
在(n,k,d)DSS中,分片复制码,简称FR编码C:(n,θ,d,ρ)的定义如下:
FR编码C:(n,θ,d,ρ)定义为集合V={V1,V2,…,Vn},其中Vi为集合[n]={1,2,…,θ}的子集且|Vi|=d,满足集合[n]中的任一元素出现在V中的ρ个集合里;其中n即为(n,k,d)DSS中的n,表示参与文件存储的存储节点数量,d为(n,k,d)DSS中的d,表示每个存储节点上存储的数据块数量,θ表示文件被分割成的数据块的总数量,ρ表示每个数据包的存储次数;集合Vi表示编号为i的存储节点上需存入的数据包编号;且参数n,θ,d,ρ满足:
nd=θρ (1)
该方法需根据存储文件和分布式存储系统的具体需要,输入参数n,d,θ,ρ,使用初始矩阵生成算法生成与上述定义相对应的每行权重为d、每列权重为ρ的n×θ布尔矩阵,此布尔矩阵即搜索的起始编码矩阵;
使用布尔矩阵An×θ描述,则矩阵的各行代表存储节点,各列代表数据块,从而当FR编码的节点i需要存储数据块j,则矩阵A中i行j列的位置为1,否则为0;
首先根据存储文件和分布式存储系统的具体需要,输入参与文件存储的存储节点数n,每个存储节点存储文件块数d,文件分割数据块数θ,每个数据块的复制深度ρ;根据以上参数,该方法使用初始矩阵生成算法生成每行中1数量皆为d且每列中1数量皆为ρ初始布尔矩阵;
即初始矩阵为行权重序列为R,列权重序列为S的n×θ布尔矩阵,R与S定义如下:
行权重序列R表示布尔矩阵每行中1的数量,列权重序列S表示布尔矩阵中每列中1的数量;
第2、禁忌搜索初始化
在第1步获得搜索的起始编码矩阵后,初始化搜索所使用的搜索节点;首先将起始编码矩阵作为起始搜索节点的编码矩阵M;其次计算起始搜索节点的C4圈计数矩阵C4_Matrix;同时以C4_Matrix中所有元素之和作为此矩阵的C4圈数并以此初始化搜索进程的当前最优C4圈数Opt_C4和搜索节点C4圈数C4_Num;再次输入参数k计算此矩阵的冗余率RC(k)并以此初始化当前最优冗余率Opt_RC(k),同时计算冗余率上界g(k);最后输入禁忌步长最大值step_max,同时将当前节点的禁忌步长step设为step_max,并将搜索进程最优矩阵Opt_M设为起始搜索节点的编码矩阵M;
第3、生成邻域节点
在第2步得到初始化后的起始搜索节点的基础上,以起始搜索节点作为当前节点开始搜索;在当前节点上执行固定行重列重矩阵交换操作逐一生成邻域节点并计算邻域节点编码矩阵的C4圈数;若生成的邻域节点编码矩阵的C4圈数少于当前节点编码矩阵的C4圈数,则此邻域节点为较优节点,执行第4步;若生成的邻域节点编码矩阵的C4圈数等于当前节点编码矩阵的C4圈数,则此邻域节点为同等节点,执行第5步;若生成的邻域节点编码矩阵的C4圈数大于当前节点编码矩阵的C4圈数则此邻域节点为较差节点,直接放弃此节点继续执行第3步;
第4、处理较优节点
计算较优节点编码矩阵的RC(k),判断是否达到FR码存储能力上界g(k);FR码C:(n,θ,d,ρ)的存储能力上界g(k)的定义如下:
g(1)=d (3)
若RC(k)等于g(k)则结束,返回较优节点;否则判断较优节点C4圈数和RC(k)是否优于搜索进程的当前最优C4圈数和RC(k),若是则以较优节点C4圈数和RC(k)更新当前最优C4圈数和RC(k),记录较优节点的C4圈数和RC(k),更新较优节点的C4圈计数矩阵,将搜索进程最优矩阵Opt_M更新为较优节点的编码矩阵M,将较优节点的禁忌步长设为初始值,以较优节点为当前节点执行第3步;
第5、处理同等节点
若生成此同等节点的当前节点的禁忌步长step大于1,则将同等节点的禁忌步长设为step-1,记录同等节点的C4圈数和RC(k),更新同等节点C4圈计数矩阵,以同等节点为当前节点执行第4步;否则直接放弃此同等节点执行第3步;
第6、输出结果
该方法停止后返回搜索进程最优矩阵Opt_M。
2.根据权利要求1所述的方法,其特征在于第2步禁忌搜索初始化的具体方法包括:
第2.1、计算起始编码矩阵C4圈数C4_Num与C4圈计数矩阵C4_Matrix
在第1步中获得起始编码矩阵的基础上,采用计算编码矩阵C4圈数的方法作为禁忌搜索的启发式规则;C4圈的定义如下:
C4圈为图论概念,在布尔矩阵中表现为2阶子方阵:
C4圈数C4_Num即为此2阶子方阵在编码矩阵中的数量;
在计算编码矩阵C4圈数C4_Num时,使用C4圈计数矩阵C4_Matrix降低生成邻域节点时的C4圈数计算量;通过布尔矩阵中的一行看作二进制数,利用二进制数间的并来计算两行之间的C4圈数,具体计算公式如下:
C4_Matrixij=wij(wij-1)/2 (6)
其中,C4_Matrixij为i行和j行之间的C4圈数,wij为编码矩阵M的i行和j行之间的并的值;该方法遍历起始编码矩阵M的n行中所有两行组合,利用上述公式(6)计算C4圈数并存入C4圈计数矩阵C4_Matrix;C4圈计数矩阵C4_Matrix中元素C4_Matrixij即表示i行和j行之间的C4圈数;C4圈计数矩阵C4_Matrix中所有元素之和即为C4圈数C4_Num;
第2.2、计算冗余率RC(k)
FR编码C:(n,θ,d,ρ)的编码矩阵M的冗余率RC(k)的定义如下:
其中[n]={1,…,n},Vi为编码矩阵M的第i行;
根据公式(7)对RC(k)的定义,遍历起始编码矩阵n行中的所有k行组合,并计算每个k行组合的并的权值,所有k行组合并的权值中的最小值即为编码矩阵冗余率RC(k)的值。
3.根据权利要求1所述的方法,其特征在于第3步生成邻域节点的方法包括:
第3.1、基于固定行重列重矩阵交换操作生成邻域节点
使用当前节点的布尔矩阵,通过固定行重列重矩阵交换操作生成邻域节点;固定行重列重矩阵交换操作的定义如下:
存在如下两种2阶子方阵之一,
经过这种交换,能够将这两种子矩阵相互转换,称为交换操作;
本步中将逐一生成当前节点的所有邻域节点;首先遍历当前解矩阵n行中的所有两行组合i,j;在得到的每个i行和j行中遍历所有2列组合r,l,即得到了矩阵M中所有2×2子矩阵:
判断编码矩阵中是否存在可执行交换操作的子矩阵,若是则执行交换操作即生成一邻域节点,否则继续判断下一个子矩阵;
第3.2、计算邻域节点C4圈数
使用C4圈计数矩阵的方法简化计算领域节点C4圈数;使用第2步中生成的C4圈计数矩阵C4_Matrix计算邻域节点C4圈数;重新计算生成此邻域节点的当前节点C4圈计数矩阵C4_Matrix中i行和j行相关的元素,但不计算C4_Matrixij,其中i和j为生成此邻域节点使用的2×2子矩阵中的2行。
CN201510162479.3A 2015-04-08 2015-04-08 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法 Expired - Fee Related CN104915370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510162479.3A CN104915370B (zh) 2015-04-08 2015-04-08 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510162479.3A CN104915370B (zh) 2015-04-08 2015-04-08 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法

Publications (2)

Publication Number Publication Date
CN104915370A CN104915370A (zh) 2015-09-16
CN104915370B true CN104915370B (zh) 2018-11-06

Family

ID=54084434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510162479.3A Expired - Fee Related CN104915370B (zh) 2015-04-08 2015-04-08 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法

Country Status (1)

Country Link
CN (1) CN104915370B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291395B (zh) * 2020-02-05 2022-07-19 北卡科技有限公司 一种基于智能计算的信息隐藏方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716218B1 (en) * 2007-07-20 2010-05-11 Oracle America, Inc. Method and system for enhanced search engine tuning
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
CN103646035A (zh) * 2013-11-14 2014-03-19 北京锐安科技有限公司 一种基于启发式方法的信息搜索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716218B1 (en) * 2007-07-20 2010-05-11 Oracle America, Inc. Method and system for enhanced search engine tuning
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
CN103646035A (zh) * 2013-11-14 2014-03-19 北京锐安科技有限公司 一种基于启发式方法的信息搜索方法

Also Published As

Publication number Publication date
CN104915370A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN109656798B (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
CN112491818B (zh) 基于多智能体深度强化学习的电网输电线路防御方法
CN110118566B (zh) 机器人运行路径生成方法及装置
Bodlaender et al. Cinderella versus the wicked stepmother
Ibrahim et al. Intelligent data placement mechanism for replicas distribution in cloud storage systems
CN112165405A (zh) 基于网络拓扑结构的超级计算机大数据处理能力测试方法
CN103838649B (zh) 一种降低二进制编码存储系统中计算量的方法
Arya et al. A simple entropy-based algorithm for planar point location
CN110032470A (zh) 一种基于哈夫曼树的异构部分重复码的构造方法
CN102915407B (zh) 基于混沌蜂群算法的蛋白质三维结构预测方法
Zhang et al. SUMMA: subgraph matching in massive graphs
CN105975694B (zh) 构建解决组合爆炸问题的级联贝叶斯网络的方法
CN104915370B (zh) 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法
Konstantinidis et al. ByzShield: An efficient and robust system for distributed training
Fahimniya et al. Fault-tolerant hyperbolic Floquet quantum error correcting codes
Gupta et al. Locality-aware hybrid coded MapReduce for server-rack architecture
CN103761298B (zh) 一种基于分布式架构的实体匹配方法
CN111125014B (zh) 一种基于u-型设计的柔性部分重复码的构造方法
CN108958973A (zh) 分布式文件系统纠删码数据重构存储节点选择方法及装置
Yelmewad et al. Parallel iterative hill climbing algorithm to solve TSP on GPU
CN106708973A (zh) 一种蒙特卡洛逆向求解PageRank问题的加速方法
CN104112025A (zh) 处理节点计算能力感知的虚拟资产数据划分方法
Lin et al. Efficient computation of group skyline queries on mapreduce
CN111881327A (zh) 基于顶点重排序与优先缓存的大数据处理能力测试方法
Yelmewad et al. Near optimal solution for traveling salesman problem using GPU

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181106

Termination date: 20190408

CF01 Termination of patent right due to non-payment of annual fee