[发明专利]一种面向Spark的基于数据感知的缓存替换方法及系统有效
申请号: | 202011525754.0 | 申请日: | 2020-12-22 |
公开(公告)号: | CN112597076B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 黄涛;钟华;魏峻;李慧;郑莹莹;唐震;许利杰;王伟 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F12/121 | 分类号: | G06F12/121;G06F12/06 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 spark 基于 数据 感知 缓存 替换 方法 系统 | ||
本发明公开了一种面向Spark的基于数据感知的缓存替换方法,属于软件技术领域,通过分析Spark框架的应用数据依赖关系和历史执行信息,获取数据块的被依赖次数、占用内存空间大小、计算用时和被引用次数,基于这些因素建立权重模型,计算出数据块的权重;将数据块权重值从小到大排序,选择权重值较小数据且与待缓存的数据块不属于同一个RDD的数据块进行缓存替换。本发明针对现有应用负载特征多样性,应用对内存资源需求的持续变化性,动态感知用户负载特征,并根据历史运行信息,计算得到的权重值,衡量缓存替换最合适的数据,并实时结合当前内存资源情况作出替换决定,实现Spark框架缓存管理机制的优化。
技术领域
本发明涉及一种面向Spark框架的基于数据感知的权重模型缓存替换方法及系统,属于软件技术领域。
背景技术
伴随海量数据递增及业务日益复杂,人们对数据处理的要求日益增加。相对于早期的通用并行分布式计算框架(例如Hadoop),基于内存的分布式计算框架Spark在处理机器学习、图计算等领域中的迭代计算、交互式数据查询、并行计算等方面非常高效。尤其是基于内存的大数据处理平台往往通过缓存有效的数据在内存中以备复用来提高应用速度。面对CPU密集型应用场景时,创建对象过多会容易填满内存,引起GC(Garbage Collection)问题,系统会寻找不再使用的对象进行回收,降低程序执行性能。同时,当缓存的分区数据占满了内存,系统将启用缓存替换对分区数据作出替换决定:剔除旧数据缓存新数据。维持有价值的数据缓存在内存中,及时剔除不必要数据释放内存空间是提升应用程序执行性能的重要手段之一。缓存替换策略丰富多样,根据不同的历史信息(时间或者频率)预测未来数据的访问模式。LRU(Least Recently Used)表示基于最少最长时间未被访问的缓存数据块进行淘汰;LRU作是一种常用的缓存置换算法,被广泛应用系统设计中,同时也应用到各个计算框架或者平台上。Spark计算框架中的LRU算法核心思想就是当缓存空间被占满时,如果再次发生缓存失效,就将最近最少使用的数据从缓存空间中剔除以增加可用的缓存空间来缓存新数据。LRU仅仅考虑内存中的数据被访问的时间因素,将长期未被访问的数据被剔除。缓存数据的有效性除了考虑被访问时间的单一因素外,还需要考虑更多其他因素。
Spark提供抽象弹性分布式数据集RDD,并通过谱系图(lineage graph)来记录这些不同RDD之间的依赖关系。用户具体的应用逻辑表现为一系列数据的RDD转换处理。可以动态获取用户应用程序本身的RDD依赖关系,以及其他历史执行信息等。其他传统的缓存替换策略如LFU(Least Frequency Used)缓存的数据块基于最少频率未被访问进行淘汰,决策缓存数据有效性时仅仅考虑被访问频率这一单一因素;LRFU(L.Donghee et al.,LRFU:a spectrum of policies that subsumes the least recently used and leastfrequently used policies,IEEE Transactions on Computers,vol.50,no.12,pp.1352-1361,2001)算法考虑到了数据块的计算成本和大小,但并没有考虑到数据块的使用次数。根据单一维度(时间或频率或使用次数)的缓存替换策略难以适应各种工作负载场景。通过上述分析,LFU、LRFU等机制做出替换决定选择的有效缓存数据优势不明显。
大数据应用的负载特征往往是动态的,面对复杂应用时,尤其在有限的内存资源中,集成在Spark框架中的缓存替换策略LRU未考虑分区数据计算代价、数据依赖关系、分区依赖次数等因素,从而难以选择合理的数据持久化在内存中以备后续作业计算所复用。
用户程序提交到集群,应用执行表现为对各个节点上的数据进行处理,并且诸多分布式应用很多都是重复地对不同数据进行相同的运算步骤,结合Spark的编程特性,可以基于执行前生成的谱系图进行来评估合理的数据在内存中,以获得更好的性能。因此,由于应用负载的动态变化特性,以及Spark特殊的编程特性,面向Spark分布式计算框架,设计高效的缓存替换方法及系统十分重要并具有技术可实现性。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011525754.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置