一种面向多请求的科学工作流数据集存储方法技术

技术编号:27129785 阅读:36 留言:0更新日期:2021-01-25 19:57
本发明专利技术实施例通过一种面向多请求的科学工作流数据集存储方法,通过工作流的数据集构建工作流表示模型,确定对个存储策略,当多请求访问访问多个数据集时,对多个访问请求进行希尔排序,然后根据排序后的访问请求在工作流表示模型中的数据集的生成顺序,分别计算在每个存储策略下多个访问请求访问的数据集的再生代价以及每个存储策略对应的存储代价,计算每个存储策略的总代价,按照总代价最小的存储策略对应的数据集的存储状态,对数据集进行存储。因此本发明专利技术可以在多访问请求访问多个数据集时,降低云环境下科学工作流的花费。降低云环境下科学工作流的花费。降低云环境下科学工作流的花费。

【技术实现步骤摘要】
一种面向多请求的科学工作流数据集存储方法


[0001]本专利技术属于云存储领域,具体涉及一种面向多请求的科学工作流数据集存储方法。

技术介绍

[0002]科学工作流系统是一种数据集密集型应用,主要通过对科学计算产生的海量数据进行数据分析、结果验证,然后按照整体研究流程将这些数据顺序的组织起来,形成一个自动化或者半自动化的流系统,在运行科学工作流任务期间通常会产生大量具有复杂依赖关系的中间数据集(中间结果)以及非中间数据集,中间数据集常常是科研工作不可或缺的数据集,这些中间数据集的数据集量庞大,需要在科学工作流管理过程中权衡这些中间数据集的存储以及删除,实现对数据集的管理。
[0003]云环境的出现为科学工作流系统提供了一个相对较好的发展平台,云环境下科学工作流的花费主要包含两种,存储花费以及执行花费,前者主要为存储在云环境中的数据花费,后者主要为使用云计算资源执行程序生成数据所需要的花费。理论上所有的数据文件都可以进行存储,但是对于一些不经常访问的文件来说,完全存储就会造成资源浪费,一般会对中间数据集选择性存储,以降低云环境下科学工作流系统的总费用。中间数据集在删除后,再次访问该中间数据集时需要重新生成该中间数据集,而访问请求并不单一,同时访问多个中间数据集需要重新生成这些中间数据集,但是有些数据集依赖其他数据集生成,因此会重复生成一些中间数据集,使得云环境下科学工作流的花费较高。

技术实现思路

[0004]为了解决现有技术中存在的上述问题,本专利技术提供了一种面向多请求的科学工作流数据集存储方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0005]本专利技术实施例提供的一种面向多请求的科学工作流数据集存储方法,包括:
[0006]获取当前时间前科学工作流执行任务时产生的数据集,所述数据集包括起始数据集以及中间数据集;
[0007]基于所述数据集之间的依赖关系,建立工作流表示模型;
[0008]基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略;
[0009]计算每一个存储策略对应的存储代价;
[0010]获取当前时间的包含多个访问请求的请求列表;
[0011]将所述访问请求进行希尔排序,获得排序列表;
[0012]在所述工作流表示模型中确定所述排序列表对应的待访问中间数据集的生成顺序;
[0013]按照所述生成顺序,计算在每个存储策略下生成所述待访问中间数据集时的总再生代价;
[0014]针对每个存储策略,基于该存储策略对应的存储代价以及总再生代价,计算该存储策略的总代价;
[0015]确定总代价最小的存储策略为最优存储策略;
[0016]按照所述最优存储策略对应的数据集的存储状态,对所述数据集进行存储;
[0017]其中,所述存储状态包括:已存储和未存储。
[0018]可选的,所述基于所述数据集之间的依赖关系,建立工作流表示模型的步骤包括:
[0019]将所述科学工作流执行的每个任务作为预设的有向无环图的节点,每个任务包括输入数据集以及输出数据集;
[0020]从第一个节点至最后一个节点中的任一当前节点,将所述当前数据集作为所述有向无环图的当前节点的输入,将依赖所述当前数据集生成的中间数据集作为所述当前节点的输出,将当前任务的执行时间作为当前数据集与依赖该当前数据集生成的中间数据集之间的连接权值,获得工作流表示模型。
[0021]可选的,所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:
[0022]在所述工作流表示模型中从起始数据集至最后一个数据集的每一个路径,将每个路径上的数据集在所述工作流表示模型中不同的存储状态,按照所述数据集在所述工作流表示模型中的依赖顺序组成存储策略。
[0023]可选的,在所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:
[0024]将数据集按照其存储状态转换为二进制数;
[0025]将每个数据集转化后的二进制数按照数据集的依赖顺序排列,获得转化为二进制串的多个存储策略。
[0026]可选的,所述计算每一个存储策略对应的存储代价的步骤,包括:
[0027]针对每个存储策略,使用存储代价计算公式计算该存储策略对应的存储代价;
[0028]其中,存储代价计算公式为:
[0029][0030][0031]其中,n表示总数据集个数,i表示数据集的序号,D表示数据集集合,D={d0,d1,

,d
n
},t表示数据集的存储时间长度,X表示数据集的存储状态集合,X={x0,x1,

,x
n
},d
i
表示第i个数据集,x
i
表示d
i
的存储状态,s
i
表示数据集d
i
的大小,当x
i
=1时,表示数据集d
i
存储,当x
i
=0时,表示数据集d
i
未存储,P
s
是常数表示云存储价格,s
i
,t,x
i
则可以通过第一次运行程序时获取得到。
[0032]可选的,所述按照所述排序列表中待访问中间数据集的生成顺序,计算在每个存储策略下生成所述待访问中间数据集的总再生代价的步骤,包括:
[0033]基于所述工作流表示模型中所述待访问中间数据集的前驱数据集,使用代价计算公式计算在每个存储策略下生成所述待访问中间数据集的总再生代价;
[0034]代价计算公式为:
[0035][0036][0037][0038]其中,ζ
r
(L,τ|X)表示在每个存储策略下生成待访问中间数据集的总再生代价,L表示在存储时间长度t内所有请求列表的总集合,L={l1,l2,l3,

,l
m
},m表示请求列表的总数,l
i
表示第i个请求列表,τ表示数据集的生成时间的总集合,τ={τ1,τ2,


n
},τ
i
表示数据集d
i
的生成时间,X={x1,x2,x3,

,x
n
},X表示工作流中数据集的存储状态集合,x
i
=0表示数据集被删除,x
i
=1表示数据集d
i
被存储,j
k
表示排序后的访问请求的下标,k表示排序后的访问请求的序号,Γ(l
i
)表示l
i
中的访问请求进行排序后,访问请求的下标组成的列表,表示生成请求访问对应数据集的再生代价,表示数据集的生成时间,表示计算l
i
中第k个数据集的再生代价时,数据集d
h
所对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向多请求的科学工作流数据集存储方法,其特征在于,包括:获取当前时间前科学工作流执行任务时产生的数据集,所述数据集包括起始数据集以及中间数据集;基于所述数据集之间的依赖关系,建立工作流表示模型;基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略;计算每一个存储策略对应的存储代价;获取当前时间的包含多个访问请求的请求列表;将所述访问请求进行希尔排序,获得排序列表;在所述工作流表示模型中确定所述排序列表对应的待访问中间数据集的生成顺序;按照所述生成顺序,计算在每个存储策略下生成所述待访问中间数据集时的总再生代价;针对每个存储策略,基于该存储策略对应的存储代价以及总再生代价,计算该存储策略的总代价;确定总代价最小的存储策略为最优存储策略;按照所述最优存储策略对应的数据集的存储状态,对所述数据集进行存储;其中,所述存储状态包括:已存储和未存储。2.根据权利要求1所述的科学工作流数据集存储方法,其特征在于,所述基于所述数据集之间的依赖关系,建立工作流表示模型的步骤包括:将所述科学工作流执行的每个任务作为预设的有向无环图的节点,每个任务包括输入数据集以及输出数据集;从第一个节点至最后一个节点中的任一当前节点,将所述当前数据集作为所述有向无环图的当前节点的输入,将依赖所述当前数据集生成的中间数据集作为所述当前节点的输出,将当前任务的执行时间作为当前数据集与依赖该当前数据集生成的中间数据集之间的连接权值,获得工作流表示模型。3.根据权利要求1所述的科学工作流数据集存储方法,其特征在于,所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:在所述工作流表示模型中从起始数据集至最后一个数据集的每一个路径,将每个路径上的数据集在所述工作流表示模型中不同的存储状态,按照所述数据集在所述工作流表示模型中的依赖顺序组成存储策略。4.根据权利要求3所述的数据集存储方法,其特征在于,在所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:将数据集按照其存储状态转换为二进制数;将每个数据集转化后的二进制数按照数据集的依赖顺序排列,获得转化为二进制串的多个存储策略。5.根据权利要求1所述的科学工作流数据集存储方法,其特征在于,所述计算每一个存储策略对应的存储代价的步骤,包括:针对每个存储策略,使用存储代价计算公式计算该存储策略对应的存储代价;其中,存储代价计算公式为:
其中,n表示总数据集个数,i表示数据集的序号,D表示数据集集合,D={d0,d1,...,d
n
},t表示数据集的存储时间长度,X表示数据集的存储状态集合,X={x0,x1,...,x
n
},d
i
表示第i个数据集,x
i
表示d
i
的存储状态,s
i
表示数据集d
i
的大小,当x
i
=1时,表示数据集d
i
存储,当x
i
=0时,表示数据集d
i
未存储,P
s
是常数表示云存储价格,s
i
,t,x
i
则可以通过第一次运行程序时获取得到。6.根据权利要求1所述的科学工作流数据集存储方法,其特征在于,所述按照所述排序列表中待访问中间数据集的生成顺序,计算在每个存储策略下生成所述待访问中间数据集的总再生代价的步骤,包括:基于所述工作流表示模型中所述待访问中间数据集的前驱数据集,使用代价计算公式计算在每个存储策略下生成所述待访问中间数据集的总再生代价;代价计算公式为:代价计算公式为:代价计算公式为:其中,ζ
r
(L,τ|X)表示在每个存储策略下生成待访问中间数据集的总再生代价,L表示在存储时间长度t内所有请求列表的总集合,L={l1,l2,l3,...,l
m
},m表示请求列表的总数...

【专利技术属性】
技术研发人员:范磊王思尧席雪雯刘西洋
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1