[发明专利]一种自适应缓冲块替换方法有效
申请号: | 201710405770.8 | 申请日: | 2017-05-31 |
公开(公告)号: | CN107220188B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 卢宇彤 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F12/123 | 分类号: | G06F12/123 |
代理公司: | 广州润禾知识产权代理事务所(普通合伙) 44446 | 代理人: | 欧秋望 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 缓冲 替换 方法 | ||
本发明涉及一种自适应缓冲块替换策略,在通用并行框架Spark提供的弹性分布式数据集RDD上运行,弹性分布式数据集RDD为集群的分布式内存抽象,将步骤划分为六步,通过低内存开销的重计算开销的数据结构记录弹性分布式数据集RDD的重计算权重,为了结合应用特点优化数据块替换策略,结合RDD的血统关系判断属于某一RDD的所有数据块的重计算开销,动态地识别当前缓存替换策略下的数据块的读取延迟,当短时间内多个数据块被驱逐后又重新读入内存时,将数据块替换策略更改为LCC策略,之后在数据块恢复阶段,根据数据块的重计算开销设置新的阈值Threshold‑LCC,当重计算开销大于内存读取数据块的延迟后,将数据块的替换策略更改为LRU策略,本发明具有低内存开销、动态更改数据块替换策略,自适应负载特点等优点。
技术领域
本发明涉及计算机系统结构领域,涉及一种自适应缓冲块替换方法。
背景技术
缓存替换算法的核心在于充分局部性原理提高缓存命中率,各种替换算法的主要不同在于如何量化局部性。常见的两种缓存替换策略包括:基于访问时间的LRU (LeastRecently Used)策略和基于访问频率的LFU(Least Frequently Used) 策略。LRU策略仅维护了缓存块的访问时间信息,没有考虑被访问频率等因素,在某些访问模式下无法获得理想命中率。与LRU策略的缺点类似,LFU策略仅维护各项的被访问频率信息,对于某缓存项,如果该项在过去有着极高的访问频率而最近访问频率较低,当缓存空间已满时该项很难被从缓存中替换出来,进而导致命中率下降。
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,主要特点是提供了一个集群的分布式内存抽象—弹性分布式数据集RDD,以支持需要工作集的应用。在Hadoop MapReduce 框架中,shuffle过程是连接Map和Reduce之间的桥梁,Shuffle过程会产生大量的中间文件,内存需求巨大,涉及到了磁盘的读写和网络的传输,它的性能高低直接影响到了整个程序的运行效率。随着大数据时代应用的规模不断增加,内存资源的需求量也随之增加,当内存大小无法满足应用的工作集的需求时,必然导致频繁的缓存块替换。若采用普通的LRU策略,驱逐被访问最少的数据块,那么很可能出现当某一个不在内存中的数据块需要被访问时,由于内存资源不够,必须先驱逐另一个之后很可能被访问的相邻数据块,再把该块读入内存,会导致不必要的开销。因此,需要一种全面的、效率高的缓冲块替换策略。
发明内容
有鉴于此,本发明提供一种解决或部分解决上述问题的一种自适应缓冲块替换方法。
为达到上述技术方案的效果,本发明的技术方案为:一种自适应缓冲块替换方法,在通用并行框架Spark提供的弹性分布式数据集RDD上运行,弹性分布式数据集RDD为集群的分布式内存抽象,步骤如下:
1)结合弹性分布式数据集RDD的变换序列关系判断并得到属于弹性分布式数据集RDD的所有数据块的重计算开销,初始化记录数据块的重计算开销的数据结构,为其分配内存空间,并将内存空间的内部所有位初始化为0;
2)根据分配方案为弹性分布式数据集RDD的动作分配权重,分配方案为:
首先,将弹性分布式数据集RDD的动作分为transformations动作类型和 actions动作类型,transformations动作类型为一种惰性操作,定义了一个新的弹性分布式数据集RDD,没有立即对其进行计算,actions动作类型则是对弹性分布式数据集RDD立即计算,并返回结果或者将结果写入到外部存储中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710405770.8/2.html,转载请声明来源钻瓜专利网。