论文部分内容阅读
近年来云计算的发展给用户提供了按需、灵活、低成本以及可扩展的应用部署方式,市面上出现了许多云服务提供商,如阿里云、AWS及Azure等。这种“多云”共存的环境使得用户能够方便灵活地利用多个云服务提供商来部署运行他们的应用以达到降低成本、提高服务质量等目的。由于云计算的这些特点,越来越多的数据密集型应用(如天文大数据)也开始利用云计算提供的海量计算和存储资源来进行部署及运行,这类应用通常包含复杂的工作流,通过工作流中许多复杂任务来对数据进行一步一步的处理并产生大量的具有依赖关系的数据。然而,由于云计算按需付费的使用方式,这些数据存储在云中会产生极高的存储成本,而如果将所有生成的数据删除,数据在被重新使用时需要从原始数据开始生成,则会产生很高的计算成本,不仅如此,不合理的数据存储方式也会对云计算资源造成极大的浪费,这些问题给数据密集型应用在云中的部署运行带来巨大挑战。因此,一个合理的数据存储和放置策略不仅能为用户节省大量的成本,而且能够降低云计算资源的浪费。针对以上问题,本文首先使用数据依赖图(Data Dependency Graph,DDG)对应用中数据间的依赖关系进行建模,以及研究数据存储策略和应用运行总成本之间的关系,并深入研究多云环境下最小成本数据存储算法。我们根据数据的依赖关系的特点将数据依赖图分为线性数据依赖图(linear-DDG)和复杂数据依赖图(complex-DDG),然后分别研究其最小成本数据存储算法。具体来说,1)针对linear-DDG,提出一个具有线性时间复杂度的数据存储算法(linear-PCE)。linear-PCE算法针对云环境中过长的数据生成过程会导致计算成本快速增长的问题,使用动态规划算法以及起源数据候选集约简规则,快速地找到每个数据的最优起源数据,最后通过反向遍历最优起源数据,即可获得最小成本数据存储策略。与此同时,linear-PCE使用增量计算大大降低了算法的时间复杂性。2)针对多云环境下具有复杂数据依赖关系的数据存储问题,本文提出了一个高效的复杂依赖关系多云数据存储算法(PCE)。PCE算法通过为数据依赖图中的分支指定起源数据,以及为合并分支中的数据寻找最优起源数据组合,能够计算出复杂数据依赖关系的最小成本数据存储策略。PCE算法利用数据依赖图的线性子图具有多项式种最优存储策略,通过保存算法运行的中间结果以重用可以快速地计算出最小成本数据存储策略。本文以天文为背景在实际的天文应用中进行方法的验证,根据实际天文大数据应用中的数据依赖关系、数据大小以及任务的执行时间构造真实的数据依赖图,使用现有主流云服务提供商所使用的定价模型生成的云服务提供商来模拟运行天文大数据应用,结果表明本文算法得到的数据存储策略能够大大降低应用运行的成本,节省云服务提供商的云计算资源。另外本文基于模拟数据进行了大量的实验,结果表明,对于具有线性数据依赖关系的数据存储问题,本文的算法都能高效地找出最小成本数据存储策略。