CN113093999B - 一种基于自适应锁的缓存淘汰方法和系统 - Google Patents

一种基于自适应锁的缓存淘汰方法和系统 Download PDF

Info

Publication number
CN113093999B
CN113093999B CN202110495949.3A CN202110495949A CN113093999B CN 113093999 B CN113093999 B CN 113093999B CN 202110495949 A CN202110495949 A CN 202110495949A CN 113093999 B CN113093999 B CN 113093999B
Authority
CN
China
Prior art keywords
cache
expiration time
data
cache expiration
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110495949.3A
Other languages
English (en)
Other versions
CN113093999A (zh
Inventor
周成祖
鄢小征
王海滨
王兵
吴文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN202110495949.3A priority Critical patent/CN113093999B/zh
Publication of CN113093999A publication Critical patent/CN113093999A/zh
Application granted granted Critical
Publication of CN113093999B publication Critical patent/CN113093999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明给出了一种基于自适应锁的缓存淘汰方法和系统,包括扫描缓存,获取缓存数据的信息;响应于缓存数据被访问,延长所述缓存数据的缓存过期时间,否则,缩减所述缓存过期时间;删除缓存过期时间小于预设缓存过期时间的缓存数据。该方法和系统可以运用于目前主流的缓存设备和缓存数据库的数据淘汰策略,甚至也可以用在一个内存的置换策略上,可以及时的释放缓存空间,提高系统的缓存的可用性,降低缓存雪崩和击穿现象的出现的概率,能够有效的避免错删和误续命的操作。

Description

一种基于自适应锁的缓存淘汰方法和系统
技术领域
本发明涉及缓存数据处理的技术领域,尤其是一种基于自适应锁的缓存淘汰方法和系统。
背景技术
当今是互联网蓬勃发展的时代,缓存技术取得了长足的发展,但是限制于硬件设备,高速缓存的硬件不可能无限扩容,而我们的应用随着数据的累积,也会有大量的数据落入缓存硬件,当瓶颈出现或者缓存量超过阈值以后,不得不采取相应的缓存淘汰策略,以淘汰命中率不是很高或者存储时间过长的缓存数据,目前的缓存淘汰策略大部分基于LRU(Least Recently Used,最近最少使用)、LFU(Least Frequently Used,最近使用次数最少)、FIFO(定时删除)和随机删除等。
一般情况下,FIFO虽然能够快速的清理缓存空间,但是无法辨析热点数据,这对于并发的系统来说,给缓存的更新带来了极大的挑战,不适用于性能要求很高的系统;LFU效率要优于LRU,且能够避免周期性或者偶发性的操作导致缓存命中率下降的问题。但LFU需要记录数据的历史访问记录,一旦数据访问模式改变,LFU需要更长时间来适用新的访问模式,即:LFU存在历史数据影响将来数据的“缓存污染”效用。而当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。因此应用的行业不同,配置的策略也不尽相同,主要是因为他们各有利弊,不能一概而论。
发明内容
为了解决现有技术中不同的缓存淘汰策略中存在的无法辨析热点数据、存在缓存污染等一系列的技术问题,本发明提出了一种基于自适应锁的缓存淘汰方法和系统,以解决上述技术问题。
根据本发明的一个方面,提出了一种基于自适应锁的缓存淘汰方法,包括:
S1:扫描缓存,获取缓存数据的信息;
S2:响应于缓存数据被访问,延长缓存数据的缓存过期时间,否则,缩减缓存过期时间;以及
S3:删除缓存过期时间小于预设缓存过期时间的缓存数据。
在一些具体的实施例中,利用一双向链表,将新的缓存数据添加至链表的末端。
在一些具体的实施例中,步骤S1具体包括:利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从链表的头部开始,从哈希映射中迭代每一节点的访问次数,并根据访问次数对哈希映射进行排序。
在一些具体的实施例中,根据访问次数对哈希映射进行降序排序。利用降序排列可以便于进行后续的缓存淘汰策略。
在一些具体的实施例中,从哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t;从哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子。凭借该步骤可以实现自适应续命或加速删除,缓存中热点数据的比率将会提高,从而减少缓存雪崩和击穿的现象。
在一些具体的实施例中,延长因子为缓存过期时间的二分之一。
在一些具体的实施例中,响应于延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据。
在一些具体的实施例中,响应于缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间。凭借上述两个步骤可以实现频繁使用的数据长期保持,如果不是热点数据,就短暂的存储。
在一些具体的实施例中,在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除缓存过期时间小于预设缓存过期时间的缓存数据。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有一或多个计算机程序,该一或多个计算机程序被计算机处理器执行时实施上述任一项的方法。
根据本申请的第三方面,提出了一种基于自适应锁的缓存淘汰系统,该系统包括:
缓存扫描单元:配置用于扫描缓存,获取缓存数据的信息;
自适应调整单元:配置用于响应于缓存数据被访问,延长缓存数据的缓存过期时间,否则,缩减缓存过期时间;
缓存数据删除单元:配置用于删除缓存过期时间小于预设缓存过期时间的缓存数据。
在一些具体的实施例中,缓存扫描单元中,利用一双向链表,将新的缓存数据添加至链表的末端,利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从链表的头部开始,从哈希映射中迭代每一节点的访问次数,并根据访问次数对哈希映射进行降序排序。
在一些具体的实施例中,自适应调整单元中,从哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t;从哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子,具体为缓存过期时间的二分之一。
在一些具体的实施例中,响应于延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据;响应于缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间;在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除缓存过期时间小于预设缓存过期时间的缓存数据。
本发明提出了一种基于自适应锁的缓存淘汰方法和系统,该方法的主要思想是采用定时策略+LRU+自适应锁的思想,策略的主进程执行的是定时删除,但是子进程会先一步执行自适应续命或者加速删除的操作,如果缓存数据最近有被访问,则将缓存的过期时间设置为T+ t;如果缓存没有被访问,则将缓存过期时间设置为T- t,如果频繁使用,就长期保持,如果不是热点数据,就短暂的存储,这样一来,缓存中热点数据的比率将会提高,从而减少缓存雪崩和击穿的现象。该策略可以运用于目前主流的缓存设备和缓存数据库的数据淘汰策略,甚至也可以用在一个内存的置换策略上,使得应用或者系统的热点数据能够进行长时间的保持,使得冷数据能够快速的清理,及时的释放缓存空间,提高系统的缓存的可用性,降低缓存雪崩和击穿现象的出现的概率。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例的基于自适应锁的缓存淘汰方法的流程图;
图2是本申请的一个具体的实施例的基于自适应锁的缓存淘汰方法的流程图;
图3是本申请的一个实施例的基于自适应锁的缓存淘汰系统的框架图;
图4是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请的一个实施例的基于自适应锁的缓存淘汰方法,图1示出了根据本申请的实施例的基于自适应锁的缓存淘汰方法的流程图。如图1所示,该方法包括:
S101:扫描缓存,获取缓存数据的信息。利用一双向链表,将新的缓存数据添加至链表的末端。利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从链表的头部开始,从哈希映射中迭代每一节点的访问次数,并根据访问次数对哈希映射进行降序排序。
S102:响应于缓存数据被访问,延长缓存数据的缓存过期时间,否则,缩减缓存过期时间。
在具体的实施例中,从哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t;从哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子,优选的,延长因子为缓存过期时间的二分之一。
在具体的实施例中,响应于延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据;响应于缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间。
S103:删除缓存过期时间小于预设缓存过期时间的缓存数据。在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除缓存过期时间小于预设缓存过期时间的缓存数据。
该方法可以运用于目前主流的缓存设备和缓存数据库的数据淘汰策略,甚至也可以用在一个内存的置换策略上。核心思想就是使得应用或者系统的热点数据能够进行长时间的保持,使得冷数据能够快速的清理,及时的释放缓存空间,提高系统的缓存的可用性,降低缓存雪崩和击穿现象的出现的概率,同时结合了FIFO和LRU的思想,使二者互补,能够有效的避免错删和误续命的操作。
继续参考图2,图2示出了本申请的一个具体的实施例的基于自适应锁的缓存淘汰方法流程图,如图2所示,该方法包括:
S201:开始。在该阶段进行扫描缓存,核心思想为子线程执行FIFO算法和LRU算法,过滤缓存数据,对缓存数据进行归类的优先级的划分,利用一个双向链表,当新来的数据之后便添加到链表的末尾,在数据访问的时候,用一个hashmap保存缓存数据的key和访问次数,当cache的容量达到阈值以后,定时任务从链表的头部开始,从hashmap中迭代每一个节点访问频次,并根据访问次数对hashmap进行降序排序。
S202:自适应调整阶段,该阶段具体包括以下步骤:
S2021:开始;
S2022:判断最近是否被命中,若是,则进入步骤S2023,若否,则进入步骤S2025;
S2023:定义为其续命,T=T当前 +t,并将key-T写进日志;
S2024:从日志中读取T,设置过期时间为T;
S2025:从日志中读取T,T=T当前 -t设置过期时间为T;
S2026:结束。
在具体的实施例中,根据上述得到的hashmap,采取首位并进的办法,对缓存数据的有效期进行更改,从hashmap头部开始对缓存续命(T当前进行加t),当T达到上限时不再进行续命,此时默认为热点数据。从尾部开始进行缓存的清除(T当前进行减t),建议一般的缓存时间都设置T为T0,当T小于下限时不再递减,此过程t一直在减小,当循环执行完以后,t=0,这样就能过滤出需要淘汰的缓存数据,上面两个操作在日志中更改缓存的有效时间。
S203:定义删除策略。按照设置比例,主线程从缓存时间小于T0的数据中,递增的删除缓存过期时间小于T0的数据。
S204:结束。
上述方法主要的优点在于集成了LRU策略和定时策略,使得二者相互补充,同时还集成了自适应锁的思想,能够加速对缓存的淘汰,使得热点数据的比率提高,充分的利用硬件设备,符合设置缓存的初衷。虽然在定时任务的主线程中要fork一个子线程进行缓存的续命和加速清除的操作,这将会导致主线程的开销加大,以及增加任务线程的延时,同时可能由于其他缓存设备不具有过期时间的属性,只能用日志文件记录,这将会消耗系统资源,不过目前大多数缓存设备都能直接读取和设置过期时间,可以避免额外的生成日志文件。
继续参考图3,图3示出了根据本发明的实施例的基于自适应锁的缓存淘汰系统的框架图。该系统具体包括缓存扫描单元301、自适应调整单元302和删除单元303。
在具体的实施例中,缓存扫描单元301配置用于扫描缓存,获取缓存数据的信息;自适应调整单元302配置用于响应于缓存数据被访问,延长缓存数据的缓存过期时间,否则,缩减缓存过期时间;缓存数据删除单元303配置用于删除缓存过期时间小于预设缓存过期时间的缓存数据。
在具体的实施例中,缓存扫描单元301中,利用一双向链表,将新的缓存数据添加至链表的末端,利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从链表的头部开始,从哈希映射中迭代每一节点的访问次数,并根据访问次数对哈希映射进行降序排序。
在具体的实施例中,自适应调整单元302中,从哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t;从哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子,具体为缓存过期时间的二分之一。响应于延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据;响应于缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间;在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除缓存过期时间小于预设缓存过期时间的缓存数据。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备的计算机系统400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:扫描缓存,获取缓存数据的信息;响应于缓存数据被访问,延长缓存数据的缓存过期时间,否则,缩减缓存过期时间;删除缓存过期时间小于预设缓存过期时间的缓存数据。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (3)

1.一种基于自适应锁的缓存淘汰方法,其特征在于,包括:
S1:扫描缓存,获取缓存数据的信息;利用一双向链表,将新的缓存数据添加至链表的末端,利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从所述链表的头部开始,从所述哈希映射中迭代每一节点的访问次数,并根据所述访问次数对所述哈希映射进行降序排序;
S2:响应于若缓存数据被访问,延长所述缓存数据的缓存过期时间,从所述哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t,否则,缩减所述缓存过期时间;从所述哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子,所述延长因子为缓存过期时间的二分之一,响应于若延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据,响应于若缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间;以及
S3:删除缓存过期时间小于预设缓存过期时间的缓存数据,在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除所述缓存过期时间小于所述预设缓存过期时间的缓存数据。
2.一种计算机可读存储介质,其上存储有一或多个计算机程序,其特征在于,该一或多个计算机程序被计算机处理器执行时实施权利要求1所述的方法。
3.一种基于自适应锁的缓存淘汰系统,其特征在于,所述系统包括:
缓存扫描单元:配置用于扫描缓存,获取缓存数据的信息,利用一双向链表,将新的缓存数据添加至链表的末端,利用一哈希映射保存缓存数据的key和访问次数,当缓存中容量达到阈值后,定时从所述链表的头部开始,从所述哈希映射中迭代每一节点的访问次数,并根据所述访问次数对所述哈希映射进行降序排序;
自适应调整单元:配置用于响应于若缓存数据被访问,延长所述缓存数据的缓存过期时间,否则,缩减所述缓存过期时间,从所述哈希映射的头部开始对缓存数据进行缓存过期时间的延长,延长后的缓存过期时间T=T当前+t;从所述哈希映射的尾部开始进行缓存过期时间的缩减,缩减后的缓存过期时间T=T当前-t,其中,t表示延长因子,具体为缓存过期时间的二分之一;响应于若延长后的缓存过期时间达到上限,不再延长缓存过期时间,且该缓存数据为热点数据;响应于若缩减后的缓存过期时间小于预设缓存过期时间,不再缩减缓存过期时间;在缓存过期时间小于预设缓存过期时间的缓存数据中,递增地删除所述缓存过期时间小于所述预设缓存过期时间的缓存数据;
缓存数据删除单元:配置用于删除缓存过期时间小于预设缓存过期时间的缓存数据。
CN202110495949.3A 2021-05-07 2021-05-07 一种基于自适应锁的缓存淘汰方法和系统 Active CN113093999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110495949.3A CN113093999B (zh) 2021-05-07 2021-05-07 一种基于自适应锁的缓存淘汰方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110495949.3A CN113093999B (zh) 2021-05-07 2021-05-07 一种基于自适应锁的缓存淘汰方法和系统

Publications (2)

Publication Number Publication Date
CN113093999A CN113093999A (zh) 2021-07-09
CN113093999B true CN113093999B (zh) 2022-11-18

Family

ID=76681631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110495949.3A Active CN113093999B (zh) 2021-05-07 2021-05-07 一种基于自适应锁的缓存淘汰方法和系统

Country Status (1)

Country Link
CN (1) CN113093999B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849131B (zh) * 2021-09-28 2024-09-06 咪咕文化科技有限公司 一种数据存储方法、装置、计算设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133880A (zh) * 2014-07-25 2014-11-05 广东睿江科技有限公司 一种设置文件缓存时间的方法与装置
CN108572799A (zh) * 2018-04-12 2018-09-25 上海理工大学 一种双向哈希链表的异构内存系统数据页迁移方法
CN110908612A (zh) * 2019-11-27 2020-03-24 腾讯科技(深圳)有限公司 缓存管理方法、装置、设备及存储介质
CN111159066A (zh) * 2020-01-07 2020-05-15 杭州电子科技大学 一种动态调整的缓存数据管理及淘汰方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717941B1 (en) * 1999-12-07 2004-04-06 Advanced Micro Devices, Inc. Method and apparatus for early termination of frame data
CN102779017B (zh) * 2012-06-29 2016-04-13 华中科技大学 一种固态盘中数据缓存区的控制方法
US9286366B2 (en) * 2013-12-02 2016-03-15 International Business Machines Corporation Time-delayed replication for data archives
US10453076B2 (en) * 2016-06-02 2019-10-22 Facebook, Inc. Cold storage for legal hold data
CN111858469B (zh) * 2020-07-24 2024-01-26 成都成信高科信息技术有限公司 一种基于时间滑动窗口的自适应分级存储的方法
CN112631885A (zh) * 2020-12-18 2021-04-09 武汉市烽视威科技有限公司 一种提前预判故障并自动修复的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133880A (zh) * 2014-07-25 2014-11-05 广东睿江科技有限公司 一种设置文件缓存时间的方法与装置
CN108572799A (zh) * 2018-04-12 2018-09-25 上海理工大学 一种双向哈希链表的异构内存系统数据页迁移方法
CN110908612A (zh) * 2019-11-27 2020-03-24 腾讯科技(深圳)有限公司 缓存管理方法、装置、设备及存储介质
CN111159066A (zh) * 2020-01-07 2020-05-15 杭州电子科技大学 一种动态调整的缓存数据管理及淘汰方法

Also Published As

Publication number Publication date
CN113093999A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US8972690B2 (en) Methods and apparatuses for usage based allocation block size tuning
US11086792B2 (en) Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method
CN109344092B (zh) 一种提高冷存储数据读取速度的方法和系统
US6807607B1 (en) Cache memory management system and method
KR100577384B1 (ko) 페이지 정보를 이용한 페이지 대체 방법
CN102117338B (zh) 一种数据库缓存的方法
CN111858520B (zh) 一种区块链节点数据分离存储的方法和装置
CN110109868B (zh) 用于索引文件的方法、装置和计算机程序产品
US20240061789A1 (en) Methods, apparatuses, and electronic devices for evicting memory block in cache
CN109376125A (zh) 一种元数据存储方法、装置、设备及计算机可读存储介质
CN113093999B (zh) 一种基于自适应锁的缓存淘汰方法和系统
US11593268B2 (en) Method, electronic device and computer program product for managing cache
CN113094392A (zh) 数据缓存的方法和装置
CN112631504A (zh) 利用堆外内存实现本地缓存的方法和装置
CN115080459A (zh) 缓存管理方法及装置、计算机可读存储介质
CN112860185A (zh) 基于lru算法的高可用缓存方法、存储装置以及电子设备
CN108829345B (zh) 日志文件的数据处理方法和终端设备
CN108875036B (zh) 页面数据缓存方法、装置和电子设备
CN111858470A (zh) 一种时间窗口迁移策略
CN107967306B (zh) 一种存储系统中关联块的快速挖掘方法
CN107577618B (zh) 一种三路均衡缓存淘汰方法及装置
CN115712388A (zh) 固态盘的数据存储方法、装置、设备及存储介质
CN116185287A (zh) 一种降低读延时的方法、装置及固态硬盘
CN114461590A (zh) 一种基于关联规则的数据库文件页预取方法及装置
JP4558003B2 (ja) データアクセス処理方法及び記憶制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant