[发明专利]基于缓存价值的Spark缓存淘汰方法及系统有效
申请号: | 202010837412.6 | 申请日: | 2020-08-19 |
公开(公告)号: | CN112015765B | 公开(公告)日: | 2023-09-22 |
发明(设计)人: | 熊安萍;杨孟达;田野;龙林波;蒋溢 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/2458 |
代理公司: | 重庆辉腾律师事务所 50215 | 代理人: | 王海军 |
地址: | 400065 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 缓存 价值 spark 淘汰 方法 系统 | ||
1.一种基于缓存价值的Spark缓存淘汰方法,其特征在于,包括以下步骤:
构建基于RDD的缓存价值模型和Block缓存价值模型;
基于RDD信息的缓存价值模型的构建过程包括:通过DAG调度模块中的StageInfo类,获取弹性分布式数据集RDD的未来重用次数RefCount、Block的未来引用距离RefDistance,并根据RDD之间的依赖关系确定RDD是否需要shuffle操作生成,若RDD之间有窄依赖关系,表示该RDD不是由Shuffle操作生成的,则isShuffled=false,若RDD之间没有窄依赖关系,表示在该RDD处因Shuffle操作进行了Stage划分,则isShuffled=true,根据RefCount、RefDistance和isShuffled三个参数构建基于RDD信息的缓存价值模型,
基于RDD信息的缓存价值模型包括:
其中,CacheWeighti表示RDDi的缓存价值;RefCounti表示RDDi的未来重用次数,该值通过统计所有Stage中RDDi被需要的次数得到;RefDistancei表示RDDi的下一次引用的Stage距离,该值通过分析Stage的执行顺序得到;β为RDDi是否由Shuffled操作生成因素的影响因子,由用户自由调整,默认值为0.2;
Block缓存价值模型的构建过程包括:通过Block所关联的RDD的信息,将该RDD对应的未来重用次数RefCount与未来引用距离RefDistance分别作为该Block的未来重用次数和未来引用距离,并获取该Block在节点内存中占用的空间大小,构建基于Block信息的缓存价值模型如下式:
其中,CacheWeightij表示RDDi结果集的第j个Block的缓存价值权重,即Blockij的缓存价值权重;RefCountij表示Blockij的未来重用次数,与RDDi的RefCount相等;RefDistanceij表示Blockij的下一次引用的Stage距离,即Blockij的未来引用距离,RefDistanceij与RDDi的RefDistance一致;Sizeij表示Blockij在节点内存中占用的空间大小;
根据基于RDD信息的缓存价值模型计算得到每个弹性分布式数据集RDD的初始缓存价值;利用改进的快速排序算法依据RDD的初始缓存价值对RDD进行由高到低排序,得到排好序的RDD序列;
改进的快速排序算法包括:(1)使用非递归方式实现;(2)对于缓存价值大多相等时的改进,探访基准值右区间时,先将与该基准值相等的所有数据保存在一个数组中,然后一次性放在基准值的右侧,探访左区间时,先将与该基准值相等的所有数据保存在一个数组中,然后一次性放在基准值左侧;(3)当参与排序的数据数目小于预先设定的阈值时,采用插入排序;
依据初始缓存价值由高到低的顺序依次将该RDD序列中RDD的计算结果Block存放到集群节点内存中,具体地,从RDD序列中选择缓存价值最高的RDD,执行判断1;
判断1:判断当前缓存占用空间是否超过集群总内存的缓存阈值,若超过集群总内存的缓存阈值,则停止缓存;若不超过集群总内存的缓存阈值,则将RDD序列中缓存价值最高的RDD的计算结果放入集群内存中,并执行判断2;
判断2:判断待执行RDD序列中的RDD是否全部被缓存,若RDD全部被缓存,停止缓存;若RDD未全部被缓存,则继续从RDD序列中选择缓存价值最高的RDD,执行判断1;
在任务动态执行过程中的每个Stage结束时刻更新该Stage的RDD信息,Stage的RDD信息包括未来重用次数RefCount与未来引用距离RefDistance;
各个节点只管理本节点中存储的Blocks,当节点内存不足以存放需缓存的Block时,利用基于Block信息的缓存价值模型计算当前节点中每个已缓存Block的缓存价值;根据当前节点内存中的Block的缓存价值,利用改进的快速排序算法,由低到高地淘汰缓存价值最小的Block,并在确保节点内存足以保存接下来要缓存的Block之后,继续淘汰所有缓存价值已为零的Block,以充分释放内存空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010837412.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:粗抛方法
- 下一篇:四驱电动车动力分配方法和装置