CN110688226B - 一种缓存回收方法、装置、设备及可读存储介质 - Google Patents

一种缓存回收方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110688226B
CN110688226B CN201910926619.8A CN201910926619A CN110688226B CN 110688226 B CN110688226 B CN 110688226B CN 201910926619 A CN201910926619 A CN 201910926619A CN 110688226 B CN110688226 B CN 110688226B
Authority
CN
China
Prior art keywords
cache
queue
entries
cache entries
current
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
CN201910926619.8A
Other languages
English (en)
Other versions
CN110688226A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201910926619.8A priority Critical patent/CN110688226B/zh
Publication of CN110688226A publication Critical patent/CN110688226A/zh
Application granted granted Critical
Publication of CN110688226B publication Critical patent/CN110688226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

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

Abstract

本申请公开了一种缓存回收方法、装置、设备及可读存储介质,方法包括:预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列;获取缓存空间中的当前缓存条目数量,并判断当前缓存条目数量是否小于低水位线;若否,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目到回收队列中。本申请公开的上述技术方案,在当前缓存条目数量不小于低水位线时,将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目到回收队列中,以降低缓存文件对缓存空间的占用率。

Description

一种缓存回收方法、装置、设备及可读存储介质
技术领域
本申请涉及NAS集群存储系统技术领域,更具体地说,涉及一种缓存回收方法、装置、设备及可读存储介质。
背景技术
NFS(Network File System,网络文件系统)文件共享服务是NAS(NetworkAttached Storage,网络附属存储)集群存储系统中提供文件共享的服务进程。
在NFS提供服务的过程中,为了更快的读写磁盘上的文件数据、更快的响应用户的请求,则可以对文件或者目录的元数据信息进行缓存,这样当用户读写过某一文件后的一段时间内再次读写该文件时,则可以直接使用缓存中的文件元数据信息进行文件的读写,避免再次读盘,从而可以减少读写等待的时间,并可以提高读写的效率。但是,由于缓存空间有限,因此,不可能无限制的缓存文件的信息,当缓存了太多的文件的信息后,会对文件读写效率造成一定的影响。
综上所述,如何对缓存空间中的缓存文件进行回收,以便于提高文件读写效率,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种缓存回收方法、装置、设备及可读存储介质,用于对缓存空间中的缓存文件进行回收,以便于提高文件读写效率。
为了实现上述目的,本申请提供如下技术方案:
一种缓存回收方法,应用于NFS服务系统,包括:
预先将缓存空间划分为N个分区,每个所述分区均包含第一队列、第二队列和回收队列;在所述第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;
获取所述缓存空间中的当前缓存条目数量,并判断所述当前缓存条目数量是否小于低水位线;
若否,则将所述第一队列中最近访问时间超过时间阈值的缓存条目移动到所述第二队列的头部,并从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目,对所述预设数量个缓存条目的值置空且放入到所述回收队列中。
优选的,还包括:
若确定所述当前缓存条目数量小于所述低水位线,则将缓存回收时间间隔设置为第一预设值;
在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤;
在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,还包括:
在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤。
优选的,在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,还包括:
判断所述当前缓存条目数量是否大于高水位线;
若是,则将所述缓存回收时间间隔从第一预设值减小为第二预设值;
若否,则将所述缓存回收时间间隔设置为所述第一预设值;
在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤。
优选的,在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,还包括:
获取所述缓存空间中的回收后缓存条目数量;
在将所述缓存回收时间间隔从第一预设值减小为第二预设值之后,在执行所述获取所述缓存空间中的当前缓存条目数量的步骤之前,还包括:
判断所述回收后缓存条目数量是否大于所述当前缓存条目数量;
若是,则将状况值设置为第一值,并拒绝接收缓存请求;
若否,则将所述状况值设置为第二值,并接收所述缓存请求。
优选的,在将缓存回收时间间隔设置为第一预设值时,还包括:
将所述状况值设置为所述第二值,并接收所述缓存请求。
优选的,将所述缓存回收时间间隔从所述第一预设值减小为第二预设值,包括;
将所述缓存回收时间间隔从所述第一预设值减小为所述第一预设值的一半。
优选的,从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目,包括:
从每个所述分区中的所述第二队列的尾部回收一个缓存条目。
一种缓存回收装置,应用于NFS服务系统,包括:
预先划分模块,用于预先将缓存空间划分为N个分区,每个所述分区均包含第一队列、第二队列和回收队列;在所述第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;
第一获取模块,用于获取所述缓存空间中的当前缓存条目数量,并判断所述当前缓存条目数量是否小于低水位线;
回收模块,用于在所述当前缓存条目数量不小于所述低水位线时,则将所述第一队列中最近访问时间超过时间阈值的缓存条目移动到所述第二队列的头部,并从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目。
一种缓存回收设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的缓存回收的方法。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的缓存回收的方法。
本申请提供了一种缓存回收方法、装置、设备及可读存储介质,其中,该方法包括:预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列;在第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;获取缓存空间中的当前缓存条目数量,并判断当前缓存条目数量是否小于低水位线;若否,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,对预设数量个缓存条目的值置空且放入到回收队列中。
本申请公开的上述技术方案,预先将缓存空间划分为N个分区,每个分区中均对应有第一队列、第二队列和回收队列这三个队列,且在第一队列中缓存条目安装最近访问时间由近到远的顺序进行排列,以便于进行缓存条目的判断和回收,在进行缓存回收时,获取缓存空间中的当前缓存条目数量,若当前缓存条目数量大于等于低水位线,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,且对这预设数量个缓存条目的值置空,然后,放入到回收队列中,以实现在当前缓存条目数量不小于低水位线时对每个分区中的缓存条目的回收,从而降低缓存文件对缓存空间的占用率,以便于提高文件读写效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的第一种缓存回收方法的流程图;
图2为本申请实施例提供的第二种缓存回收方法的流程图;
图3为本申请实施例提供的第三种缓存回收方法的流程图;
图4为本申请实施例提供的一种缓存回收装置的结构示意图;
图5为本申请实施例提供的一种缓存回收设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的第一种缓存回收方法的流程图,应用于NFS服务系统,可以包括:
S11:预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列。
在第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列。
考虑到NFS服务系统中的NFS服务进程是多线程的,因此,为了减少线程之间的竞争,则可以预先将缓存空间划分为N个相同的分区(其中,N为大于1的整数,具体地,N可以与NFS服务进程所包含的线程的数量相同),每个分区均包含第一队列、第二队列和回收队列。
第一队列和第二队列均用于存放与缓存文件信息对应的使用过的缓存条目,回收队列用于存放回收之后尚未使用的缓存条目,而且每个缓存条目均对应一个最近访问时间(即最近一次被访问和使用的时间)。另外,第一队列中存放的是最近访问过的缓存条目,且这些缓存条目在第一队列中是按照最近时间由近到远的顺序进行排列(具体为按照最近访问时间由近到远的顺序从第一队列的头部开始排列),即当每次从缓存空间中访问一个缓存条目后,该缓存条目就会被移动到第一队列的头部,以保证第一队列中的缓存条目是按照最近访问时间由近到远的顺序进行排列的,以便于后续可以直接从第一队列的尾部进行缓存条目最近访问时间判断以及缓存条目的回收,从而提高缓存回收的效率。
S12:获取缓存空间中的当前缓存条目数量。
在执行缓存回收之前,获取缓存空间中的当前缓存回收条目数量(即缓存空间中当前缓存的文件数量)。具体地,获取当前缓存回收条目数量的方式为:若缓存空间中增加一个缓存条目(即接收一个缓存请求时)则当前缓存回收条目数量加一;若缓存空间中的一个缓存条目被回收则当前缓存回收条目数量减一。
S13:判断当前缓存条目数量是否小于低水位线;若否,则执行步骤S14。
在获取到当前缓存条目数量之后,判断当前缓存条目数量是否小于低水位线,若当前缓存条目数量不小于低水位线,则执行步骤S14。
其中,低水位线具体是根据缓存空间所能缓存容纳的最大缓存条目数量所设置的一个阈值。
S14:将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,对预设数量个缓存条目的值置空且放入到回收队列中。
若当前缓存条目数量大于等于低水位线,则遍历每个分区,从各分区第一队列的尾部开始判断是否存在最近访问时间超过时间阈值的缓存条目,若存在,则最近访问时间超过时间阈值的缓存条目即满足被回收的条件,此时,可以将最近访问时间超过时间阈值的缓存条目从第一队列的尾部移动到第二队列的头部,即利用第二队列保存与第一队列中的缓存条目相比更早时间访问过的缓存条目。与此同时,可以从每个分区中的第二队列的尾部回收预设数量个缓存条目,并对这预设数量个缓存条目的值进行置空,且放入到回收队列中,即将这预设数量个缓存条目回收到回收队列中,以等待其他线程的使用,并通过置空回收减少缓存条目对应的缓存文件对缓存空间的占用。
另外,在第二队列中,缓存条目对应的缓存文件处于关闭状态,在第二队列中的缓存条目被访问时,可以随时将缓存条目对应的缓存文件打开,并放入到第一队列中,并且第二队列中的缓存条目可以随时被置空而回收到回收队列中。
本申请公开的上述技术方案,预先将缓存空间划分为N个分区,每个分区中均对应有第一队列、第二队列和回收队列这三个队列,且在第一队列中缓存条目安装最近访问时间由近到远的顺序进行排列,以便于进行缓存条目的判断和回收,在进行缓存回收时,获取缓存空间中的当前缓存条目数量,若当前缓存条目数量大于等于低水位线,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,且对这预设数量个缓存条目的值置空,然后,放入到回收队列中,以实现在当前缓存条目数量不小于低水位线时对每个分区中的缓存条目的回收,从而降低缓存文件对缓存空间的占用率,以便于提高文件读写效率。
参见图2,其示出了本申请实施例提供的第二种缓存回收方法的流程图。本申请实施例提供的一种缓存回收方法,还可以包括:
若确定当前缓存条目数量小于低水位线,则执行步骤S15。
S15:将缓存回收时间间隔设置为第一预设值;
S16:等待缓存回收时间间隔,并返回执行步骤S12。
在对预设数量个缓存条目的值置空且放入到回收队列中之后,还可以包括:
S16:等待缓存回收时间间隔,并返回执行步骤S12。
若判断出当前缓存条目数量小于低水位线,则表明缓存空间中当前的缓存条目不会对用户读写文件的效率造成太大的影响,因此,可以将缓存回收时间间隔(该缓存回收时间间隔具体为上一轮缓存回收与下一轮缓存回收之间的时间间隔)设置为第一预设值(该第一预设值具体为预先根据缓存回收所设置的时间间隔),并在等待回收时间间隔(在此即为等待第一预设值),然后,则可以返回执行步骤S12。另外,在执行完步骤S14之后,可以等待缓存回收时间间隔并同样返回执行步骤12,以进行下一轮的缓存回收。
需要说明的是,在进行等待的过程中,会接收到新的缓存请求,因此,在每次执行缓存回收时,均需要重新获取缓存空间中的当前缓存条目数量,即每轮的缓存回收均需要从步骤S12开始进行。
由上述可知,本申请中的缓存回收是循环进行的,以达到随时对缓存空间的缓存情况进行检测且在达到回收条件时及时对缓存条目进行回收的效果,从而提高缓存回收的效率,并提高缓存文件读取的效率,进而提高用户体验度。
参见图3,其示出了本申请实施例提供的第三种缓存回收方法的流程图。本申请实施例提供的一种缓存回收方法,在对预设数量个缓存条目的值置空且放入到回收队列中之后,还可以包括:
S17:判断当前缓存条目数量是否大于高水位线;若是,则执行步骤S18,若否,则执行步骤S19。
S18:将缓存回收时间间隔从第一预设值减小为第二预设值;
S19:将缓存回收时间间隔设置为第一预设值;
S20:等待缓存回收时间间隔,并返回执行步骤S12。
在执行完步骤S14之后,判断当前缓存条目数量是否大于高水位线,其中,高水位线具体是根据缓存空间所能缓存容纳的最大缓存条目数量所设置的另一个阈值,而且高水位线大于低水位线。
若当前缓存条目数量大于高水位线,则表明缓存空间中当前的缓存条目会对读写文件的效率造成比较大的影响,为了避免缓存空间中的缓存条目进一步增加,则可以加快缓存回收的频率,即减少缓存回收时间间隔,具体地,可以将缓存回收时间间隔从第一预设值减小为第二预设值,以在相同时间内回收更多的缓存条目。
若当前缓存条目数量不大于高水位线,则表明缓存空间中当前的缓存条目并不会对读写文件的效率造成太大的影响,因此,可以采用预先设置的缓存回收时间间隔进行缓存回收的循环,即可以将缓存回收时间间隔设置为第一预设值。
在对缓存回收时间间隔进行操作处理之后,可以等待缓存回收时间间隔,并在等待缓存回收时间间隔之后,重新下一轮的缓存回收,即返回执行步骤 S12。
本申请实施例提供的一种缓存回收方法,在对预设数量个缓存条目的值置空且放入到回收队列中之后,还可以包括:
S21:获取缓存空间中的回收后缓存条目数量;
在将缓存回收时间间隔从第一预设值减小为第二预设值之后,在执行获取缓存空间中的当前缓存条目数量的步骤之前,还可以包括:
S22:判断回收后缓存条目数量是否大于当前缓存条目数量;若是,则执行步骤S23,若否,则执行步骤S24;
S23:将状况值设置为第一值,并拒绝接收缓存请求;
S24:将状况值设置为第二值,并接收缓存请求。
在执行完步骤S14之后并在执行步骤S17之前,可以获取缓存空间中的回收后缓存条目数量。具体地,可以以步骤S12中获取到的当前缓存条目数量为基础,加上新接收到的缓存请求的数量,并减去被回收的缓存条目的数量,以得到回收后缓存条目数量。
在执行完步骤S18之后,可以判断回收后缓存条目数量是否大于步骤S12 中所获取到的当前缓存条目数量,若是,则表明新接收到的缓存请求的数量大于处理的缓存条目的数量(即大于缓存条目被回收的数量),为了尽量防止缓存空间被更多的缓存条目占用,以提高缓存文件的读写效率,则在加快回收频率的基础上,可以将状况值(具体可以表示为danger)设置为第一值 (具体可以为1,即将danger设置为真),并拒绝接收新到来的缓存请求;若否,则表明新接收到的缓存请求的数量不大于处理的缓存条目的数量,此时,可以将状况值设置为第二值(具体可以为0,即将danger设置为假),并允许接收新的缓存请求。在执行完步骤S22、步骤23和步骤24之后,可以等待缓存回收时间间隔(即执行步骤S20),然后,继续下一轮缓存回收(即返回执行步骤S12)。
本申请实施例提供的一种缓存回收方法,在将缓存回收时间间隔设置为第一预设值时,还可以包括:
将状况值设置为第二值,并接收缓存请求。
在执行上述步骤S19的同时,即在当前缓存条目数量不大于高水位线且将缓存回收时间间隔设置为第一预设值时,可以将状况值设置为第二值,并允许接收新的缓存请求,以使得缓存请求可以正常被接收和处理。
本申请实施例提供的一种缓存回收方法,将缓存回收时间间隔从第一预设值减小为第二预设值,可以包括;
将缓存回收时间间隔从第一预设值减小为第一预设值的一半。
在缩小缓存回收时间间隔,以加快缓存回收频率的过程,可以将缓存回收时间间隔从第一预设值减小为第一预设值的一半。
当然,也可以根据缓存空间的容量以及缓存空间中的当前缓存条目数量来对缓存回收时间间隔所减小的程度进行调整。
本申请实施例提供的一种缓存回收方法,从每个分区中的第二队列的尾部回收预设数量个缓存条目,可以包括:
从每个分区中的第二队列的尾部回收一个缓存条目。
在从每个分区中的第二队列的尾部回收缓存条目时,具体可以每轮缓存回收均从第二队列的尾部回收一个缓存条目到回收队列中(即每轮缓存回收均回收N个缓存条目)。
当然,也可以根据每个分区中所包含的缓存条目的数量情况来对回收的缓存条目数量进行调整,本申请对此不做任何限定。
本申请实施例还提供了一种缓存回收装置,参见图4,其示出了本申请实施例提供的一种缓存回收装置的结构示意图,应用于NFS服务系统,可以包括:
预先划分模块41,用于预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列;在第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;
第一获取模块42,用于获取缓存空间中的当前缓存条目数量,并判断当前缓存条目数量是否小于低水位线;
回收模块43,用于在当前缓存条目数量不小于低水位线时,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目。
本申请实施例提供的一种缓存回收装置,还可以包括:
第一设置模块,用于若确定当前缓存条目数量小于低水位线,则将缓存回收时间间隔设置为第一预设值;
第一执行模块,在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤;
第二执行模块,用于在对预设数量个缓存条目的值置空且放入到回收队列中之后,在等待缓存回收时间间隔后执行获取缓存空间中的当前缓存条目数量的步骤。
本申请实施例提供的一种缓存回收装置,还可以包括:
第一判断模块,用于在对预设数量个缓存条目的值置空且放入到回收队列中之后,判断当前缓存条目数量是否大于高水位线;
第二设置模块,用于在确定当前缓存条目数量大于高水位线时,则将缓存回收时间间隔从第一预设值减小为第二预设值;
第三设置模块,用于在确定当前缓存条目数量不大于高水位线时,则将缓存回收时间间隔设置为第一预设值;
第三执行模块,在等待缓存回收时间间隔后执行获取缓存空间中的当前缓存条目数量的步骤。
本申请实施例提供的一种缓存回收装置,还可以包括:
第二获取模块,用于在对预设数量个缓存条目的值置空且放入到回收队列中之后,获取缓存空间中的回收后缓存条目数量;
第二判断模块,用于在将缓存回收时间间隔从第一预设值减小为第二预设值之后,在执行获取缓存空间中的当前缓存条目数量的步骤之前,判断回收后缓存条目数量是否大于当前缓存条目数量;
第四设置模块,用于在回收后缓存条目数量大于当前缓存条目数量时,则将状况值设置为第一值,并拒绝接收缓存请求;
第五设置模块,用于在回收后缓存条目数量不大于当前缓存条目数量时,则将状况值设置为第二值,并接收缓存请求。
本申请实施例提供的一种缓存回收装置,还可以包括:
第六设置模块,用于将状况值设置为第二值,并接收缓存请求。
本申请实施例提供的一种缓存回收装置,回收模块可以包括:
回收单元,用于从每个分区中的第二队列的尾部回收一个缓存条目。
本申请实施例还提供了一种缓存回收设备,参见图5,其示出了本申请实施例提供的一种缓存回收设备的结构示意图,可以包括:
存储器51,用于存储计算机程序;
处理器52,用于执行上述存储器51存储的计算机程序时可实现如下步骤:
预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列;在第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;获取缓存空间中的当前缓存条目数量,并判断当前缓存条目数量是否小于低水位线;若否,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,对预设数量个缓存条目的值置空且放入到回收队列中。
本申请实施例还提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行可实现如下步骤:
预先将缓存空间划分为N个分区,每个分区均包含第一队列、第二队列和回收队列;在第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;获取缓存空间中的当前缓存条目数量,并判断当前缓存条目数量是否小于低水位线;若否,则将第一队列中最近访问时间超过时间阈值的缓存条目移动到第二队列的头部,并从每个分区中的第二队列的尾部回收预设数量个缓存条目,对预设数量个缓存条目的值置空且放入到回收队列中。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种缓存回收装置、设备及可读存储介质中相关部分的说明请参见本申请实施例提供的一种缓存回收方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种缓存回收方法,其特征在于,应用于NFS服务系统,包括:
预先将缓存空间划分为N个分区,每个所述分区均包含第一队列、第二队列和回收队列;在所述第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;
获取所述缓存空间中的当前缓存条目数量,并判断所述当前缓存条目数量是否小于低水位线;
若否,则将所述第一队列中最近访问时间超过时间阈值的缓存条目移动到所述第二队列的头部,并从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目,对所述预设数量个缓存条目的值置空且放入到所述回收队列中;
在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,还包括:
判断所述当前缓存条目数量是否大于高水位线;
若是,则将缓存回收时间间隔从第一预设值减小为第二预设值;
若否,则将所述缓存回收时间间隔设置为所述第一预设值;
在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤。
2.根据权利要求1所述的缓存回收方法,其特征在于,还包括:
若确定所述当前缓存条目数量小于所述低水位线,则将缓存回收时间间隔设置为第一预设值;
在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤。
3.根据权利要求1所述的缓存回收方法,其特征在于,在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,还包括:
获取所述缓存空间中的回收后缓存条目数量;
在将所述缓存回收时间间隔从第一预设值减小为第二预设值之后,在执行所述获取所述缓存空间中的当前缓存条目数量的步骤之前,还包括:
判断所述回收后缓存条目数量是否大于所述当前缓存条目数量;
若是,则将状况值设置为第一值,并拒绝接收缓存请求;
若否,则将所述状况值设置为第二值,并接收所述缓存请求。
4.根据权利要求3所述的缓存回收方法,其特征在于,在将缓存回收时间间隔设置为第一预设值时,还包括:
将所述状况值设置为所述第二值,并接收所述缓存请求。
5.根据权利要求1所述的缓存回收方法,其特征在于,将所述缓存回收时间间隔从所述第一预设值减小为第二预设值,包括;
将所述缓存回收时间间隔从所述第一预设值减小为所述第一预设值的一半。
6.根据权利要求1所述的缓存回收方法,其特征在于,从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目,包括:
从每个所述分区中的所述第二队列的尾部回收一个缓存条目。
7.一种缓存回收装置,其特征在于,应用于NFS服务系统,包括:
预先划分模块,用于预先将缓存空间划分为N个分区,每个所述分区均包含第一队列、第二队列和回收队列;在所述第一队列中,缓存条目按照最近访问时间由近到远的顺序进行排列;
第一获取模块,用于获取所述缓存空间中的当前缓存条目数量,并判断所述当前缓存条目数量是否小于低水位线;
回收模块,用于在所述当前缓存条目数量不小于所述低水位线时,则将所述第一队列中最近访问时间超过时间阈值的缓存条目移动到所述第二队列的头部,并从每个所述分区中的所述第二队列的尾部回收预设数量个缓存条目,对所述预设数量个缓存条目的值置空且放入到所述回收队列中;
还包括:
第一判断模块,用于在对所述预设数量个缓存条目的值置空且放入到所述回收队列中之后,判断所述当前缓存条目数量是否大于高水位线;
第二设置模块,用于在确定所述当前缓存条目数量大于所述高水位线时,则将缓存回收时间间隔从第一预设值减小为第二预设值;
第三设置模块,用于在确定所述当前缓存条目数量不大于所述高水位线时,则将所述缓存回收时间间隔设置为所述第一预设值;
第三执行模块,用于在等待所述缓存回收时间间隔后执行所述获取所述缓存空间中的当前缓存条目数量的步骤。
8.一种缓存回收设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的缓存回收方法。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的缓存回收方法。
CN201910926619.8A 2019-09-27 2019-09-27 一种缓存回收方法、装置、设备及可读存储介质 Active CN110688226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910926619.8A CN110688226B (zh) 2019-09-27 2019-09-27 一种缓存回收方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910926619.8A CN110688226B (zh) 2019-09-27 2019-09-27 一种缓存回收方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110688226A CN110688226A (zh) 2020-01-14
CN110688226B true CN110688226B (zh) 2023-01-10

Family

ID=69110786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910926619.8A Active CN110688226B (zh) 2019-09-27 2019-09-27 一种缓存回收方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110688226B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269768A (zh) * 2020-10-16 2021-01-26 苏州浪潮智能科技有限公司 一种页面缓存回收方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440207A (zh) * 2013-07-31 2013-12-11 北京智谷睿拓技术服务有限公司 缓存方法及装置
WO2017000673A1 (zh) * 2015-06-29 2017-01-05 深圳市中兴微电子技术有限公司 一种共享缓存分配方法、装置及计算机存储介质
CN107704401A (zh) * 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储系统中缓存数据的置换方法、系统及存储系统
CN108763103A (zh) * 2018-05-24 2018-11-06 郑州云海信息技术有限公司 一种内存管理方法、装置、系统及计算机可读存储介质
CN109428829A (zh) * 2017-08-24 2019-03-05 中兴通讯股份有限公司 多队列缓存管理方法、装置及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440207A (zh) * 2013-07-31 2013-12-11 北京智谷睿拓技术服务有限公司 缓存方法及装置
WO2017000673A1 (zh) * 2015-06-29 2017-01-05 深圳市中兴微电子技术有限公司 一种共享缓存分配方法、装置及计算机存储介质
CN109428829A (zh) * 2017-08-24 2019-03-05 中兴通讯股份有限公司 多队列缓存管理方法、装置及存储介质
CN107704401A (zh) * 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储系统中缓存数据的置换方法、系统及存储系统
CN108763103A (zh) * 2018-05-24 2018-11-06 郑州云海信息技术有限公司 一种内存管理方法、装置、系统及计算机可读存储介质

Also Published As

Publication number Publication date
CN110688226A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
US10599637B2 (en) Granular buffering of metadata changes for journaling file systems
EP4068070A1 (en) Data storage method and apparatus, and storage system
US8161240B2 (en) Cache management
CN108829344A (zh) 数据存储方法、装置及存储介质
CN102782683A (zh) 用于数据库服务器的缓冲池扩展
CN107943719B (zh) 一种基于请求分类的闪存转换层控制方法
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
CN106528000B (zh) 一种数据存储装置及其读写性能优化方法、系统
CN108108089B (zh) 一种图片加载方法及装置
CN111880731B (zh) 一种数据处理方法、装置及相关组件
CN111274039A (zh) 内存回收方法、装置、存储介质及电子设备
CN111857597A (zh) 一种热点数据缓存方法、系统及相关装置
CN110688226B (zh) 一种缓存回收方法、装置、设备及可读存储介质
CN113687781A (zh) 一种热数据的上拉方法、装置、设备及介质
CN112000281A (zh) 一种存储系统重删元数据的缓存方法、系统及装置
CN106648457A (zh) 更新反向映射元数据的方法及装置
CN108958660B (zh) 分布式存储系统及其数据处理方法和装置
US20170262485A1 (en) Non-transitory computer-readable recording medium, data management device, and data management method
US7509461B1 (en) Method and apparatus for intelligent buffer cache pre-emption
CN110362769B (zh) 一种数据处理方法及装置
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
CN114115744A (zh) 数据回收任务的控制方法、装置、电子设备及存储介质
CN112269768A (zh) 一种页面缓存回收方法、装置、设备及存储介质
CN112035253A (zh) 一种linux系统页缓存回收方法及相关装置
CN115328856B (zh) 一种文件页管理的方法、装置及电子设备

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