[发明专利]一种自适应缓冲块替换方法有效
申请号: | 201710405770.8 | 申请日: | 2017-05-31 |
公开(公告)号: | CN107220188B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 卢宇彤 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F12/123 | 分类号: | G06F12/123 |
代理公司: | 广州润禾知识产权代理事务所(普通合伙) 44446 | 代理人: | 欧秋望 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 缓冲 替换 方法 | ||
1.一种自适应缓冲块替换方法,其特征在于,在通用并行框架上提供的弹性分布式数据集上运行,所述弹性分布式数据集为集群的分布式内存抽象,步骤如下:
1)结合所述弹性分布式数据集的变换序列,判断并得到属于所述弹性分布式数据集的所有数据块的重计算开销,初始化用于记录所述弹性分布式数据集的所有数据块的重计算开销的数据结构,并为其分配内存空间,并将所述内存空间的内部所有位都初始化为0;
所述弹性分布式数据集的变换序列由所述弹性分布式数据集与其他所述弹性分布式数据集之间变换的信息以及重建所述弹性分布式数据集中的数据的信息组成;
2)根据分配方案为所述弹性分布式数据集的动作分配权重,所述分配方案为:
首先,将所述弹性分布式数据集的动作分为transformations动作类型和actions动作类型;
所述transformations动作类型为一种惰性操作,定义了一个新的所述弹性分布式数据集,没有立即对其进行计算;
所述actions动作类型则是对所述弹性分布式数据集立即计算,并返回结果或者将结果写入到外部存储中;
将所述transformations动作类型被分为Map动作、Flatmap动作、Filter动作、Distinct动作、Union动作、Intersection动作、Subtract动作、Cartesian动作;
所述Map动作表示对所述弹性分布式数据集中的每一个元素进行一个操作,所述Map动作的权重为T1;
所述Flatmap动作表示返回所述弹性分布式数据集中的当前元素,并生成新的元素集合,所述Flatmap动作的权重为T2;
所述Filter动作表示过滤所述弹性分布式数据集中的一些元素,所述Filter动作的权重为T3;
所述Distinct动作表示对所述弹性分布式数据集中元素去重,所述Distinct动作的权重为T4;
所述Union动作表示返回两个所述弹性分布式数据集的合并结果,在这其中对合并结果不去重,所述Union动作的权重为T5;
所述Intersection动作表示返回两个所述弹性分布式数据集的合并结果,在这其中对合并结果去重,所述Intersection动作的权重为T6;
所述Subtract动作表示对两个所述弹性分布式数据集进行合并,合并后只保留在一个所述弹性分布式数据集中出现的元素而在另一个所述弹性分布式数据集不出现的元素,所述Subtract动作的权重为T7;
所述Cartesian动作表示在两个所述弹性分布式数据集之间进行笛卡尔积计算,所述Cartesian动作的权重为T8;
将所述actions动作类型分为Collect动作、Count动作、Take动作、Top动作、TakeOrdered动作、Fold动作、Foreach动作;
所述Collect动作表示将所述弹性分布式数据集转换为数组,所述Collect动作的权重为A1;所述Count动作返回所述弹性分布式数据集中的元素数量,所述Count动作的权重为A2;
所述Take动作表示获取所述弹性分布式数据集中从0到指定标号的元素,所述指定标号用常量num表示,所述Take动作的权重为A3;
所述Top动作表示从所述弹性分布式数据集中,按照默认或给定的排序规则,返回其中的从0到所述指定标号的元素,所述Top动作的权重为A4;
所述TakeOrdered动作表示按照与所述Top动作的排序规则相反的顺序返回从0到所述指定标号的元素,所述TakeOrdered动作的权重为A5;
所述Fold动作表示将所述弹性分布式数据集中的每个元素累积求和,所述Fold动作的权重为A6;
所述Foreach动作表示遍历所述弹性分布式数据集中的每个元素,所述Foreach动作的权重为A7;
3)所述弹性分布式数据集执行第2)步所分类的动作时,所述弹性分布式数据集的所有数据块的重计算开销的数据结构中对应的所述弹性分布式数据集的记录位增加相应动作被分配的权重;所述弹性分布式数据集被分为父弹性分布式数据集以及子弹性分布式数据集,所述弹性分布式数据集的所有数据块的重计算开销与所述弹性分布式数据集的动作以及所述父弹性分布式数据集和所述子弹性分布式数据集之间的依赖关系有关,其中,所述父弹性分布式数据集和所述子弹性分布式数据集之间的依赖关系分为窄依赖、宽依赖两种;所述窄依赖表示所述子弹性分布式数据集中的每个数据块只依赖于所述父弹性分布式数据集中的有限个固定数据块,所述宽依赖表示所述子弹性分布式数据集可以依赖于所述父弹性分布式数据集中的所有数据块;
4)判断所述弹性分布式数据集的缓存块替换开销,并调整其的阈值,并定义缓冲块替换策略;所述缓冲块替换策略分为LRU策略、LCC策略两种,所述LRU策略为驱逐最少访问的数据块策略,所述LCC策略为驱逐最小重计算开销的数据块策略;初始时默认所述缓存块替换策略为所述LRU策略,并设置其替换阈值为Threshold-LRU,其后根据替换条件判断是否将所述缓冲块替换策略修改为所述LCC策略,并设置其替换阈值为Threshold-LCC;所述LCC策略的初始替换阈值为0;所述LRU策略的初始替换阈值为3;
5)动态地选择所述缓冲块替换策略;
初始时默认所述缓存块替换策略为所述LRU策略,并设置其替换阈值为Threshold-LRU,设置初始所述缓冲块替换策略的数据块读取开销C=0,当其的内存块在时间段t内,被驱逐后又重新被读入时,所述缓冲块替换策略的数据块读取开销C=C+1,当连续三个所述缓冲块替换策略的数据块在时间段t内被驱逐并被重新读入时,所述缓冲块替换策略的数据块读取开销C的值超过Threshold-LRU,修改所述缓存块替换策略为所述LCC策略;选取权重最低的弹性分布式数据集RDD所对应的数据块,将根据所述LCC策略将驱除最小访问数据块修改为驱逐重计算开销最小的数据块;当所述缓冲块替换策略为所述LCC策略时,驱逐完属于所述权重最低的弹性分布式数据集的所有数据块之后,所述权重最低的弹性分布式数据集的所有数据块的重计算开销设置为无效,根据所述弹性分布式数据集的所有数据块的重计算开销对所述弹性分布式数据集重新进行排序,选择重计算开销最小的所述弹性分布式数据集作为新的驱逐对象,当所述缓冲块替换策略的数据块读取时间小于Threshold-LRU,所述LCC策略的替换开销过大,将所述缓存块替换策略修改为所述LRU策略;
6)通过所述弹性分布式数据集的容错特点恢复其的数据块;
所述弹性分布式数据集的容错机制采用记录更新的方式,只支持粗颗粒变换,所述粗颗粒变换只记录所述弹性分布式数据集上的单个数据块上执行的单个操作,然后将创建所述弹性分布式数据集的变换序列并存储下来;所述弹性分布式数据集的变换序列由所述弹性分布式数据集与其他所述弹性分布式数据集之间变换的信息以及重建所述弹性分布式数据集中的数据的信息组成;当需要恢复所述弹性分布式数据集中的数据块时,根据所述弹性分布式数据集记录的动作以及所述父弹性分布式数据集和所述子弹性分布式数据集之间的依赖关系选择不同的恢复方法;所述窄依赖可以直接通过计算所述父弹性分布式数据集的某块数据计算得到所述子弹性分布式数据集对应的某块数据;所述宽依赖需要将所述父弹性分布式数据集中的所有数据块全部重新计算来恢复,并根据其的重新计算时间,设置新的缓存块替换策略转换阈值Threshold-LCC=T,其中T为所述弹性分布式数据集的所有数据块的重计算开销中所述权重最低的弹性分布式数据集RDD中数据块的重计算时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710405770.8/1.html,转载请声明来源钻瓜专利网。