基于分片复用的多版本容器镜像加载方法
发布时间:2021-07-14 04:04
容器将应用和支持软件、库文件等封装为镜像,通过发布新版本镜像实现应用升级,导致不同版本之间存在大量相同数据.镜像加载消耗大量时间,使容器启动时间从毫秒级延迟为秒级甚至是分钟级.复用不同版本之间的相同数据,有利于减少容器加载时间.当前,容器镜像采用继承和分层加载机制,有效实现了支持软件、库文件等数据的复用,但对于应用内部数据还没有一种可靠的复用机制.提出一种基于分片复用的多版本容器镜像加载方法,通过复用不同版本镜像之间的相同数据,提升镜像加载效率.方法的核心思想是:利用边界匹配数据块切分方法将容器镜像切分为细粒度数据块,将数据块哈希值作为唯一标识指纹,借助B-树搜索重复指纹判断重复数据块,减少数据传输.实验结果表明,该方法可以提高5.8X以上容器镜像加载速度.
【文章来源】:软件学报. 2020,31(06)北大核心EICSCD
【文章页数】:14 页
【部分图文】:
1 指纹库大小与查找时间的关系
如图3(a)所示:由于存在对文件层数据的插入、修改、删除等操作,会导致边界漂移问题的出现[7],固定长度分块算法无法满足准确切分冗余数据块的需求.为此,我们需要一种能够有效识别数据块边界的可变长度数据块切分方法,如图3(b)所示.为实现上述目标,我们首先采用一种与边界相关的指纹算法计算滑动窗口内数据指纹,再通过特定条件加以遴选,确定边界符合条件的数据块.本文中我们采用Rabin指纹算法[8].Rabin指纹算法是一种边界相关的指纹算法,其实现如下:给定n位的数据m0,m1,…,mn-1,我们将其视作在有限域上度为n-1的多项式:
重复数据识别率是衡量数据块切分方法有效性的重要指标,高重复数据识别率表示数据块切分方法更加有效,在镜像加载过程中可以更大限度减少网络传输开销.我们采用边界匹配数据块切分方法对实验数据集进行切分并查找重复数据,以镜像类型和数据变化率两个维度对切分结果进行统计,统计结果分别如图7和图8所示.图8 实际数据变化率与识别数据变化率对比
本文编号:3283374
【文章来源】:软件学报. 2020,31(06)北大核心EICSCD
【文章页数】:14 页
【部分图文】:
1 指纹库大小与查找时间的关系
如图3(a)所示:由于存在对文件层数据的插入、修改、删除等操作,会导致边界漂移问题的出现[7],固定长度分块算法无法满足准确切分冗余数据块的需求.为此,我们需要一种能够有效识别数据块边界的可变长度数据块切分方法,如图3(b)所示.为实现上述目标,我们首先采用一种与边界相关的指纹算法计算滑动窗口内数据指纹,再通过特定条件加以遴选,确定边界符合条件的数据块.本文中我们采用Rabin指纹算法[8].Rabin指纹算法是一种边界相关的指纹算法,其实现如下:给定n位的数据m0,m1,…,mn-1,我们将其视作在有限域上度为n-1的多项式:
重复数据识别率是衡量数据块切分方法有效性的重要指标,高重复数据识别率表示数据块切分方法更加有效,在镜像加载过程中可以更大限度减少网络传输开销.我们采用边界匹配数据块切分方法对实验数据集进行切分并查找重复数据,以镜像类型和数据变化率两个维度对切分结果进行统计,统计结果分别如图7和图8所示.图8 实际数据变化率与识别数据变化率对比
本文编号:3283374
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3283374.html