[发明专利]一种面向Spark的基于数据感知的缓存替换方法及系统有效
申请号: | 202011525754.0 | 申请日: | 2020-12-22 |
公开(公告)号: | CN112597076B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 黄涛;钟华;魏峻;李慧;郑莹莹;唐震;许利杰;王伟 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F12/121 | 分类号: | G06F12/121;G06F12/06 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 spark 基于 数据 感知 缓存 替换 方法 系统 | ||
1.一种面向Spark的基于数据感知的缓存替换方法,其特征在于,包括以下步骤:
分析Spark框架的应用数据依赖关系和历史执行信息,获取数据块的被依赖次数、占用内存空间大小、计算用时和在已完成的作业中被引用次数;
根据数据块的被依赖次数、占用内存空间大小、计算用时和在已完成的作业中被引用次数,计算内存中数据块的权重;计算内存中数据块权重的公式如下:
其中,Weighti表示第i个数据块的权重,costi表示第i个数据块的计算用时,refi表示第i个数据块的被依赖次数,sizei表示第i个数据块的占用内存空间大小,pastmodi表示第i个数据块在已完成的作业中被引用次数;
对于待缓存的新数据块,选择与该新数据块不属于同一个抽象弹性分布式数据集RDD的内存中数据块进行缓存替换,替换步骤包括:
按照内存中数据块权重值从小到大,选出权重值最小且非0的一个内存中数据块并释放,若释放出的内存空间小于该新数据块的占用内存空间大小,则继续释放下一个内存中数据块,直至释放出的内存空间大于等于该新数据块的占用内存空间大小,再将该新数据块缓存至内存,替换掉释放的上述内存中数据块;
若依次释放出全部内存中数据块后,其释放的内存空间仍小于该新数据块的占用内存空间大小,则放弃缓存该新数据块,并将全部原内存中数据块返回至内存。
2.如权利要求1所述的方法,其特征在于,通过插桩方法获取数据块的被依赖次数、占用内存空间大小、计算用时和在已完成的作业中被引用次数。
3.如权利要求1所述的方法,其特征在于,对于数据块的计算用时,将计算用时更久的数据块缓存在内存中。
4.如权利要求1所述的方法,其特征在于,对于数据块的被依赖次数,若数据块只被一个作业计算所依赖,则不进行缓存;若数据块被两个或两个以上的不同作业计算所依赖,则进行缓存。
5.如权利要求1所述的方法,其特征在于,通过一权重表维护内存中数据块的权重值,权重表中的数据块权重的初始值为0。
6.如权利要求5所述的方法,其特征在于,权重表中按照权重值从小到大排序。
7.如权利要求5所述的方法,其特征在于,向内存中缓存新数据块后,计算出其权重值,并更新权重表中的值;将内存中数据块释放后,其在权重表中的值置为0;将原内存中数据块返回至内存后,恢复该数据块的权重。
8.如权利要求1所述的方法,其特征在于,释放内存中数据块时,先将该内存中数据块从内存中取出,临时存放在等候区列表中,若释放出的内存空间大于等于新数据块的占用内存空间大小,则将该内存中数据块从等候区列表中移除。
9.一种面向Spark的基于数据感知的缓存替换系统,其特征在于,包括:
分析器,分析Spark框架的应用数据依赖关系和历史执行信息,获取数据块的被依赖次数、占用内存空间大小、计算用时和在已完成的作业中被引用次数;
控制器,根据数据块的被依赖次数、占用内存空间大小、计算用时和在已完成的作业中被引用次数构建数据块的权重模型,通过该权重模型计算内存中数据块的权重;计算内存中数据块权重的公式如下:
其中,Weighti表示第i个数据块的权重,costi表示第i个数据块的计算用时,refi表示第i个数据块的被依赖次数,sizei表示第i个数据块的占用内存空间大小,pastmodi表示第i个数据块在已完成的作业中被引用次数;
决策器,按照内存中数据块的权重值从小到大,选择与待缓存的新数据块不属于同一个抽象弹性分布式数据集RDD的内存中数据块作为替换对象,决定替换的步骤包括:按照数据块权重值从小到大,选出权重值最小且非0的一个内存中数据块决定释放,若释放出的内存空间小于该新数据块的占用内存空间大小,则决定继续释放下一个内存中数据块,直至释放出的内存空间大于等于该新数据块的占用内存空间大小,再决定将该新数据块缓存至内存,替换掉释放的上述内存中数据块;若依次释放出全部内存中数据块后,其释放的内存空间仍小于该新数据块的占用内存空间大小,则决定放弃缓存该新数据块,并决定将全部原内存中数据块返回至内存;
执行器,根据决策器的决策结果对内存中数据块进行释放或返回操作,对待缓存的新数据块进行缓存替换操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011525754.0/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置