一种存在数据依赖关系时降低云存储整体开销的方法与流程

文档序号:11843360阅读:470来源:国知局
一种存在数据依赖关系时降低云存储整体开销的方法与流程
本发明涉及云存储领域,具体涉及一种存在数据依赖关系时降低云存储整体开销的方法。
背景技术
:随着云存储的迅速发展,越来越多的应用将数据存储在云端,如何降低数据中心海量数据的存储开销成为一个重要的问题。在云存储中,数据之间可能存在依赖关系。比如不同清晰度的视频文件可以通过原视频文件转码生成,此时原文件和转码后的文件之间就存在依赖关系。目前,存在数据依赖关系时降低云存储整体开销的方案是:通过算法决策数据是否需要存储,此时数据要么不存储,要么以副本数固定的多副本存储。对于不存储的数据,当其收到访问请求时,先利用依赖关系生成数据,再提供访问服务。此时,系统的整体开销包含存储数据产生的存储开销和生成数据产生的计算开销。然而,现有方案还存在两方面不足:(1)在存储数据时,数据的存储策略固定。没有进一步考虑数据存储策略可变的情况。(2)没有考虑当数据的生成时间超出用户允许的响应延迟时间时,数据不可用的问题。技术实现要素:针对现有技术存在的问题,本发明的主要目的在于提供一种当数据存在依赖关系时,在保证数据可用性指标的前提下降低系统整体开销的方法。为简化表述,下文中的“数据”指云存储中存在依赖关系的数据。数据副本可以指副本方式的一个副本或纠删码方式的一个编码碎片。数据的存储策略指数据的存储方式,包括不存储、多副本存储和纠删码存储。本发明的特征在于包含以下内容:1.数据存储决策模型现有方案在保存数据时,使用副本数固定的多副本存储策略。存储模型的决策变量为N个数据是否需要存储,单个数据只有存储开销或者计算开销,且没有考虑数据可用性的问题。与现有方案不同,本发明中数据的存储策略可变,其特征在于:1)模型的决策变量为N个数据的存储策略,如公式(2)所示;2)数据的整体开销同时包括现有副本的存储开销和当所有副本失效时生成数据的计算开销,其计算方法由公式(3)给出;3)模型的目标函数为最小化系统整体开销,由公式(1a)给出;4)模型的约束条件为数据的可用性需要满足给定的可用性指标,由公式(1b)给出。2.数据生成时间期望的计算方法在计算数据的整体开销时,其中计算开销与数据的生成时间有关。在本发明中,数据的生成时间Ti是一个随机变量,与数据直接或者间接依赖的数据的故障状态有关。本发明提供了数据生成时间的期望E(Ti)的计算方法,由公式(8)给出。3.数据可用性的计算方法当数据不存储或者发生故障时,如果不能在用户允许的响应延迟时间内生成数据,会导致数据不可用,影响数据的可用性。本发明提供了数据可用性的计算方法,由公式(10)给出。4.数据存储策略决策算法本发明给出了在保证数据可用性的前提下,降低系统整体开销的数据存储策略决策算法,算法的执行步骤由流程图3给出。附图说明图1是本发明提出的存储模型结构示意图。图2是数据依赖关系示意图。图3是数据存储策略决策算法的整体流程图。图4是图3中数据存储策略更新过程的流程图。图5是图4中步骤S2.2.2的流程图。图6是图4中步骤S2.2.3的流程图。具体实施方式本发明所述的一种存在数据依赖关系时降低云存储整体开销的方法主要包括两个部分:S1、数据存储决策模型:模型主要包括系统的结构模型和系统的整体开销模型;S2、数据存储策略决策算法:算法给出了在保证数据可用性的前提下,降低系统整体开销的数据存储策略决策算法。下面结合附图,对本发明的具体实施方式做详细说明。S1、数据存储决策模型,主要包含以下部分:S1.1、存储系统的结构该存储系统在云存储系统的数据访问接口层和数据存储层之间添加了数据依赖关系管理层,如图1所示。当数据依赖关系管理层收到数据访问请求时,存在以下情况:情况1:如果数据不存在依赖关系,则将数据访问请求转发给数据存储层;情况2:如果数据存在依赖关系且有可用数据副本时,则将数据访问请求转发给数据存储层;如图2中,数据d5为双副本存储。当两个副本至少有一个可用时,系统使用可用副本提供访问服务。情况3:如果数据存在依赖关系且所有副本均不可用时,先利用依赖关系生成数据,再转发数据访问请求;如图2中,当数据d5两个副本的存储节点发生故障使得副本均不可用时,先利用依赖关系生成数据d5。如果在生成d5过程中,数据d5副本所在节点恢复正常,则停止生成过程,使用原副本继续提供访问服务。否则,删除原副本,使用新生成的副本提供访问服务。S1.2、数据依赖关系管理层结构在S1.1中,数据依赖关系管理层的功能主要包括:数据依赖关系图建立和故障数据重新生成。数据依赖关系图的建立方式如下:基于数据的依赖关系,将系统中的N个存在依赖关系的数据建模为有向无环图的拓扑结构,即数据依赖关系图。图中的节点表示数据,有向边表示数据di的生成依赖于数据dj。数据di包含属性:si,(1≤i≤N)分别表示di单个副本所占的存储空间、di依赖的数据集、di的生成时间、di的生成算子和di的存储策略。其中,si的取值空间为{0,1,2,3,4},分别表示数据di不存储、单副本存储、双副本存储、三副本存储和(10,14)纠删码存储。故障数据生成过程如下:当数据di不可用时,对di依赖的数据集执行生成算子经过时间后重新生成di。当依赖的数据集中有数据不可用时,需要先递归生成该数据,再生成数据di。S1.3、系统整体开销建模系统的整体开销等于N个数据的整体开销之和,系统的优化目标是在保证数据满足给定的可用性指标AE的同时,降低系统整体开销。系统整体开销的优化目标函数:minF(s1,s2,...,sN)=minΣi=1NCi(si)---(1a)]]>目标函数的约束条件为:AiD≥AE,(i=1,2,...,N)---(1b)]]>其中,F表示在决策周期内系统的整体开销。Ci和分别表示在该周期内数据di的整体开销和数据的可用性,分别使用公式(3)(10)进行计算;AE表示给定的数据可用性指标,比如Amazon需要保证的数据可用性指标为99.9%。由此,目标函数的决策变量为N个数据对应的存储策略,用(2)式表示:V=(s1,s2,…,sN)(2)S1.4、数据整体开销的计算方法与现有方案中数据只有存储开销或者只有计算开销不同,本发明中数据的整体开销包括现有副本的存储开销和当所有副本失效时生成数据的计算开销。如图2中,数据d5的整体开销包含两个副本的存储开销和两个副本均失效时,生成d5的计算开销。此时,数据di的整体开销Ci计算公式如(3)式所示:Ci(t)=Cis(t)+(1-AiH)·diα·[Cis(dit)+Ciw(dit)]---(3)]]>其中,分别表示数据di在时间t内的存储开销和计算开销,分别用公式(4)(5)计算。表示不考虑数据重新生成时,数据di自身的可用性,使用公式(6)计算。表示时间t内,节点故障造成的额外开销的因子,使用公式(7)计算。Cis(t)=rs·r(si)·disize·t---(4)]]>其中,rs表示单位时间存储单位数据需要支付的存储费用,r(si)表示存储策略si对应的数据副本冗余度,当si=0,1,2,3,4时,r(si)=0,1,2,3,1.4。Ciw(t)=rw·E(Ti)---(5)]]>其中,rw表示计算单位时间需要支付的计算费用,Ti表示数据di的生成时间,E(Ti)表示Ti的期望值,用(8)式计算。AiH=Σi=mnni·pli·(1-pl)n-i---(6)]]>其中,n表示数据di的副本数量,m表示数据正常时需要的最少副本数量。当数据以多副本方式存储时,m取1;当数据以纠删码的方式存储时,m为该纠删码恢复数据需要的最少副本数。比如数据以(10,14)纠删码方式存储时,m取10。diα=1dit·Σi=1Kmin(ti,dit)---(7)]]>其中,K,ti分别表示时间t内数据di的故障次数和第i次故障的时间。S1.5、数据生成时间期望的计算方法数据di的生成时间与数据本身及其依赖(直接依赖或间接依赖)数据的故障状态有关。如图2所示,当数据d5有可用副本时,数据d5的生成时间为0;当数据d5的两个副本均不可用且d4可用时,数据d5的生成时间为当数据d5,d4所有副本均不可用时,需要先生成d4,因此d5的生成时间大于本发明用随机变量Ti表示数据di的生成时间,E(Ti)表示Ti的数学期望。生成时间期望用(8)式计算。E(Ti)=0ifsi≥3(1-AiH)(dit+Σdj∈dipSetE(Tj))ifsi<3---(8)]]>同时,当迭代计算的深度超过c时,设置E(Ti)=0,终止迭代。其中c满足plc≤1-AE(9)其中,pl表示数据存储节点的故障概率。S1.6、数据可用性的计算方法当用户对数据di允许的响应延迟时间为时,只有数据的生成时间小于时,才能利用依赖关系生成数据来提高数据的可用性。此时,考虑数据重新生成和用户允许的响应延迟两个因素时,数据di的可用性等于使用公式(10)进行计算。S2、数据存储策略决策算法本发明提供的数据存储策略决策算法整体流程如图3所示:当有新数据(包括新上传的数据和新生成的中间数据)生成时,使用新数据存储策略决策算法(S2.1)决策数据的存储策略;在每个决策周期(本发明为1个小时)结束时,以依赖关系图中的每个连通分支为单位,更新其中数据的存储策略(S2.2)。具体过程如图4所示:先执行初始化过程(S2.2.1),再根据连通分支的节点数是否小于等于H,分别使用遍历剪枝算法(S2.2.2)和遗传算法(S2.2.3)更新分支内数据的存储策略。算法的主要步骤详细描述如下:S2.1、新数据存储策略决策算法该步骤对应图3中的步骤S2.1,具体步骤如下:(1-1)当数据di是新上传的数据时,设置si=3。(1-2)当数据di是新生成的中间数据时,分别计算si=j(j=0,1,2,3)对应的数据整体开销设置si=k,满足且满足S2.2、数据存储策略更新过程该步骤对应图3中的步骤S2.2,具体流程图如图4所示。其中的三个主要步骤详细描述如下:S2.2.1、初始化该步骤对应图4中的步骤S2.2.1,具体步骤如下:(2-1)初始化最小开销minV=∞,最小开销对应的存储策略H=5。(2-2)遍历连通分支获取对应的节点序列。首先,复制连通分支拓扑结构,得到图G,创建一个空队列Q。其次,将图G中入度为0的节点加入队列Q,并在图G中删除该节点以及相关联的边。由于图G是有向无环图,反复执行该步骤,当图G为空时,队列Q为相应的节点序列。S2.3、遍历剪枝算法该步骤对应图4中的步骤S2.2.2,具体流程如图5所示。当队列Q长度小于等于H时,使用遍历剪枝算法更新当前连通分支内数据的存储策略,具体步骤如下:(3-1)初始化。首先,新建一棵只有根节点的树T。其次,将Q中元素出队,如果该元素在依赖关系图中入度为0,则为T中每个叶子节点添加两个子节点,节点的值分别为3,4。否则,对T中每个叶子节点添加4个子节点,节点值分别为0,1,2,3。反复执行,直到队列Q为空。最后,设置当前节点为树T根节点的最左孩子节点。(3-2)计算当前节点的可用性。使用公式(10)计算当前节点对应数据的可用性当时,跳转步骤(3-3)。否则,跳转步骤(3-4)。(3-3)剪枝。终止对当前节点子孙节点的遍历,将当前节点更新为当前节点的父节点,跳转步骤(3-5)。(3-4)更新minV,minS。如果当前节点为树T的叶子节点,将根节点到该叶子节点路径中节点值作为一个解V。使用公式(1a)(3)计算V对应的系统整体开销C,如果C<minV,则更新minV=C,minS=V。如果当前节点不是树T的叶子节点,则跳转步骤(3-5)。(3-5)更新当前节点。对树T按深度优先遍历的方式将当前节点更新为下一个节点后,跳转步骤(3-6)。(3-6)遍历结束判断。如果树T遍历结束,跳转步骤(3-7),否则跳转步骤(3-2)。(3-7)更新该连通分支内数据的存储策略为minS。S2.4、遗传算法该步骤对应图4中的步骤S2.2.3,具体流程如图6所示。当队列Q长度大于H时,使用遗传算法更新当前连通分支内数据的存储策略,具体步骤如下:(4-1)初始化M=50,L=300,Pc=0.95,Pm=0.1。其中,M表示种群规模,L表示遗传算法的迭代次数,Pc表示交叉概率,Pm表示变异概率。(4-2)编码。对种群进行编码后得到对应长度为M的向量V:V=(v1,v2,...,vM)其中,vi表示种群中的第i(1≤i≤M)个个体,个体vi由n个基因组成:vi=(vi1,vi2,...,vim,...,vin)其中,vij表示个体vi的第j个基因,m表示队列Q中入度为0的节点个数,n表示队列Q的长度,即连通分支的节点个数。每个基因为一个取值空间内的值,当1≤j≤m时,vij∈{0,1},0、1分别表示si取值为3,4。当m<j≤n时,vi∈{00,01,10,11},00、01、10、11分别表示si取值为0,1,2,3。(4-3)初始化种群V。随机产生种群中M个个体,每个个体对应编码如下:当1≤j≤m时,vij在取值空间{0,1}内随机选择。当m<j≤n时,vij在取值空间{00,01,10,11}内随机选择。(4-4)选择得到中间代S。首先,计算种群中每个个体的适应度Pi,如(11)式所示:Pi=(1-Fi·AiDΣi=1i=MFi·AiD)---(11)]]>其中,Fi表示种群中第i个个体对应的整体开销,用公式(3)计算。其次,根据Pi将(0,1)划分为M个区间。最后,进行M次选择。每次产生一个(0,1)内的随机数,根据随机数所处区间选择对应的个体,最后得到中间代S。跳转步骤(4-5)。(4-5)交叉得到中间代D。将选择得到的中间代S中的个体配对,对每对个体(vi,vj)进行交叉操作得到vi′,vj′,生成中间代D。首先,产生一个(0,1)内的随机数k。其次,当k>Pc时,vi′=vi,vj′=vj。当k≤Pc时,对个体的前m个和后(n-m)个基因分别进行单点交叉。跳转步骤(4-6)。(4-6)变异得到子代。将中间代D中的每个个体vi以概率Pm进行变异,生成子代中的个体。首先,产生一个(0,1)内的随机数k。其次,当k>Pm时,将个体vi直接放到子代中。否则,将个体vi的第j个基因随机改变为解空间的其他值。跳转步骤(4-7)。(4-7)更新。计算子代中最优个体对应的系统整体开销C,当C<minV时,更新minV=C,将minS更新为最优个体对应的存储策略。跳转步骤(4-8)。(4-8)结束条件测试。如果遗传算法的迭代次数>L时,结束遗传算法,更新该连通分支内数据的存储策略为minS。否则,跳转步骤(4-4)继续进行迭代。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1