一种面向分布式存储网络的树形结构数据插入方法与流程

文档序号:28800469发布日期:2022-02-08 21:33阅读:65来源:国知局
一种面向分布式存储网络的树形结构数据插入方法与流程

1.本发明涉及分布式存储系统和数据存储领域,尤其涉及一种面向分布式存储网络的树形结构数据插入方法。


背景技术:

2.在当今大数据时代,激增的数据量给数据的存储带来了剧烈的挑战。根据 idc发布的最新版白皮书《data age 2025》所述,全球数据量到2025年将会激增到175zb。近些年,分布式存储系统因为其高可靠的存储服务能力能够为大量数据的存储需求提供解决方案而受到了广大的关注。在分布式存储系统中,为了保证存储数据的可靠性和可用性,通常采用多副本技术和纠删码技术作为数据冗余技术。相比于多副本技术,纠删码技术因为能够以更少的存储空间消耗来获得相同的容错能力而在分布式存储系统中得到广大青睐。
3.纠删码通常使用参数(n,k)表示,其中n表示编码块的数量,k表示数据块的数量。原始文件在存储到分布式存储系统之前,首先被分成k个数据块,然后通过编码过程生成n个编码块。然后,n个编码块分别被存储到n个不同的存储节点中,这个过程被称为数据插入。在分布式存储系统中,数据插入过程扮演着非常重要的角色。然而,大量的数据插入往往意味着大量的网络带宽资源的损耗。因此,快速且高效地完成数据插入过程对分布式存储系统来说至关重要。
4.传统的数据插入方法主要分为两类:顺序数据插入和随机数据插入,但是往往会存在级联错误和负载不均衡的问题。另外,根据插入方式不同,数据插入方法也可以分为集中式插入和分散式插入。前者通过一个源节点完成数据的编码和分发,导致源节点容易成为性能的瓶颈;后者往往需要和特殊的放置算法或编码方案相结合,不具备普遍性。总的来讲,现有的数据插入方法在实用性、灵活性以及有效性方面研究不足,主要体现为一下方面:(1)现有研究未能充分考虑不同性能的存储节点的分组为数据的插入带来的性能增益;(2)现有的数据插入方法对异构分布式存储网络中节点之间数据传输的拓扑结构关注不足,而该拓扑结构能够对数据传输的效率产生很大的影响。


技术实现要素:

5.为了解决以上的描述的问题,本发明提出了一种面向分布式存储网络的树形结构数据插入方法,解决传统的数据插入过程中存储节点负载不均衡以及数据传输效率不高的问题。首先根据存储节点部署的地理位置将存储节点分成k组,每一组负责存储一部分源数据,然后在每一组存储节点中选择出一个主节点负责接收来自数据中心的文件以及将接收到的文件编码成编码块发送到组内其余节点,从而避免了单个主节点接收和编码数据而产生的负载不均衡问题;最后,把主节点作为根节点,和组内其余节点连接构建树结构传输网络,并提出改进的蝴蝶优化算法去构建最优数据分发树结构,提高传输效率,降低数据插入时间。
6.技术方案:为实现本发明的目的,本发明提供了一种面向分布式存储网络的树形
结构数据插入方法,包括一下步骤:
7.步骤一:在分布式存储系统中,收集各个存储节点的位置信息,然后根据节点位置将存储节点分成k组,该组群可表示为c={c1,c2,c3,

,ck};
8.步骤二:在每个组内利用演化博弈论方法选出一个主节点;
9.步骤三:在每组内构建树形结构的数据传输网络,其中每组内的主节点作为根节点,组内其余节点作为树干节点和叶节点;
10.步骤四:在上述构建的树形结构传输网络中,考虑节点之间异构的链路带宽,构建数据插入时间最小化问题模型,利用改进的蝴蝶优化算法求取最优解。
11.所述步骤一包括以下步骤:
12.步骤(1.1)获取各个存储节点的位置相关信息
13.在分布式存储网络统计各个存储节点的位置,设置合适的分组数k,初始化 k个分组中心节点z(1)={z1(1),z2(1),

,zk(1)},其中括号里面表示迭代数;
14.步骤(1.2)计算节点与各分组中心节点之间的距离
15.计算各个节点与各分组中心节点的距离,将距离最小的节点分配到中心节点对应的组别中;重复迭代操作,直到获得最终的k个分组。
16.所述步骤二包括以下步骤:
17.步骤(2.1)根据故障率将组内的节点进行分类
18.对组内的节点的故障率进行收集并排序,得到一个故障率门限值rlth,然后各节点对比该门限值,若自身故障率小于该门限值,则划分为低故障率节点,表示为lf类节点;若自身故障率大于该门限值,则划分为高故障率节点,表示为 hf类节点;
19.步骤(2.2)构建演化博弈论的博弈模型
20.设计博弈模型为mng={p,s,u},其中p表示博弈参与方,包括lf类节点和 hf类节点;s表示博弈参与方的策略集,包括两种策略:选择成为主节点(mn)和选择成为非主节点(nmn);u表示效用函数集;
21.步骤(2.3)参与方根据各自效用函数进行博弈,确定主节点
22.根据效用函数计算出各个参与节点的效用函数值,通过比较各节点效用函数,并分析演化博弈的纳什均衡,确定主节点。
23.所述步骤三包括以下步骤:
24.步骤(3.1)构建以主节点为根节点的树形数据传输网络
25.在各个分组内,以主节点作为根节点,链接组内的其他节点,构成树形数据传输网络结构,其中节点之间的带宽是异构的。
26.所述步骤四包括以下步骤:
27.步骤(4.1)构建树形结构的数据传输时间模型
28.基于上述构建的链路带宽异构的树形传输网络,计算每个节点的后代子节点,结合树当中每条边的链路带宽,构建每条边上累计传输数据的时间模型;
29.步骤(4.2)建立最优数据分发树优化问题
30.针对上述数据传输时间模型,统计当中的数据传输时间最大值,然后以该最大值为目标函数,加入实际问题附带的约束条件,建立一个最优分发树结构的优化问题;
31.步骤(4.3)求解最优分发树优化问题
32.以最小化目标函数为目标,利用改进的蝴蝶优化算法,求解出拥有最优解的最优分发树结构。
33.进一步地,所述步骤(1.2)计算节点与各分组中心节点之间的距离如下:
34.v={v1,v2,

,vn}表示存储节点集合,c={c1,c2,

,ck}表示分组集合,节点z
l
表示组别c
l
的中心节点,则在组别c
l
中节点vi和其中心节点的距离为:
[0035][0036]
其中获得中心节点z
l
的计算方法为:
[0037][0038]
进一步地,步骤(2.3)参与方根据各自的支付矩阵计算如表1所示:
[0039]
表1支付矩阵
[0040][0041]
其中,p
lf
表示类lf节点的比例,p
hf
表示类hf节点的比例,v
lf
表示至少有一个lf类节点宣称成为主节点的支付成本,v
hf
表示至少有一个类hf节点宣称成为主节点的支付成本,cm表示成为主节点的成本;
[0042]
令p
l
表示lf类节点选择mn策略的概率,则其选择nmn策略的概率为(1-p
l
);令ph表示hf类节点选择mn策略的概率,则其选择nmn策略的概率为(1-ph)。则对于lf类节点而言,选择mn策略和选择nmn策略的期望的效用函数计算如下:
[0043]ulf-mn
=ph·
p
lf
(v
lf-cm)+(1-ph)
·
p
lf
(v
lf-cm)=p
lf
·vlf-p
lf
·cm
ꢀꢀ
(3)
[0044]ulf-nmn
=ph·
p
lf
·vlf
+(1-ph)
·
0=ph·
p
lf
·vlf
ꢀꢀꢀꢀꢀ
(4)
[0045]
则lf类节点的平均收益可计算如下:
[0046][0047]
因此,lf类节点的复制动态分析等式可计算如下:
[0048][0049]
同理,针对hf类节点,可分别计算其选择mn策略和nmn策略的效用函数如下:
[0050]uhf-mn
=p
l
·
p
hf
(v
hf-cm)+(1-p
l
)
·
p
hf
(v
hf-cm)=p
hf
·vhf-p
hf
·cm
ꢀꢀꢀ
(7)
[0051]uhf-nmn
=p
l
·
p
hf
·vhf
+(1-p
l
)
·
0=p
l
·
p
hf
·vhf
ꢀꢀꢀꢀꢀꢀꢀ
(8)
[0052]
则hf类节点的平均收益计算如下:
[0053][0054]
其复制动态分析等式可计算如下:
[0055][0056][0057]
通过对比博弈参与方(lf类节点和hf类节点)的效用函数以及对应的复制动态分析,可以确定主节点;
[0058]
进一步地,步骤(4.1)构建树形结构的数据传输时间模型如下:
[0059]
令表示组别c
l
中的节点v
li
和v
lj
之间的链路带宽,(v
li
,v
lj
)表示两个节点之间的边,表示边(v
li
,v
lj
)上累计的数据传输量,单位为比特,s
lj
表示节点v
lj
的后代子节点数目,n
l
表示组别c
l
中的节点数。因此可计算如下:
[0060][0061]
其中α
l
表示单位数据传输量。令t
ls
表示在树形结构中数据在边上的传输时间,所以数据传输时间模型可计算如下:
[0062][0063]
进一步地,步骤(4.2)建立最优数据分发树优化问题如下:
[0064]
统计t
ls
的最大值,以该最大值为目标函数,即表示为且约束条件包括:
[0065]
∑(v
li
,v
lj
)∈t
l
(v
li
,v
lj
)=n
l-2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0066]
0≤i≤j≤n
l-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0067]
以最小化目标函数建立最优化问题为:
[0068][0069]
进一步地,步骤(4.3)求解最优分发树优化问题的具体步骤如下:
[0070]
针对上述构建的最优化问题,利用改进的蝴蝶优化算法,求解出具有最优数据插入时间值的分发树,具体求解步骤包括:
[0071]
子步骤(4.3.1)初始化算法的参数,根据上述步骤构建的树形网络初始化蝴蝶个体位置;
[0072]
子步骤(4.3.2)根据上述步骤给出的目标函数计算初始适应度值,计算切换概率p值用来判断当前个体进行全局搜索还是局部搜索,其中p值计算如下:
[0073][0074]
其中表示第t次迭代的第i个蝴蝶的切换概率,p
max
和p
min
分别表示切换概率的最大值和最小值,表示适应度值的最小值,表示适应度值;
[0075]
子步骤(4.3.3)引进自适应惯性权重ω(t),进行蝴蝶位置的更新,其更新公式计算如下:
[0076]
[0077][0078]
其中,ω
ini
和ω
end
表示初始阶段的惯性权重和迭代结束时的惯性权重值, iter
max
表示最大迭代数,表示第i只蝴蝶在第t次迭代中的位置向量,r1和r2表示[0,1]之间的随机数,g
*
表示全局最优位置,fi,表示适应度值;
[0079]
子步骤(4.3.4)重复前面几个子步骤的更新迭代,最终求出算法最优解。
[0080]
本发明与现有技术相比,达到的有益效果如下:
[0081]
1、在分布式存储网络中,如果通过一个主节点完成数据文件的接收、编码和转发,将会造成极大的负载不均衡,缩短网络的寿命,同时也会因为节点轮换造成不必要的资源浪费,本发明通过分组,并利用演化博弈论方法为每个组别确定主节点,有效地提高了存储网络寿命,同时多个主节点分担数据文件接收、编码和转发的任务,有效解决单个节点负载不均衡问题;
[0082]
2、传统的数据存储方法是将整个数据文件进行编码,然后放置到存储网络中的各个节点中,因此数据的访问必须通过译码整个数据文件,存在较大的开销。然而,现如今大部分用户只对数据文件中的部分数据感兴趣,如此传统的数据存储无法满足用户需求。本发明将数据文件分成多份存储到不同的组别中,有助于用户只对感兴趣的部分数据进行访问,即只需要对相应的组别进行访问,避免了译码整个数据文件而带来的不必要的开销,满足了用户的需求;
[0083]
3、本发明通过构建树形结构的传输网络,求解最优分发树问题,加快了数据放置速度,充分利用了存储节点网络带宽资源,提高了存储系统的性能。
附图说明
[0084]
图1是本发明实施例的算法流程图。
[0085]
图2-1是本发明实施例的分组前主节点网络模型图。
[0086]
图2-2是本发明实施例的分组后主节点选择的网络模型图。
[0087]
图3是本发明实施例的基于演化博弈论的主节点选择方案比较图。
[0088]
图4是本发明实施例的节点数为100的插入时间比较图。
[0089]
图5是本发明实施例的节点数为150的插入时间比较图。
[0090]
图6是本发明实施例的节点数为100的不同优化方案比较图。
[0091]
图7是本发明实施例的节点数为150的不同优化方案比较图。
具体实施方式
[0092]
下面将结合具体的实施方式和附图,对本发明的技术方案作进一步的阐明。
[0093]
图1为本发明提出的面向异构分布式存储网络的基于分组辅助的树形结构数据插入方法的流程图。本发明的基本思路在于将分布式存储网络内的存储节点根据节点位置分成k组;然后在每个组别中将存储节点按照故障率分类,并利用演化博弈论建立博弈模型,计算各个参与博弈节点的效用函数,选出主节点;之后在每个组内构建以主节点为根节点的树形网络数据传输结构,并根据树当中节点之间的链路带宽建立最优数据分发树优化问
题;最后,基于改进的蝴蝶优化算法,求解最优数据分发树问题的最优解,获得最小的数据放置时间。
[0094]
图2-1为本发明分布式存储网络节点分布图示例。图中模拟了数据中心以及各存储节点,其中各个存储节点的距离即为各个存储节点的位置信息与空间距离的模拟。
[0095]
图2-2为本发明完成组内主节点确定之后的网络模型图,其中k=4,每个组包含的节点数分别为10,12,13和9,mn1,mn2,mn3和mn4分别是四个组的主节点。详细的步骤包括:
[0096]
步骤一:在分布式存储系统中,收集各个存储节点的位置信息,然后根据节点位置将存储节点分成k=4组,该组群可表示为c={c1,c2,c3,c4};
[0097]
步骤二:在每个组内利用演化博弈论方法选出一个主节点;
[0098]
步骤三:在每组内构建树形结构的数据传输网络,其中每组内的主节点作为根节点,组内其余节点作为树干节点和叶节点。
[0099]
其中,步骤一包括以下具体步骤:
[0100]
步骤(1.1)获取各个存储节点的位置相关信息
[0101]
在分布式存储网络统计各个存储节点的位置,设置分组数k=4,初始化k 个分组中心节点z(1)={z1(1),z2(1),z3(1),z4(1)},其中括号里面表示迭代数;
[0102]
步骤(1.2)计算节点与各分组中心节点之间的距离
[0103]
计算各个节点与各分组中心节点的距离,将距离最小的节点分配到中心节点对应的组别中;重复迭代操作,直到获得最终的4个分组。
[0104]
步骤二,为了确定主节点,需要完成以下具体步骤:
[0105]
步骤(2.1)根据故障率将组内的节点进行分类
[0106]
对组内的节点的故障率进行收集并排序,得到一个故障率门限值r
lth
,然后各节点对比该门限值,若自身故障率小于该门限值,则划分为低故障率节点,表示为lf类节点;若自身故障率大于该门限值,则划分为高故障率节点,表示为 hf类节点;
[0107]
步骤(2.2)构建演化博弈论的博弈模型
[0108]
设计博弈模型为mng={p,s,u},其中p表示博弈参与方,包括lf类节点和 hf类节点;s表示博弈参与方的策略集,包括两种策略:选择成为主节点 (mn)和选择成为非主节点(nmn);u表示效用函数集;
[0109]
步骤(2.3)参与方根据各自效用函数进行博弈,确定主节点
[0110]
根据效用函数计算出各个参与节点的效用函数值,通过比较各节点效用函数,并分析演化博弈的纳什均衡,确定主节点。
[0111]
图3为本发明提出的基于演化博弈论的主节点选择方法与其他传统方法的比较图,其中参与博弈节点总数为100。从图中可以看到,本发明所提出的方法具备更长的网络寿命,而且在相同的时刻,本发明提出的方法有着更多的存活的节点数。
[0112]
在所述的步骤三,在每组内构建树形结构的数据传输网络,具体需要在各个分组内,以主节点作为根节点,链接组内的其他节点,构成树形数据传输网络结构,其中节点之间的带宽是异构的。
[0113]
然后,在上述构建的树形结构传输网络中,考虑节点之间异构的链路带宽,构建数据插入时间最小化问题模型,利用改进的蝴蝶优化算法求取最优解。其具体的步骤包括:
[0114]
步骤(4.1)构建树形结构的数据传输时间模型如下:
[0115]
令表示组别c
l
中的节点v
li
和v
lj
之间的链路带宽,(v
li
,v
lj
)表示两个节点之间的边,表示边(v
li
,v
lj
)上累计的数据传输量,单位为比特,s
lj
表示节点v
lj
的后代子节点数目,n
l
表示组别c
l
中的节点数。因此可计算如下:
[0116][0117]
其中α
l
表示单位数据传输量。令t
ls
表示在树形结构中数据在边上的传输时间,所以数据传输时间模型可计算如下:
[0118][0119]
步骤(4.2)建立最优数据分发树优化问题如下:
[0120]
统计t
ls
的最大值,以该最大值为目标函数,即表示为且约束条件包括:
[0121]
∑(v
li
,v
lj
)∈t
l
(v
li
,v
lj
)=n
l-2
[0122]
0≤i≤j≤n
l-1
[0123]
以最小化目标函数建立最优化问题为:
[0124][0125]
进一步地,步骤(4.3)求解最优分发树优化问题的具体步骤如下:
[0126]
针对上述构建的最优化问题,利用改进的蝴蝶优化算法,求解出具有最优数据插入时间值的分发树,具体求解步骤包括:
[0127]
子步骤(4.3.1)初始化算法的参数,根据上述步骤构建的树形网络初始化蝴蝶个体位置;
[0128]
子步骤(4.3.2)根据上述步骤给出的目标函数计算初始适应度值,计算切换概率p值用来判断当前个体进行全局搜索还是局部搜索,其中p值计算如下:
[0129][0130]
其中表示第t次迭代的第i个蝴蝶的切换概率,p
max
和p
min
分别表示切换概率的最大值和最小值,表示适应度值的最小值,表示适应度值;
[0131]
子步骤(4.3.3)引进自适应惯性权重ω(t),进行蝴蝶位置的更新,其更新公式计算如下:
[0132][0133][0134]
其中,ω
ini
和ω
end
表示初始阶段的惯性权重和迭代结束时的惯性权重值, iter
max
表示最大迭代数,表示第i只蝴蝶在第t次迭代中的位置向量,r1和r2表示[0,1]之间的随机数,g
*
表示全局最优位置,fi,表示适应度值;
[0135]
子步骤(4.3.4)重复前面几个子步骤的更新迭代,最终求出算法最优解。
[0136]
图4和图5为本发明所提出的最优分发树方案与一般分发树方案的比较,其中节点数分别100和150,并且图中的20,30,40表示数据块数量。可以观察到所随着数据块数量的增加,插入时间逐渐减小,这是因为在相同大小的数据文件条件下,数据块数量越多,每个数据块的尺寸越小,越利于传输。另外可以看出在不同的节点数和数据块数量情况下,提出的方案在性能上都要更优于一般分发树方案。
[0137]
为了进一步展示本发明所提方案的良好性能,将其与其他传统的优化算法进行比较,结果如图6和图7所示,其中节点数分别是100和150,数据块数量同样设置为20,30和40。一方面,各个方案的数据插入时间随着数据块的数量增加而减少;另一方面,本发明所提出的方案在不同的节点数和不同的数据块数量上都要比传统的方案要更好。
[0138]
上述实施案例为本发明的部分实施方案,但是本发明的保护范围并不受限于上述案例,其他的任何熟悉本领域的人员在本发明揭露的技术范围内,未背离本发明的变化、替换、组合或简化,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1