[发明专利]内存计算的缓存优化方法有效
申请号: | 201310531246.7 | 申请日: | 2013-11-01 |
公开(公告)号: | CN103631730A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 陈康;艾智远;冯琳;周佳祥 | 申请(专利权)人: | 深圳清华大学研究院 |
主分类号: | G06F12/12 | 分类号: | G06F12/12 |
代理公司: | 深圳市鼎言知识产权代理有限公司 44311 | 代理人: | 孔丽霞 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 计算 缓存 优化 方法 | ||
1.一种内存计算的缓存优化方法,其特征在于,该方法包括:
构造DAG步骤:在Spark的源程序代码中插入监听代码,以样本数据作为输入预先执行应用程序,对应用程序进行动态语义分析,获取所有RDD函数操作的输入RDD ID、操作类型、输出RDD ID,根据获取的信息构造DAG;
筛选RDD步骤:遍历上述DAG,计算各顶点的出度,筛选出出度大于1的顶点对应的RDD并建立RDD集合S,该集合S中的RDD为需要缓存至内存中的RDD;
Action执行顺序调整步骤:调整上述RDD集合S中所有RDD的Action执行顺序,以优化需要缓存至内存的RDD数据计算的访问顺序;
RDD权重计算步骤:计算所述RDD集合S中所有RDD的权重;
RDD替换步骤:当输入真正的作业数据执行应用程序时,根据优化的RDD数据计算的访问顺序,依次将RDD缓存至内存,若内存已满,根据内存替换算法决定从内存中被替换出的RDD;
RDD处理步骤:根据多级缓存算法确定被替换出的RDD是直接丢弃还是存储至磁盘。
2.如权利要求1所述的内存计算的缓存优化方法,其特征在于,在所述构造DAG步骤中,将输入RDD ID和输出RDD ID作为顶点,输入RDD和输出RDD进行的函数操作的操作类型为边,构造DAG。
3.如权利要求1所述的内存计算的缓存优化方法,其特征在于,在所述Action执行顺序调整步骤中,是根据贪心算法调整集合S中所有RDD的Action执行顺序,包括以下步骤:
a)查找所述RDD集合S中的所有RDD的Action,合并有依赖关系的Action为一个新Action,合并后的多个新Action与无依赖关系的Action共同形成一个Action集合A;
b)创建空集合R和空序列S’;
c)从Action集合A中任意选取一个Action Ai,将Ai加入序列S’的末尾,将Ai对应的RDD加入到集合R;
d)迭代执行步骤c,直至集合A中的元素为空,则序列S’即为调整的Action执行顺序,其中,迭代执行从集合A中选取Action Ai时,选取的依据是所选取的Ai对应的RDD与集合R的交集最大。
4.如权利要求1所述的内存计算的缓存优化方法,其特征在于,在所述权重计算步骤中,RDD权重的计算公式为:
其中,IS(P(RDDi))为RDDi的父RDD的大小、CC(RDDi)为RDDi的计算代价、UT(RDDi)为RDDi的使用次数、OS(RDDi)为RDDi的大小、LC(RDDi)为RDDi的生命周期,RDDi的计算代价包括RDD操作和闭包操作的复杂程度,RDDi的使用次数为DAG中该RDDi顶点的出度,RDDi的生命周期为RDDi创建至销毁过程中Action的个数,f为用于归一化的校正参数。
5.如权利要求4所述的内存计算的缓存优化方法,其特征在于,所述RDD的大小根据动态采样法进行计算:
采样:取作业数据中的一定大小的数据作为样本数据;
计算对象大小:将样本数据作为输入,执行应用程序,计算执行过程中的对象大小,所述对象包括各类型变量;
汇总:汇总RDD的所有对象的大小即为RDD的大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳清华大学研究院,未经深圳清华大学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310531246.7/1.html,转载请声明来源钻瓜专利网。