[发明专利]缓存淘汰方法及系统有效
申请号: | 202110576609.3 | 申请日: | 2021-05-26 |
公开(公告)号: | CN113268440B | 公开(公告)日: | 2022-08-02 |
发明(设计)人: | 蔡尚志;王盛 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
主分类号: | G06F12/123 | 分类号: | G06F12/123 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲 |
地址: | 200433 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 淘汰 方法 系统 | ||
本申请公开了一种缓存淘汰方法,该方法包括:设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;接收所要查询的数据的所述编码;根据所述编码向所述第一队列发起查询操作,并在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。本申请还公开了一种缓存淘汰系统、电子装置和计算机可读存储介质。由此,能够有效辨别队列中的热数据集、温数据集和冷数据集,提高淘汰时的准确性,并且不需要大量的数据访问就能淘汰历史访问记录的缓存数据。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种缓存淘汰方法、系统、电子装置及计算机可读存储介质。
背景技术
缓存淘汰算法是一种为了充分利用缓存数据的淘汰算法。大部分操作系统为最大化页面命中率,广泛采用LRU(Least Recently Used,最近最少使用)淘汰算法。LRU淘汰算法维护一个队列,Insert(插入)操作会将数据放到队列头部,而淘汰则从队列尾部开始,并且Lookup(查询)操作得到的Key(数据资源的唯一ID号)也会做更新,将Key转移到队列头部。LRU-K淘汰算法中的中的K代表最近使用次数的阈值,是当该使用次数达到K次才进入LRU队列中的一种淘汰算法。
当存在热点数据时,LRU淘汰算法的效率很好,但偶发性的、周期性的批量插入操作会导致命中率急剧下降。而LRU-K淘汰算法虽然可以很好的解决偶发性的、周期性的批量插入操作所带来的影响,但对K值的调整是繁琐的过程,若K值太小则效果与LRU淘汰算法相似,太大则适应性差,需要大量的数据访问才能将历史访问记录(访问频次的计数)淘汰掉。另外,由于LRU-K淘汰算法中的K值是一个累加值,意味着不能做到快速适应流量的变化。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种缓存淘汰方法、系统、电子装置及计算机可读存储介质,旨在解决如何有效进行缓存数据的淘汰且不需要大量的数据访问的问题。
为实现上述目的,本申请实施例提供了一种缓存淘汰方法,所述方法包括:
设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;
接收所要查询的数据的所述编码;及
根据所述编码向所述第一队列发起查询操作,并在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
可选地,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰包括:
查看所述编码是否在所述第二队列中;
当所述编码不在所述第二队列中时,将所述编码插入所述第二队列,且将所述编码对应的当前每秒查询率CQPS和上一次每秒查询率PQPS均初始化为0。
可选地,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰还包括:
当所述编码存在所述第二队列中时,将所述编码对应的所述PQPS赋值为已记录的所述CQPS的值,并重新计算新的所述CQPS的值;
根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中。
可选地,所述根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中包括:
根据所述PQPS和所述CQPS的值以及预设的计算因子Factor计算所述编码的每秒查询率KQPS,其中KQPS=CQPS*Factor+PQPS*(1-Factor);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110576609.3/2.html,转载请声明来源钻瓜专利网。