本发明涉及分布式文件系统和数据存储领域,具体的涉及一种基于凸优化方法的分布式文件系统数据放置方法。
背景技术:
据idc发布最新版的白皮书《dataage2025》所述,2018年全球数据总量达33zb,到2025年则将达到175zb,毫无疑问我们正处在一个数据爆炸的时代。面对激增的数据量,传统的数据存储和处理方式已然力不从心。而从2003年谷歌分布式文件系统gfs论文发表以来,涌现了一大批分布式文件系统,如hdfs、ceph、alluxio等,为大数据的存取问题提供了解决方案。
数据冗余是分布式文件系统的一个重要特性,保证在存储节点故障的情况下不会造成数据永久性丢失,常用的数据冗余技术是多备份技术和纠删码技术。纠删码技术是成熟的数据冗余技术,近年来在分布式文件系统中得到了广泛的青睐。相比传统的多备份技术,可以在保证相同可靠性的情况下,大幅缩小存储空间占用。
纠删码的一个非常优良的特性是,在所有的数据分块中,只要得到与原块数目一致的任意文件分块组合,就可以恢复原数据。该特性不仅可以提供高可靠性的数据冗余,同时也具有加速数据访问的潜力。
最优化理论是运筹学的重要分支,在自然科学、社会科学、工程实践中都有重要应用。一般来讲,会把一个实际问题建模为最优化问题并求解,来达到收益最大化或是风险最小化。而如果能够证明一个最优化问题是凸优化问题或与凸优化问题等价,则一定可以得到全局最优解。排队论是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,也是运筹学的一个重要分支。
当前的数据放置策略,主要存在以下问题:
在使用纠删码的分布式文件系统中,当客户端得到了需要的数据块后,并不能直接使用,还需要进行解码操作。但是,现有的研究工作往往没有对解码时延进行细致分析,或是直接忽略了这一部分的时延。另外,工作的开展往往基于理想条件,对掉队者的影响考虑不足。
技术实现要素:
为了解决以上问题,本发明通过将读取时延和解码时延分别建模,在对读取时延进行更准确估计的同时,也细致分析了解码操作带来的延迟。另外,本发明中生成的读取策略也针对掉队者的情况进行了优化。本发明将存储节点抽象为的m/g/1队列模型,即服务时间分布是一般的,顾客相继到达时间为负指数分布,单服务台的情形。
本发明提供了一种基于凸优化方法的分布式文件系统数据放置方法,包括如下步骤:
步骤一:在支持纠删码的分布式文件系统集群上,获取存储集群各节点的历史读取时延信息,计算相关的统计量,作为凸优化问题中的参数;
步骤二:构建基于m/g/1队列的文件读取时延上限模型,并利用基于凸优化问题的求解方法求得最优解;
步骤三:基于求得的最优解计算出文件放置策略;
所述步骤一包括以下步骤:
步骤(1.1)获取各节点的传输时延和各文件相关信息;
在集群中执行读取文件操作若干次,在每个节点记录读取单个文件分块的时延,所述的文件相关信息包括文件块的传输时延、解码时延、文件读取频率;
步骤(1.2)计算相关统计量;
计算每个节点传输时间的均值、方差、节点j的总请求量、二阶原点矩、三阶原点矩;j为节点序号;传输时间是从某文件块开始响应请求到传输完成的时间;
所步骤二包括以下步骤:
步骤(2.1)构建传输时延上限模型;
根据排队论中的m/g/1队列模型,构建传输时延上限模型;
步骤(2.2)构建解码时延模型;
根据解码时延的影响因素,包括参与解码的冗余块数目、当前读写代理负载程度、文件分块大小,构建解码时延模型;
步骤(2.3)建立凸优化问题;
上述传输时延上限模型、解码时延模型两个模型之和代表总读取时延,以此为目标函数,加入实际问题中附带的约束条件,并对约束条件加入冗余读的处理,建立起一个凸优化问题;
步骤(2.4)求解凸优化问题;
以最小化目标函数为目标,利用基于梯度下降的求解方法,求解出读取概率p和辅助变量z;
步骤(2.5)得到凸优化问题的最优解;
步骤三包括以下步骤:
步骤(3.1)计算数据分布;
如果某个文件在某个节点上的读取概率为大于预定阈值的正值,则该节点上应该放置一个该文件的数据块以备读取;按此原则计算出各文件的数据块在各节点间的分布;
步骤(3.2)计算读取策略并修正读取偏差;
读取概率p无法直接用于指导文件的写入分布和读取请求分布,因此要经过转化变为实际的读取请求,即对于每个文件的每次读取,按照读取概率决定读取请求在存储节点间的分布;读取概率决定读取请求的数目,对于由于概率涨落导致读请求的数目不符合实际需要的请求数的情况,即比原块的数目多1,增加1个冗余请求,避免掉队者拖慢整个文件读取过程;对读取请求的数目进行修正以满足实际需求;
步骤(3.3)按照策略读写文件;
最后按照生成的策略对文件进行读写操作。
进一步的,所述步骤(1.2)计算统计量如下:
每个节点传输时间的均值e[xj]、方差
ρj=λjμj
进一步的,所述步骤(2.1)中,构建基于m/g/1队列的文件平均传输时延上限模型如下:
用qj代表在节点j上读取文件分块的总传输时延,包括在队列中等待时间和实际传输时间;用pi,j,k代表在节点j上对文件i发出读取请求的概率,其中k=1代表请求的是原始文件分块,k=2代表请求的是冗余块;其中i代表文件序号,j代表节点序号,k代表分块类别,m代表文件总数,n代表节点总数;
所有文件的加权平均传输时延上限
其中每个文件的平均传输时延上限
其中zi为一辅助变量,用于调节时延上限的紧度;p为一3阶张量,表示对文件i在节点j上请求一个原块或冗余块的概率;另外
该模型描述了该系统中文件的平均传输时延的上限。
进一步的,步骤(2.2)构建的解码时延模型如下:
利用冗余块数目与解码时延的线性相关关系,建立数学模型来估计解码时延ti;其形式如下:
解码时间与读写代理负载情况正相关;与文件块大小正相关;与参与解码的冗余块数正相关;对于文件i,其中缓存区中的ri,cached块冗余块相当于已经在本地,因此一定会参与解码,其他该文件的冗余块则按相应读取概率参与解码;式中η为比例因子,s为文件大小,ki和ri分别为文件i的原块和冗余块数量;m代表文件总数,n代表节点总数;
其中根据缓存区存放块的种类,ri,cached写成如下两种形式,
存放冗余块时,
存放原块时,ri,cached=0
为了最小化解码时延,选用第二种形式。因此,解码时延玩为,
进一步的,步骤(2.3)以最小化平均读取时延上限
约束条件包括:
0≤pi,j,k≤1
pi,j,k·pi,j,k=0
pi,j,k是概率,其值在0到1之间;其中di为文件i在客户端缓存区的分块数,c为客户端缓存区容量。
进一步的,步骤(2.5)所求得的凸优化问题的最优解p,代表了最优的文件块放置和读取请求的概率分布;
p中每个位置的值代表了在每个节点对某个文件的原块或冗余块发起读取请求的概率。
进一步的,步骤(2.4)求解该凸优化问题的具体步骤如下:
利用基于梯度下降法的求解方法,将变量分为辅助变量z和文件读取概率p,求解该凸优化问题,具体求解步骤包括:
子步骤(4-1)固定文件读取概率p,优化辅助变量z;如果目标函数值下降超过0.005,则跳转到子步骤(4-2),否则跳转到步骤(2.5);
子步骤(4-2)固定读取辅助变量z,优化文件读取概率p,跳转到子步骤(4-3);
子步骤(4-3)检查是否满足各个文件读取概率之和为整数的约束条件,如果是,则跳转到子步骤(4-1),否则跳转到子步骤(4-4);
子步骤(4-4)按照各个文件读取概率之和为整数的约束条件,对文件读取概率p进行调整,跳转到子步骤(4-2)。
进一步的,步骤三中根据凸优化问题的最优解计算出文件放置策略的方法如下:
步骤(3.1)根据文件读取概率p计算文件分块在集群中最优的分布情况;
按照文件读取概率p中各文件在各节点上原块和冗余块的读取概率,如果要从某节点读取一个文件块,则该文件块必须先写入该节点;因此如果概率大于阈值,则表明在该节点上应该存放一个该文件的原块或冗余块;
步骤(3.2)根据文件读取概率p计算文件读取策略,包括以下步骤:
子步骤(2-1)将文件读取概率p遍历一遍,如果某一位置的概率小于阈值,则置为0,否则保持原数值;按照文件读取概率p决定一次文件读取中应该向哪些节点发送读取请求;跳转到子步骤(2-2);
子步骤(2-2)如果请求数多于解码所需最小分块数,则随机丢弃多余部分;如果请求数少于解码所需最小分块数,则向无请求的节点中概率最大的几个节点添加请求至满足解码所需最小分块数;跳转到步骤(3.3);
步骤(3.3)按照生成的读取策略读取文件。
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(1.1)中记录的传输时延、解码时延、文件访问率,都可以通过客户端和存储节点的运行日志获取。其中,传输时延是指从存储节点开始响应文件访问请求到数据块传输完毕的时延,仅包括实际用于传输的时间,不包括排队时延。解码时延是指客户端请求的某一文件,其所有分块都到达后,为了恢复原文件而进行解码所耗费的时间。文件访问率是指某一文件请求的频率,反映了该文件的热度。
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.1)所建立的平均传输时延上限模型,其中每个文件的平均传输时延公式的具体形式,可以借助缩放变换和cauchy-schwarz不等式得出,该不等式在概率空间的形式为,
[e(ξη)]2≤e(ξ2)·e(η2)
等号成立,当且仅当存在常数t0,使得
p{η=t0ξ}=1
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.1)所建立的平均传输时延上限模型中,
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.2)所建立的解码时延模型,解码时延与文件块的大小正相关,s为文件大小,ki和ri分别为文件i的原块和冗余块数量,因此k与r之和为总块数,单个文件块的大小即为
对于文件i,其中缓存区中的r块冗余块相当于已经在本地,因此一定会参与解码,其他该文件的冗余块则按相应读取概率参与解码,因此参与解码的块数的期望即为
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.3)在凸优化问题的构建时,加入的第一条约束中,在读取概率之和的基础上加1,是为了在满足低延迟读取的条件下,增加防范掉队者的能力。因为在分布式文件系统中,如果采用无冗余的读取方式,读取一个文件只有在最后一个分块到达时才能进入解码过程。而将读取概率之和增加1,就是增加一个冗余的读取请求。当某个存储节点因故障或负载过高无法在正常时间内传输数据时,就成为了掉队者。在这种出现掉队者的情况下,冗余读就可以有效避免其影响。
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.4)求解该凸优化问题时,采用的是变量z和变量p交替优化的方式,因为z和p分别为2组形式不同的变量,变量z是向量,而变量p是3阶张量,难以同时进行优化。另外,由于实际问题中,对某个文件发送的请求只能是整数个,因此变量p还要受到额外的整数约束。因此,只能采用交替优化的方式,求解该问题。
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤(2.4)求解该凸优化问题时,变量p的形式为3阶张量,因为要想对文件分块求解出放置策略,必须计算出对某一文件在各个节点上的存放情况,此时需要一个矩阵来表示所需变量;但是,原块和冗余块在解码过程中造成的时延增长是有差别的,因此还必须增加一阶来表示原块和冗余块,最后变量p的形式就是3阶张量。
进一步地,上述基于凸优化方法的分布式文件系统数据放置方法中,步骤三基于求得的最优解进行文件分块的写入和读取操作。当概率大于阈值,则表明在该节点上应该存放一个该文件的原块或冗余块。这里使用一个阈值而不是0的原因是,如果读取概率是一个极小的数,即几乎不会对该文件块发送请求,存放该文件就是对存储空间的浪费。只需人工将该概率置为0即可。
有益效果:
分布式文件系统中,数据之间的访问模式差异巨大,反映在文件访问热度上,通常仅有极少数的数据被频繁访问。因此,如果将数据分块简单地随机分发在存储节点之间,很容易引起节点之间负载不均衡,进而影响文件访问效率。而在使用纠删码技术进行数据冗余的集群中,参与恢复文件的数据块组合对解码时延也有相当大的影响。本发明通过构建基于排队论的平均时延上限模型和平均解码时延模型,并利用求解凸优化问题的方法,解决了上述两个问题。另外,本发明还通过增加冗余读的数据块,获得了避免掉队者影响的能力。
附图说明
图1为实现本发明基于凸优化方法的分布式文件系统数据放置方法系统框图;
图2为本发明基于凸优化方法的分布式文件系统数据放置方法的流程图;
图3为本发明凸优化问题求解的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于通过构建基于排队论的平均时延上限模型和平均解码时延模型,并利用基于梯度下降的求解凸优化问题的方法,计算出对于特定集群和文件访问热度分布情况的最优数据布局。根据该布局和读取的文件,能够在读取时获得最短的读取时延。
图1为实现本发明基于凸优化方法的分布式文件系统数据放置方法系统架构示意图。信息收集器从分布式文件系统集群中获取所需的信息,包括文件块的传输时延、解码时延、读取频率等。优化器利用预先建立的数学模型,求解凸优化问题,得到当前集群和文件状况下的最优分布和读取策略。策略生成器根据优化器求得的结果,将其转换为读写带来可以使用的策略形式,同时针对概率涨落带来的请求数不确定性问题加以修正。读写代理为读写活动实际的执行者,从客户端接收或发送给客户端完整的文件,获得策略生成器传递的读写策略,写入时对文件进行分块和编码处理,与缓存服务器和分布式文件系统进行读写交互,读取时对收到的文件块进行恢复处理。
图2为本发明基于凸优化方法的分布式文件系统数据放置方法的流程图,详细流程包括步骤一到三:
步骤一:在支持纠删码的分布式文件系统集群上,获取存储集群各节点的历史读取时延信息,计算相关的统计量,作为凸优化问题中的参数;
步骤二:构建基于m/g/1队列的文件读取时延上限模型,并利用基于凸优化问题的求解方法求得最优解;
步骤三:基于求得的最优解计算出文件放置策略;
其中,步骤一、具体包括以下步骤:
步骤(1.1)获取各节点读取时延信息;
在集群中执行读取文件操作若干次,在每个节点记录读取单个文件分块的时延,其中包括传输时延(包括实际服务时延和排队时延)xj、解码时延di、文件访问率λi。
步骤(1.2)计算相关的统计量
计算每个节点传输时间的均值e[xj]、方差
ρj=λjμj
步骤二,构建基于m/g/1队列的文件读取时延上限模型,并利用基于凸优化问题的求解方法求得最优解,包括以下步骤:
步骤(2.1)构建基于m/g/1队列的文件平均传输时延上限模型
本发明用qj代表在节点j上读取文件分块的总传输时延,包括在队列中等待时间和实际传输时间;用πi,j,k代表在节点j上对文件i发出请求的概率,其中k=1代表请求的是原始文件分块,k=2代表请求的是冗余块。其中i代表文件序号,j代表节点序号,k代表分块类别,m代表文件总数,n代表节点总数。
所有文件的加权平均传输时延上限如下:
其中每个文件的平均传输时延上限如下:
其中zi为一辅助变量,用于调节时延上限的紧度;p为一3阶张量,表示对文件i在节点j上请求一个原块或冗余块的概率。另外
该模型描述了该系统中文件的平均传输时延的上限,是凸优化问题的目标函数的重要组成部分。
步骤(2.2)构建解码时延模型
利用冗余块数目与解码时延的线性相关关系,建立数学模型来估计解码时延。其形式如下:
解码时间与读写代理负载情况正相关;与文件块大小正相关;与参与解码的冗余块数正相关。对于文件i,其中缓存区中的ri,cached块冗余块相当于已经在本地,因此一定会参与解码,其他该文件的冗余块则按相应读取概率参与解码。式中η为比例因子,s为文件大小,ki和ri分别文件i的原块和冗余块数量。
其中根据缓存区存放块的种类,ri,cached写成如下两种形式,
存放冗余块时,
存放原块时,ri,cached=0
为了最小化解码时延,选用第二种形式。因此,解码时延为,
步骤(2.3)以最小化平均读取时延上限
约束条件包括:
0≤pi,j,k≤1
pi,j,k·pi,j,k=0
因为pi,j,k是概率,所以其值必须在0到1之间。其中di为文件i在客户端缓存区的分块数,c为客户端缓存区容量。需要特别解释的是,在读取概率之和的基础上加1,是为了在满足低延迟读取的条件下,增加防范掉队者的能力。
此凸优化问题的最优解p,代表了最优的文件块放置和请求的概率分布。p中每个位置的值代表了在每个节点对某个文件的原块或冗余块发起请求的概率。
步骤(2.4)求解该凸优化问题
利用基于梯度下降法的求解方法,将变量分为辅助变量z和文件读取概率p,求解该凸优化问题,具体求解步骤包括:
子步骤(4-1)固定文件读取概率p,优化辅助变量z。如果目标函数值下降超过0.005,则跳转到子步骤(4-2),否则跳转到步骤(2.5);
子步骤(4-2)固定读取辅助变量z,优化文件读取概率p。跳转到子步骤(4-3);
子步骤(4-3)检查是否满足各个文件读取概率之和为整数的约束条件。如果是,则跳转到子步骤(4-1),否则跳转到子步骤(4-4);
子步骤(4-4)按照各个文件读取概率之和为整数的约束条件,对文件读取概率p进行调整。跳转到子步骤(4-2);
步骤(2.5)得到该凸优化问题的最优解。
其中,所述步骤三,基于求得的最优解进行文件分块的写入和读取操作,包括如下步骤:
步骤(3.1)根据文件读取概率p计算文件分块在集群中最优的分布情况;
按照p中各文件在各节点上原块和冗余块的读取概率,如果要从某节点读取一个文件块,则该文件块必须先写入该节点。因此如果概率大于阈值,则表明在该节点上应该存放一个该文件的原块或冗余块。
步骤(3.2)根据文件读取概率p计算文件读取策略,包括以下步骤:
子步骤(2-1)将文件读取概率p遍历一遍,如果某一位置的概率小于阈值,则置为0,否则保持原数值。按照文件读取概率p决定一次文件读取中应该向哪些节点发送读取请求。跳转到子步骤(2-2);
子步骤(2-2)如果请求数多于解码所需最小分块数,则随机丢弃多余部分;如果请求数少于解码所需最小分块数,则向无请求的节点中概率最大的几个节点添加请求至满足解码所需最小分块数。跳转到步骤(3.3);
步骤(3.3)按照生成的读取策略读取文件。
图3为本发明凸优化问题求解的流程图,详细流程包括步骤(1)-(4):
步骤(1)将相关数据包括文件块的传输时延、解码时延、文件读取频率输入模型中;
步骤(2)固定p,以z为变量执行一次梯度下降求解法。若目标函数下降超过一定值,则跳转的步骤(3),否则输出最优解。
步骤(3)固定z,以p为变量执行梯度下降解法。若所有文件的总读取概率为整数,则跳转到步骤(2),否则跳转到步骤(4)。
步骤(4)将所有文件中读取概率之和小数部分最大者的进行向上取整。跳转到步骤(3)。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
1.一种基于凸优化方法的分布式文件系统数据放置方法,其特征在于,包括如下步骤:
步骤一:在支持纠删码的分布式文件系统集群上,获取存储集群各节点的历史读取时延信息,计算相关的统计量,作为凸优化问题中的参数;
步骤二:构建基于m/g/1队列的文件读取时延上限模型,并利用基于凸优化问题的求解方法求得最优解;
步骤三:基于求得的最优解计算出文件放置策略;
所述步骤一包括以下步骤:
步骤(1.1)获取各节点的传输时延和各文件相关信息;
在集群中执行读取文件操作若干次,在每个节点记录读取单个文件分块的时延,所述的文件相关信息包括文件块的传输时延、解码时延、文件读取频率;
步骤(1.2)计算相关统计量;
计算每个节点传输时间的均值、方差、节点j的总请求量、二阶原点矩、三阶原点矩;j为节点序号;传输时间是从某文件块开始响应请求到传输完成的时间;
所步骤二包括以下步骤:
步骤(2.1)构建传输时延上限模型;
根据排队论中的m/g/1队列模型,构建传输时延上限模型;
步骤(2.2)构建解码时延模型;
根据解码时延的影响因素,包括参与解码的冗余块数目、当前读写代理负载程度、文件分块大小,构建解码时延模型;
步骤(2.3)建立凸优化问题;
上述传输时延上限模型、解码时延模型两个模型之和代表总读取时延,以此为目标函数,加入实际问题中附带的约束条件,并对约束条件加入冗余读的处理,建立起一个凸优化问题;
步骤(2.4)求解凸优化问题;
以最小化目标函数为目标,利用基于梯度下降的求解方法,求解出读取概率p和辅助变量z;
步骤(2.5)得到凸优化问题的最优解;
步骤三包括以下步骤:
步骤(3.1)计算数据分布;
如果某个文件在某个节点上的读取概率为大于预定阈值的正值,则该节点上应该放置一个该文件的数据块以备读取;按此原则计算出各文件的数据块在各节点间的分布;
步骤(3.2)计算读取策略并修正读取偏差;
读取概率p无法直接用于指导文件的写入分布和读取请求分布,因此要经过转化变为实际的读取请求,即对于每个文件的每次读取,按照读取概率决定读取请求在存储节点间的分布;读取概率决定读取请求的数目,对于由于概率涨落导致读请求的数目不符合实际需要的请求数的情况,即比原块的数目多1,增加1个冗余请求,避免掉队者拖慢整个文件读取过程;对读取请求的数目进行修正以满足实际需求;
步骤(3.3)按照策略读写文件;
最后按照生成的策略对文件进行读写操作。
2.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
所述步骤(1.2)计算统计量如下:
每个节点传输时间的均值e[xj]、方差
ρj=λjμj
3.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
所述步骤(2.1)中,构建基于m/g/1队列的文件平均传输时延上限模型如下:
用qj代表在节点j上读取文件分块的总传输时延,包括在队列中等待时间和实际传输时间;用pi,j,k代表在节点j上对文件i发出读取请求的概率,其中k=1代表请求的是原始文件分块,k=2代表请求的是冗余块;其中i代表文件序号,j代表节点序号,k代表分块类别,m代表文件总数,n代表节点总数;
所有文件的加权平均传输时延上限
其中每个文件的平均传输时延上限
其中zi为一辅助变量,用于调节时延上限的紧度;p为一3阶张量,表示对文件i在节点j上请求一个原块或冗余块的概率;另外
该模型描述了该系统中文件的平均传输时延的上限。
4.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
步骤(2.2)构建的解码时延模型如下:
利用冗余块数目与解码时延的线性相关关系,建立数学模型来估计解码时延
解码时间与读写代理负载情况正相关;与文件块大小正相关;与参与解码的冗余块数正相关;对于文件i,其中缓存区中的ri,cached块冗余块相当于已经在本地,因此一定会参与解码,其他该文件的冗余块则按相应读取概率参与解码;式中η为比例因子,s为文件大小,ki和ri分别为文件i的原块和冗余块数量;m代表文件总数,n代表节点总数;
其中根据缓存区存放块的种类,ri,cached写成如下两种形式,
存放冗余块时,
存放原块时,ri,cached=0
为了最小化解码时延,选用第二种形式;因此,解码时延为,
5.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
步骤(2.3)以最小化平均读取时延上限
约束条件包括:
0≤pi,j,k≤1
pi,j,k·pi,j,k=0
pi,j,k是概率,其值在0到1之间;其中di为文件i在客户端缓存区的分块数,c为客户端缓存区容量。
6.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
步骤(2.5)所求得的凸优化问题的最优解p,代表了最优的文件块放置和读取请求的概率分布;
p中每个位置的值代表了在每个节点对某个文件的原块或冗余块发起读取请求的概率。
7.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
步骤(2.4)求解该凸优化问题的具体步骤如下:
利用基于梯度下降法的求解方法,将变量分为辅助变量z和文件读取概率p,求解该凸优化问题,具体求解步骤包括:
子步骤(4-1)固定文件读取概率p,优化辅助变量z;如果目标函数值下降超过0.005,则跳转到子步骤(4-2),否则跳转到步骤(2.5);
子步骤(4-2)固定读取辅助变量z,优化文件读取概率p,跳转到子步骤(4-3);
子步骤(4-3)检查是否满足各个文件读取概率之和为整数的约束条件,如果是,则跳转到子步骤(4-1),否则跳转到子步骤(4-4);
子步骤(4-4)按照各个文件读取概率之和为整数的约束条件,对文件读取概率p进行调整,跳转到子步骤(4-2)。
8.根据权利要求1所述的基于凸优化方法的分布式文件系统数据放置方法,其特征在于:
步骤三中根据凸优化问题的最优解计算出文件放置策略的方法如下:
步骤(3.1)根据文件读取概率p计算文件分块在集群中最优的分布情况;
按照文件读取概率p中各文件在各节点上原块和冗余块的读取概率,如果要从某节点读取一个文件块,则该文件块必须先写入该节点;因此如果概率大于阈值,则表明在该节点上应该存放一个该文件的原块或冗余块;
步骤(3.2)根据文件读取概率p计算文件读取策略,包括以下步骤:
子步骤(2-1)将文件读取概率p遍历一遍,如果某一位置的概率小于阈值,则置为0,否则保持原数值;按照文件读取概率p决定一次文件读取中应该向哪些节点发送读取请求;跳转到子步骤(2-2);
子步骤(2-2)如果请求数多于解码所需最小分块数,则随机丢弃多余部分;如果请求数少于解码所需最小分块数,则向无请求的节点中概率最大的几个节点添加请求至满足解码所需最小分块数;跳转到步骤(3.3);
步骤(3.3)按照生成的读取策略读取文件。
技术总结