CN113590031B - 一种缓存管理方法、装置、设备以及计算机可读存储介质 - Google Patents
一种缓存管理方法、装置、设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113590031B CN113590031B CN202110741466.7A CN202110741466A CN113590031B CN 113590031 B CN113590031 B CN 113590031B CN 202110741466 A CN202110741466 A CN 202110741466A CN 113590031 B CN113590031 B CN 113590031B
- Authority
- CN
- China
- Prior art keywords
- data
- state
- queue
- lru queue
- threshold value
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种缓存管理方法,包括:将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;判断所述缓存空间的空间使用率是否达到预设调整门限值;若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;判断所述缓存空间的空间使用率是否达到预设淘汰门限值;若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。该方法能够避免缓存污染,提高管理效率。本申请还公开了一种缓存管理装置、设备以及计算机可读存储介质,均具有上述技术效果。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种缓存管理方法;还涉及一种缓存管理装置、设备以及计算机可读存储介质。
背景技术
普通意义上,对于处理南北向速度相差较大的两种硬件,用于协调两者数据传输速度差异的结构被称为缓存。例如内存可以作为硬盘和CPU之间的缓存。缓存性能的重要指标是命中率,即在缓存中命中待访问数据的概率。最优的场景是所有待访问数据均发生在缓存中,这就需要更好的缓存管理算法能够预知客户端的数据访问行为,从而预判将数据预先读取到缓存,提升命中率,高命中率对系统带来更高的性能变现。然而,缓存空间是有限的,为了避免发生缓存空间满的情况,缓存管理算法要实现的功能是对数据空间进行调整,实现冷热数据的调整,通过淘汰冷数据进行空间回收。
LRU(Least Recently Used,最近最少使用)算法是缓存管理领域通常被参考和使用的算法模型,其核心思想是如果数据过去被访问多次,那么将来被访问的频率也更高,即根据数据的历史访问频率来淘汰数据。虽然从命中率角度分析当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降。LRU的优势在于实现简单,但是代价是查找效率低,存在缓存污染,即无法识别冷热数据,管理效率低。
因此,如何避免缓存污染,提高管理效率已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种缓存管理方法,能够避免缓存污染,提高管理效率。本申请的另一个目的是提供一种缓存管理装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种缓存管理方法,包括:
将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;
判断所述缓存空间的空间使用率是否达到预设调整门限值;
若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;
判断所述缓存空间的空间使用率是否达到预设淘汰门限值;
若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
可选的,所述缓存队列包括:热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列;所述热数据LRU队列用于保存访问次数达到预设值的数据;所述预热数据LRU队列用于保存新进入所述缓存空间的数据以及所述热数据LRU队列淘汰的数据;所述冷却数据LRU队列用于保存从所述预热数据LRU队列中淘汰的数据。
可选的,所述数据的状态包括系统状态与数据状态;所述系统状态包括热状态、预热状态以及冷却状态;所述数据状态包括dirty状态与clean状态。
可选的,所述调整所述数据所在的缓存队列和/或所述数据的状态包括:
判断所述热数据LRU队列的数据量是否大于第一门限值;
若所述热数据LRU队列的数据量大于所述第一门限值,则从所述热数据LRU队列的表头开始,逐一将所述热数据LRU队列中的数据调整到所述预热数据LRU队列的表尾,直至所述热数据LRU队列的数据量不大于所述第一门限值;
若所述热数据LRU队列的数据量不大于所述第一门限值,则判断所述预热数据LRU队列的数据量是否大于第二门限值;
若所述预热数据LRU队列的数据量大于所述第二门限值,则根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值;
若所述预热数据LRU队列的数据量不大于所述第二门限值,则下刷所述冷却数据LRU队列中的系统状态为冷却状态且数据状态为dirty状态的数据,并将下刷的所述数据的数据状态更新为clean状态,直到所述冷却数据LRU队列中的系统状态为非冷却状态且数据状态为dirty状态的数据的数据量不大于第三门限值。
可选的,所述根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值包括:
从所述预热数据LRU队列的表头开始,将所述预热数据LRU队列中的系统状态为冷却状态的数据调整到所述冷却数据LRU队列的表尾,并在将所述预热数据LRU队列中的系统状态为冷却状态的数据全部调整到所述冷却数据LRU队列后,将所述预热数据LRU队列中的系统状态为预热状态的数据调整为冷却状态,将所述预热数据LRU队列中的系统状态为热状态的数据调整为预热状态,直至所述预热数据LRU队列的数据量不大于所述第二门限值。
可选的,删除所述缓存队列中的指定数据包括:
从所述冷却数据LRU队列的表头开始,将所述冷却数据LRU队列中数据状态为clean状态的数据删除。
可选的,所述索引信息存储于子树中;所述子树与所述数据的数据ID的哈希值相对应。
为解决上述技术问题,本申请还提供了一种缓存管理装置,包括:
分配与设定模块,用于将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;
第一判断模块,用于判断所述缓存空间的空间使用率是否达到预设调整门限值;
调整模块,用于若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;
第二判断模块,用于判断所述缓存空间的空间使用率是否达到预设淘汰门限值;
删除模块,用于若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
为解决上述技术问题,本申请还提供了一种缓存管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的缓存管理方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的缓存管理方法的步骤。
本申请所提供的缓存管理方法,包括:将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;判断所述缓存空间的空间使用率是否达到预设调整门限值;若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;判断所述缓存空间的空间使用率是否达到预设淘汰门限值;若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
可见,本申请所提供的缓存管理方法,对缓存空间中的数据分配缓存队列并设定数据的状态,根据数据所在的缓存队列以及数据的状态可以识别缓存空间中的冷热数据,避免缓存污染。另外,本申请会在缓存空间的空间使用率达到预设调整门限值时,对数据所在的缓存队列和/或状态进行调整,并且会在缓存空间的空间使用率达到预设淘汰门限值时,删除部分指定的数据,以使用缓存空间,实现对缓存的精细化管理,提高管理效率。
本申请所提供的缓存管理装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种缓存管理方法的流程示意图;
图2为本申请实施例所提供的一种数据调整示意图;
图3为本申请实施例所提供的一种缓存管理装置的示意图;
图4为本申请实施例所提供的一种缓存管理设备的示意图。
具体实施方式
本申请的核心是提供一种缓存管理方法,能够避免缓存污染,提高管理效率。本申请的另一个核心是提供一种缓存管理装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种缓存管理方法的流程示意图,参考图1所示,该方法包括:
S101:将缓存空间的数据分配到指定的缓存队列,并设定数据的状态与索引信息,以通过索引信息索引数据所在的缓存队列以及数据的状态;
具体而言,对于缓存空间的数据,管理系统会将数据分配到指定的缓存队列,并会为数据设定其对应的状态与索引信息。
其中,在一种具体的实施方式中,缓存队列可以包括:热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列;热数据LRU队列用于保存访问次数达到预设值的数据;预热数据LRU队列用于保存新进入缓存空间的数据以及热数据LRU队列淘汰的数据;冷却数据LRU队列用于保存从预热数据LRU队列中淘汰的数据。
具体而言,本实施例中,缓存空间包括三种缓存队列,即热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列。各队列采用双向链表数据结构。热数据LRU队列保存热点数据,即保存缓存空间中访问次数达到预设值的数据。例如,保存缓存空间中至少被访问过3次的数据。预热数据LRU队列保存最新被添加到缓存空间的数据,以及从热数据LRU队列中淘汰的数据;冷却数据LRU队列保存预热数据LRU队列从中淘汰的数据,用于脏数据下刷和缓存空间释放。
另外,在一种具体的实施方式中,数据的状态包括系统状态与数据状态;系统状态包括热状态、预热状态以及冷却状态;数据状态包括dirty状态与clean状态。
冷却状态用于标记刚进入缓存空间的数据与即将淘汰的数据;预热状态用于标记访问次数达到第一预设次数的数据,以及从预热数据LRU队列淘汰的数据;热状态用于标记访问次数达到第二预设次数的数据。其中,第二预设次数大于第一预设次数。
例如,如果数据被访问的次数达到3次,则该数据的系统状态为热状态。如果数据被访问的次数达到2次,则该数据的系统状态为预热状态。
结合图2,对于数据A被访问时的实施过程阐述如下:
图2中,BRUNING_LRU表示热数据LRU队列,HEATING_LRU表示预热数据LRU队列,COOLING_LRU表示冷却数据LRU队列。
如图2中的标号1所示,数据A初次添加到缓存空间,则数据A被分配在预热数据LRU队列的表尾,且数据A的系统状态为冷却状态。如果访问操作为写操作,则数据A的数据状态为dirty状态,否则为clean状态。由于数据A的加入会引起缓存空间被占用,导致缓存空间的空间使用率发生变化,因此当有数据初次添加到缓存空间后,此时需要检查缓存空间的使用率使用情况,执行步骤S102。
数据A已经存在于缓存空间,且数据A在冷却数据LRU队列:
如图2中的标号5所示,如果数据A的系统状态为冷却状态,则将其转换为预热状态,并且将数据A移动到冷却数据LRU队列的表尾。若访问操作为写操作,则数据A的数据状态为dirty状态,否则不更改数据状态。如图2中标号7所示,如果数据A为预热状态,则将数据A调整到预热数据LRU队列的表尾。若访问操作为写操作,则数据A的数据状态为dirty状态,否则不更改数据状态。
数据A已经存在于缓存空间,且数据A在预热数据LRU队列:
如图2中标号2所示,如果数据A的系统状态为冷却状态,则将其系统状态转换为预热状态,并将其移动到预热数据LRU队列的表尾。若访问操作为写操作,则数据状态为dirty状态,否则不更改数据状态。
同样,如图2中标号2所示,如果数据A的系统状态为预热状态,则将其系统状态转换为热状态,并将其移动到预热数据LRU队列的表尾。若访问操作为写操作,则数据状态为dirty状态,否则不更改数据状态。
如图2中标号3所示,数据A的系统状态为热状态,则将数据A调整到热数据LRU队列的表尾。若访问操作为写操作,则数据状态为dirty状态,否则不更改数据状态。
数据A已经存在于缓存空间,且数据A在热数据LRU队列:
如图2中标号11所示,如果数据A的系统状态为热状态,则将数据A移动到热数据LRU队列的表尾。若访问操作为写操作,则数据状态为dirty状态,否则不更改数据状态。
S102:判断缓存空间的空间使用率是否达到预设调整门限值;
S103:若达到预设调整门限值,则调整数据所在的缓存队列和/或数据的状态;
具体的,如果缓存空间的空间使用率达到了预设调整门限值,则进一步对数据所在的缓存队列和/或数据的状态进行调整,以识别其中的冷数据,并对冷数据进行下刷,为后续删除数据做准备。相反,如果缓存空间的空间使用率没有达到预设调整门限值,则不进行调整。由于预设调整门限值小于预设淘汰门限值,因此,如果缓存空间的空间使用率没有达到预设调整门限值,那么也就不会达到预设淘汰门限值,此时可直接退出流程。
在一种具体的实施方式中,调整数据所在的缓存队列和/或数据的状态的方式为:
判断热数据LRU队列的数据量是否大于第一门限值;
若热数据LRU队列的数据量大于第一门限值,则从热数据LRU队列的表头开始,逐一将热数据LRU队列中的数据调整到预热数据LRU队列的表尾,直至热数据LRU队列的数据量不大于第一门限值;
若热数据LRU队列的数据量不大于第一门限值,则判断预热数据LRU队列的数据量是否大于第二门限值;
若预热数据LRU队列的数据量大于第二门限值,则根据预设调整策略,将预热数据LRU队列中的数据调整到冷却数据LRU队列的表尾,直至预热数据LRU队列的数据量不大于第二门限值;
若预热数据LRU队列的数据量不大于第二门限值,则下刷冷却数据LRU队列中的系统状态为冷却状态且数据状态为dirty状态的数据,并将下刷的数据的数据状态更新为clean状态,直到冷却数据LRU队列中的系统状态为非冷却状态且数据状态为dirty状态的数据的数据量不大于第三门限值。
其中,根据预设调整策略,将预热数据LRU队列中的数据调整到冷却数据LRU队列的表尾,直至预热数据LRU队列的数据量不大于第二门限值的方式可以为:从预热数据LRU队列的表头开始,将预热数据LRU队列中的系统状态为冷却状态的数据调整到冷却数据LRU队列的表尾,并在将预热数据LRU队列中的系统状态为冷却状态的数据全部调整到冷却数据LRU队列后,将预热数据LRU队列中的系统状态为预热状态的数据调整为冷却状态,将预热数据LRU队列中的系统状态为热状态的数据调整为预热状态,直至预热数据LRU队列的数据量不大于第二门限值。
具体而言,在缓存空间的空间使用率达到预设调整门限值的情况下,本实施例首先判断热数据LRU队列的数据量是否大于该队列对应的门限值即第一门限值,如果热数据LRU队列的数据量大于第一门限值,则从热数据LRU队列的表头开始,遍历热数据LRU队列,逐一将热数据LRU队列中的数据调整到预热数据LRU队列的表尾,如图2中标号6所示。当将热数据LRU队列中的某一个数据调整到预热数据LRU队列的表尾后,热数据LRU队列的数据量不再大于第一门限值,则结束调整热数据LRU队列。
如果热数据LRU队列的数据量不大于第一门限值,或者在结束调整热数据LRU队列后,进一步,判断预热数据LRU队列的数据量是否大于该队列对应的门限值,即第二门限值;如果预热数据LRU队列的数据量大于第二门限值,则从预热数据LRU队列的表头开始遍历预热数据LRU队列,将其中系统状态为冷却状态的数据调整到冷却数据LRU队列的表尾,如附图2中标号4所示。调整后检查预热数据LRU队列中的数据量是否仍大于第二门限,如果仍大于,则继续遍历预热数据LRU队列,将其中系统状态为预热状态数据转换为冷却状态,将其中系统状态为热状态的数据转换为预热状态,如附图2中标号10所示。系统状态转换后,再将其中系统状态为冷却状态的数据调整到冷却数据LRU队列的表尾,直到预热数据LRU队列的数据量不大于第二门限值,此时结束调整预热数据LRU队列。
如果预热数据LRU队列的数据量不大于第二门限值,或者在结束调整预热数据LRU队列后,进一步,首先从表头开始遍历冷却数据LRU队列,将其中系统状态为冷却状态且数据状态为dirty状态的数据下刷到数据空间,将下刷的数据的数据状态更新为clean状态;并将系统状态为预热状态的数据转换为冷却状态,如附图2中标号9所示。遍历完成后,判断冷却数据LRU队列中系统状态为非冷却状态且数据状态为dirty状态的数据量是否大于该队列对应的门限值即第三门限值,如果是,则再次执行从表头开始遍历冷却数据LRU队列,将其中系统状态为冷却状态且数据状态为dirty状态的数据下刷到数据空间,将下刷的数据的数据状态更新为clean状态,并将系统状态为预热状态的数据转换为冷却状态的步骤,直到冷却数据LRU队列中系统状态为非冷却状态且数据状态为dirty状态的数据量不大于第三门限值。
第一门限值、第二门限值以及第三门限值可以相等,也可以不等,可以根据实际应用需要进行相适应的设置。
S104:判断缓存空间的空间使用率是否达到预设淘汰门限值;
S105:若达到预设淘汰门限值,则删除缓存队列中的指定数据。
具体的,如果缓存空间的空间使用率达到预设淘汰门限值,则进一步删除缓存队列中的冷数据,以释放缓存空间。相反,如果缓存空间的空间使用率没有达到预设淘汰门限值,则不删除缓存队列中的数据。
其中,删除缓存队列中的指定数据的方式可以为:从冷却数据LRU队列的表头开始,将冷却数据LRU队列中数据状态为clean状态的数据删除,如图2中标号8所示。
删除缓存队列中的指定数据后,再次判断缓存空间的空间使用率是否仍达到预设淘汰门限值,如果缓存空间的空间使用率仍达到预设淘汰门限值,则再次进行队列和/或状态调整,并在调整之后再次上述缓存队列中的指定数据,直到缓存空间的空间使用率不再达到预设淘汰门限值。
进一步,在上述实施例的基础上,为了降低大范围加锁带来的开销,在一种具体的实施方式中,索引信息存储于子树中;子树与数据的数据ID的哈希值相对应。后续,根据数据的数据ID的哈希值可以查找到索引信息所在的子树的树根,然后在该子树上可以快速查找到该数据的位置和状态信息。
综上,本申请所提供的缓存管理方法,对缓存空间中的数据分配缓存队列并设定数据的状态,根据数据所在的缓存队列以及数据的状态可以识别缓存空间中的冷热数据,避免缓存污染。另外,本申请会在缓存空间的空间使用率达到预设调整门限值时,对数据所在的缓存队列和/或状态进行调整,并且会在缓存空间的空间使用率达到预设淘汰门限值时,删除部分指定的数据,以使用缓存空间,实现对缓存的精细化管理,提高管理效率。
本申请还提供了一种缓存管理装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图3,图3为本申请实施例所提供的一种缓存管理装置的示意图,结合图3所示,该装置包括:
分配与设定模块10,用于将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;
第一判断模块20,用于判断所述缓存空间的空间使用率是否达到预设调整门限值;
调整模块30,用于若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或数据的状态;
第二判断模块40,用于判断所述缓存空间的空间使用率是否达到预设淘汰门限值;
删除模块50,用于若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
在上述实施例的基础上,可选的所述缓存队列包括:热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列;所述热数据LRU队列用于保存访问次数达到预设值的数据;所述预热数据LRU队列用于保存新进入所述缓存空间的数据以及所述热数据LRU队列淘汰的数据;所述冷却数据LRU队列用于保存从所述预热数据LRU队列中淘汰的数据。
在上述实施例的基础上,可选的,所述数据的状态包括系统状态与数据状态;所述系统状态包括热状态、预热状态以及冷却状态;所述数据状态包括dirty状态与clean状态。
在上述实施例的基础上,可选的,所述调整模块30包括:
第一判断单元,用于判断所述热数据LRU队列的数据量是否大于第一门限值;
第一调整单元,用于若所述热数据LRU队列的数据量大于所述第一门限值,则从所述热数据LRU队列的表头开始,逐一将所述热数据LRU队列中的数据调整到所述预热数据LRU队列的表尾,直至所述热数据LRU队列的数据量不大于所述第一门限值;
第二判断单元,用于若所述热数据LRU队列的数据量不大于所述第一门限值,则判断所述预热数据LRU队列的数据量是否大于第二门限值;
第二调整单元,用于若所述预热数据LRU队列的数据量大于所述第二门限值,则根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值;
第三调整单元,用于若所述预热数据LRU队列的数据量不大于所述第二门限值,则下刷所述冷却数据LRU队列中的系统状态为冷却状态且数据状态为dirty状态的数据,并将下刷的所述数据的数据状态更新为clean状态,直到所述冷却数据LRU队列中的系统状态为非冷却状态且数据状态为dirty状态的数据的数据量不大于第三门限值。
在上述实施例的基础上,可选的,所述第二调整单元具体用于:
从所述预热数据LRU队列的表头开始,将所述预热数据LRU队列中的系统状态为冷却状态的数据调整到所述冷却数据LRU队列的表尾,并在将所述预热数据LRU队列中的系统状态为冷却状态的数据全部调整到所述冷却数据LRU队列后,将所述预热数据LRU队列中的系统状态为预热状态的数据调整为冷却状态,将所述预热数据LRU队列中的系统状态为热状态的数据调整为预热状态,直至所述预热数据LRU队列的数据量不大于所述第二门限值。
在上述实施例的基础上,可选的,所述删除模块50具体用于:
从所述冷却数据LRU队列的表头开始,将所述冷却数据LRU队列中数据状态为clean状态的数据删除。
在上述实施例的基础上,可选的,所述索引信息存储于子树中;所述子树与所述数据的数据ID的哈希值相对应。
本申请还提供了一种缓存管理设备,参考图4所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;判断所述缓存空间的空间使用率是否达到预设调整门限值;若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;判断所述缓存空间的空间使用率是否达到预设淘汰门限值;若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;判断所述缓存空间的空间使用率是否达到预设调整门限值;若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;判断所述缓存空间的空间使用率是否达到预设淘汰门限值;若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的缓存管理方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (7)
1.一种缓存管理方法,其特征在于,包括:
将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;
判断所述缓存空间的空间使用率是否达到预设调整门限值;
若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;
判断所述缓存空间的空间使用率是否达到预设淘汰门限值;
若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据;
所述缓存队列包括:热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列;所述热数据LRU队列用于保存访问次数达到预设值的数据;所述预热数据LRU队列用于保存新进入所述缓存空间的数据以及所述热数据LRU队列淘汰的数据;所述冷却数据LRU队列用于保存从所述预热数据LRU队列中淘汰的数据;
所述数据的状态包括系统状态与数据状态;所述系统状态包括热状态、预热状态以及冷却状态;所述数据状态包括dirty状态与clean状态;
所述调整所述数据所在的缓存队列和/或所述数据的状态包括:
判断所述热数据LRU队列的数据量是否大于第一门限值;
若所述热数据LRU队列的数据量大于所述第一门限值,则从所述热数据LRU队列的表头开始,逐一将所述热数据LRU队列中的数据调整到所述预热数据LRU队列的表尾,直至所述热数据LRU队列的数据量不大于所述第一门限值;
若所述热数据LRU队列的数据量不大于所述第一门限值,则判断所述预热数据LRU队列的数据量是否大于第二门限值;
若所述预热数据LRU队列的数据量大于所述第二门限值,则根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值;
若所述预热数据LRU队列的数据量不大于所述第二门限值,则下刷所述冷却数据LRU队列中的系统状态为冷却状态且数据状态为dirty状态的数据,并将下刷的所述数据的数据状态更新为clean状态,直到所述冷却数据LRU队列中的系统状态为非冷却状态且数据状态为dirty状态的数据的数据量不大于第三门限值。
2.根据权利要求1所述的缓存管理方法,其特征在于,所述根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值包括:
从所述预热数据LRU队列的表头开始,将所述预热数据LRU队列中的系统状态为冷却状态的数据调整到所述冷却数据LRU队列的表尾,并在将所述预热数据LRU队列中的系统状态为冷却状态的数据全部调整到所述冷却数据LRU队列后,将所述预热数据LRU队列中的系统状态为预热状态的数据调整为冷却状态,将所述预热数据LRU队列中的系统状态为热状态的数据调整为预热状态,直至所述预热数据LRU队列的数据量不大于所述第二门限值。
3.根据权利要求1所述的缓存管理方法,其特征在于,删除所述缓存队列中的指定数据包括:
从所述冷却数据LRU队列的表头开始,将所述冷却数据LRU队列中数据状态为clean状态的数据删除。
4.根据权利要求1至3任一项所述的缓存管理方法,其特征在于,所述索引信息存储于子树中;所述子树与所述数据的数据ID的哈希值相对应。
5.一种缓存管理装置,其特征在于,包括:
分配与设定模块,用于将缓存空间的数据分配到指定的缓存队列,并设定所述数据的状态与索引信息,以通过所述索引信息索引所述数据所在的缓存队列以及所述数据的状态;
第一判断模块,用于判断所述缓存空间的空间使用率是否达到预设调整门限值;
调整模块,用于若达到所述预设调整门限值,则调整所述数据所在的缓存队列和/或所述数据的状态;
第二判断模块,用于判断所述缓存空间的空间使用率是否达到预设淘汰门限值;
删除模块,用于若达到所述预设淘汰门限值,则删除所述缓存队列中的指定数据;
所述缓存队列包括:热数据LRU队列、预热数据LRU队列以及冷却数据LRU队列;所述热数据LRU队列用于保存访问次数达到预设值的数据;所述预热数据LRU队列用于保存新进入所述缓存空间的数据以及所述热数据LRU队列淘汰的数据;所述冷却数据LRU队列用于保存从所述预热数据LRU队列中淘汰的数据;
所述数据的状态包括系统状态与数据状态;所述系统状态包括热状态、预热状态以及冷却状态;所述数据状态包括dirty状态与clean状态;
所述调整模块包括:
第一判断单元,用于判断所述热数据LRU队列的数据量是否大于第一门限值;
第一调整单元,用于若所述热数据LRU队列的数据量大于所述第一门限值,则从所述热数据LRU队列的表头开始,逐一将所述热数据LRU队列中的数据调整到所述预热数据LRU队列的表尾,直至所述热数据LRU队列的数据量不大于所述第一门限值;
第二判断单元,用于若所述热数据LRU队列的数据量不大于所述第一门限值,则判断所述预热数据LRU队列的数据量是否大于第二门限值;
第二调整单元,用于若所述预热数据LRU队列的数据量大于所述第二门限值,则根据预设调整策略,将所述预热数据LRU队列中的数据调整到所述冷却数据LRU队列的表尾,直至所述预热数据LRU队列的数据量不大于所述第二门限值;
第三调整单元,用于若所述预热数据LRU队列的数据量不大于所述第二门限值,则下刷所述冷却数据LRU队列中的系统状态为冷却状态且数据状态为dirty状态的数据,并将下刷的所述数据的数据状态更新为clean状态,直到所述冷却数据LRU队列中的系统状态为非冷却状态且数据状态为dirty状态的数据的数据量不大于第三门限值。
6.一种缓存管理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的缓存管理方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的缓存管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741466.7A CN113590031B (zh) | 2021-06-30 | 2021-06-30 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741466.7A CN113590031B (zh) | 2021-06-30 | 2021-06-30 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590031A CN113590031A (zh) | 2021-11-02 |
CN113590031B true CN113590031B (zh) | 2023-09-12 |
Family
ID=78245538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110741466.7A Active CN113590031B (zh) | 2021-06-30 | 2021-06-30 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590031B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017000673A1 (zh) * | 2015-06-29 | 2017-01-05 | 深圳市中兴微电子技术有限公司 | 一种共享缓存分配方法、装置及计算机存储介质 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
CN108763103A (zh) * | 2018-05-24 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111159066A (zh) * | 2020-01-07 | 2020-05-15 | 杭州电子科技大学 | 一种动态调整的缓存数据管理及淘汰方法 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN111737170A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种缓存数据管理方法、系统、终端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080189B2 (en) * | 2019-01-24 | 2021-08-03 | Vmware, Inc. | CPU-efficient cache replacment with two-phase eviction |
-
2021
- 2021-06-30 CN CN202110741466.7A patent/CN113590031B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017000673A1 (zh) * | 2015-06-29 | 2017-01-05 | 深圳市中兴微电子技术有限公司 | 一种共享缓存分配方法、装置及计算机存储介质 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
CN108763103A (zh) * | 2018-05-24 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111159066A (zh) * | 2020-01-07 | 2020-05-15 | 杭州电子科技大学 | 一种动态调整的缓存数据管理及淘汰方法 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN111737170A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种缓存数据管理方法、系统、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
FLRU:一种面向闪存固态盘的缓存管理算法;沈岩;骆力明;罗圣美;张广艳;;小型微型计算机系统(06);237-241 * |
Also Published As
Publication number | Publication date |
---|---|
CN113590031A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159066A (zh) | 一种动态调整的缓存数据管理及淘汰方法 | |
CN108762664B (zh) | 一种固态硬盘页级缓存区管理方法 | |
WO2022016861A1 (zh) | 一种热点数据缓存方法、系统及相关装置 | |
CN111309650B (zh) | 缓存控制方法、装置、存储介质及设备 | |
CN107018172B (zh) | 用于在分布式缓存存储器中自适应分区的系统和方法 | |
US20110066791A1 (en) | Caching data between a database server and a storage system | |
CN107632784A (zh) | 一种存储介质和分布式存储系统的缓存方法、装置及设备 | |
CN105389135B (zh) | 一种固态盘内部缓存管理方法 | |
CN103178989B (zh) | 访问热度统计方法及装置 | |
CN105404595B (zh) | 缓存管理方法及装置 | |
CN109359062A (zh) | 一种元数据读缓存方法、装置及设备 | |
US20060143395A1 (en) | Method and apparatus for managing a cache memory in a mass-storage system | |
US20220179785A1 (en) | Cache space management method and apparatus | |
CN105573682A (zh) | 一种san存储系统及其数据读写方法 | |
CN110147331A (zh) | 缓存数据处理方法、系统及可读存储介质 | |
CN106201348A (zh) | 非易失性存储设备的缓存管理方法及装置 | |
CN112860185B (zh) | 基于lru算法的高可用缓存方法、存储装置以及电子设备 | |
CN107341114A (zh) | 一种目录管理的方法、节点控制器和系统 | |
CN113590031B (zh) | 一种缓存管理方法、装置、设备以及计算机可读存储介质 | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
CN109582233A (zh) | 一种数据的缓存方法和装置 | |
CN110554914A (zh) | 资源锁管理方法、装置、服务器及存储介质 | |
CN112925472A (zh) | 请求处理方法、装置、电子设备及计算机存储介质 | |
CN103838682B (zh) | 一种文件目录的读取方法和设备 | |
US11853221B2 (en) | Dynamic prefetching of data from storage |
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 |