[发明专利]一种三路均衡缓存淘汰方法及装置有效
申请号: | 201710822189.6 | 申请日: | 2017-09-13 |
公开(公告)号: | CN107577618B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 邵改革;龙燕军;杨曦;贺楷锴;刘琳;尹心亮;舒邦杰 | 申请(专利权)人: | 武大吉奥信息技术有限公司 |
主分类号: | G06F12/0891 | 分类号: | G06F12/0891 |
代理公司: | 北京双收知识产权代理有限公司 11241 | 代理人: | 曾晓芒 |
地址: | 430223 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 均衡 缓存 淘汰 方法 装置 | ||
本发明适用于缓存技术领域,提供一种三路均衡缓存淘汰方法及装置,本发明提供的三路均衡缓存淘汰方法以最近最常使用为原则,同时兼顾访问频率和次数,将最近访问、当前热点、历史热点分别用3个不同淘汰策略的数据结构存储,并规定了三者之间的转换条件,增强了算法适应性和灵敏度,减弱偶发或周期操作对缓存的影响,能够有效应对一些突发情况,以解决因部分干扰因素导致缓存命中率降低的问题。
技术领域
本发明属于缓存技术领域,尤其涉及一种三路均衡缓存淘汰方法及装置。
背景技术
缓存是用来加快响应速度,减少服务器或数据库服务负载的一种方式,也是常用的以空间换取时间的性能优化策略。为进一步提高响应的时间,内存型缓存得到了广泛应用,但碍于计算机硬件等条件,内存型缓存的容量不可以无限增加,缓存总容量往往是固定的,并通过缓存机制的算法,实现对有限缓存空间的管理,以提高缓存的命中率。
目前缓存淘汰的常用算法有先进先出算法(FIFO)、最不经常使用算法(LFU)、最近最少使用算法(LRU)及变种、时钟算法(Clock)及变种、双队列(2Q)、多级最近最少使用队列(MQ)等。
这些常用缓存淘汰算法普遍受限于特定的应用场景,适应性不强。FIFO算法和Clock算法只对最近的热点有效,但热点很容易被淘汰,适用范围较小;LFU算法能有效保留历史热点,但如果热点发生了变化,需要大量的数据才能改变热点分布,灵活性较差;LRU算法和2Q算法考虑到了最近最常使用的缓存,但不能很好的保留历史访问热点,面对突发性或周期性的批量操作,会淘汰热点,导致缓存污染比较严重;MQ由多级LRU队列构成,算法实现的代价较大,命中率的提高跟队列的层级关联,算法的复杂度高。
发明内容
鉴于上述问题,本发明的目的在于提供一种三路均衡缓存淘汰方法及装置,旨在解决现有缓存淘汰算法存在明显的局限性、适应性较差、无法应对多种情况的技术问题。
一方面,所述三路均衡缓存淘汰方法包括下述步骤:
构建最近访问列表、当前热点集合和历史热点队列;
当接收到访问指令时,查找所述当前热点集合、历史热点队列和最近访问列表;
若待访问缓存在所述当前热点集合中,则直接调用访问;
若待访问缓存在所述最近访问列表中,则进一步判断该缓存是否在列表表头,若在列表表头,则将该缓存从最近访问列表中移除并加入当前热点集合,若不在列表表头,则将该缓存移至列表表头;
若待访问缓存在所述历史热点队列中,则将该缓存移至所述当前热点集合;
若缓存是第一次访问,则将缓存加入所述最近访问列表;
如果缓存加入最近访问列表时列表已满,从最近访问列表中删除一个缓存;
如果缓存加入当前热点集合时集合已满,将当前热点集合中访问频率最低的缓存删除并加入到历史热点队列中;
如果缓存加入历史热点队列时队列已满,删除历史热点队列中访问次数最少的缓存。
另一方面,所述三路均衡缓存淘汰装置包括:
存储构建模块,构建最近访问列表、当前热点集合和历史热点队列;
缓存查找模块,用于当接收到访问指令时,查找所述当前热点集合、历史热点队列和最近访问列表;
第一处理模块,用于当待访问缓存在所述当前热点集合中时,直接调用访问;以及用于如果缓存加入当前热点集合时集合已满,将当前热点集合中访问频率最低的缓存删除并加入到历史热点队列中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武大吉奥信息技术有限公司,未经武大吉奥信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710822189.6/2.html,转载请声明来源钻瓜专利网。