一种缓存空间回收方法、装置、设备以及存储系统与流程

文档序号:17398240发布日期:2019-04-13 00:59阅读:236来源:国知局
一种缓存空间回收方法、装置、设备以及存储系统与流程

本发明涉及存储技术领域,特别是涉及一种缓存空间回收方法、装置、设备、存储系统以及计算机可读存储介质。



背景技术:

缓存作为一种数据交换的缓冲区,在各类系统中得到了广泛的应用。存储系统具有高并发、大数据、热点数据访问等特性,通过使用缓存技术可以有效的提高存储系统性能。当然,缓存空间也不是无限大,当缓存中的数据接近系统缓存容量时,就需要把缓存中的部分数据刷写到后端硬盘中。好的缓存空间回收机制可以有效的利用有限的缓存空间最大限度的提高系统的性能。



技术实现要素:

本发明的目的是提供一种缓存空间回收方法、装置、设备、存储系统以及计算机可读存储介质,以有效的利用有限的缓存空间最大限度的提高系统的性能。

为解决上述技术问题,本发明提供一种缓存空间回收方法,包括:

检测缓存空间的空间使用量;

调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略;

采用确定得到的所述缓存数据下刷策略,对缓存空间中的数据进行下刷。

可选地,所述检测缓存空间的空间使用量包括:

按照预设触发周期检测缓存空间的空间使用量。

可选地,所述调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略包括:

当空间使用量超过总空间的第一阈值时,开启脏数据下刷功能,在系统空闲时间进行数据下刷;

当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述第一阈值小于所述第二阈值。

可选地,所述当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据包括:

当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述线程的数量与空间使用量对应成正比。

可选地,所述调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略还包括:

当空间使用量超过总空间的第三阈值时,对于未命中缓存的读写访问请求,则禁止同步访问数据到缓存空间中,所述第三阈值大于所述第二阈值。

可选地,所述第一阈值为60%,所述第二阈值为75%,所述第三阈值为95%。

本申请还提供了一种缓存空间回收装置,包括:

检测模块,用于检测缓存空间的空间使用量;

确定模块,用于调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略;

下刷模块,用于采用确定得到的所述缓存数据下刷策略,对缓存空间中的数据进行下刷。

本申请还提供了一种缓存空间回收设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种所述缓存空间回收方法的步骤。

本申请还提供了一种存储系统,所述存储系统包括上述所述的缓存空间回收设备。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述缓存空间回收方法的步骤。

本发明所提供的缓存空间回收方法,通过检测缓存空间的空间使用量;调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与空间使用量对应的缓存数据下刷策略;采用确定得到的缓存数据下刷策略,对缓存空间中的数据进行下刷。本申请根据缓存空间空间使用量的不同,采用不同的刷写机制,在不破坏热点数据的情况下尽可能回收缓存空间。通过合理的利用系统资源,能够大大提高系统的性能。此外,本申请还提供了一种缓存空间回收装置、设备、存储系统以及计算机可读存储介质,同样具有上述技术效果。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请所提供的缓存空间回收方法的一种具体实施方式的流程图;

图2为本申请所提供的缓存空间回收方法的另一种具体实施方式的流程图;

图3为本发明实施例提供的缓存空间回收装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请所提供的缓存空间回收方法的一种具体实施方式的流程图如图1所示,该方法包括:

步骤s101:检测缓存空间的空间使用量;

作为一种具体实施方式,可以按照预设触发周期检测缓存空间的空间使用量。具体地,可以通过定时器定时触发查询缓存空间的空间使用量。

步骤s102:调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略;

本申请中不同的空间使用量对应不同的缓存数据下刷策略。通过预先建立空间使用量与缓存数据下刷策略之间的对应关系,在检测到当前缓存空间的空间使用量之后,从该对应关系中查找对应所采用的缓存下刷策略。根据缓存空间中空间使用量的不同,开启不同数量的并发线程下刷缓存中的脏数据。当缓存中空间使用量比较多时,例如大于第一阈值(60%)时,可以开启缓慢下刷功能,只在系统空闲时间进行数据下刷。当缓存中空间使用量越来越少时,例如大于第二阈值(75%)时,开启并发模式下刷缓存数据,此时重点处理写访问请求。

步骤s103:采用确定得到的所述缓存数据下刷策略,对缓存空间中的数据进行下刷。

本发明所提供的缓存空间回收方法,通过检测缓存空间的空间使用量;调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与空间使用量对应的缓存数据下刷策略;采用确定得到的缓存数据下刷策略,对缓存空间中的数据进行下刷。本申请根据缓存空间空间使用量的不同,采用不同的刷写机制,在不破坏热点数据的情况下尽可能回收缓存空间。通过合理的利用系统资源,能够大大提高系统的性能。

在上述实施例的基础上,本申请所提供的缓存空间回收方法在缓存空间的空间使用量不同时,分别采用不同的缓存数据下刷策略。作为一种具体实施方式,可以为:

当空间使用量超过总空间的第一阈值时,开启脏数据下刷功能,在系统空闲时间进行数据下刷;

当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述第一阈值小于所述第二阈值;

当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述线程的数量与空间使用量对应成正比。

该过程还可以进一步包括:当空间使用量超过总空间的第三阈值时,对于未命中缓存的读写访问请求,则禁止同步访问数据到缓存空间中,所述第三阈值大于所述第二阈值。

下面以第一阈值为60%,第二阈值为75%,第三阈值为95%为例,对本申请所提供的缓存空间回收方法进行进一步详细阐述。参照图2,本申请所提供的另一具体实施方式的流程图,该过程包括:

步骤s201:通过定时器定时查询缓存空间的空间使用量;

步骤s202:当缓存空间的空间使用量超过总空间的60%、75%、85%、95%时,分别采用不同的缓存数据下刷策略,具体为:

步骤s2021:缓存空间的空间使用量超过总空间的60%时,则开启脏数据下刷功能。

设置每个刷写周期(eg:50ms)内刷写脏数据块的数量,一旦指定数据量的脏数据块刷写完成,则停止下刷数据。这个阶段可以认为是缓慢下刷脏数据的过程,只在系统空闲期间下刷脏数据。

步骤s2022:当缓存空间的空间使用量超过总空间的75%时,则开启多条线程同时下刷数据。

此时,对于写缓存请求,一旦缓存中数据被修改,则立即下刷脏数据。对于读缓存访问请求,则根据步骤s2021中的机制刷写非热点数据。直到缓存空间使用量低于65%,则切换到步骤s2021中的刷写模式。

步骤s2023:当缓存空间的空间使用量高于85%时,则开启更多的线程并发刷写数据,开启是并发线程的数量为步骤s2022中线程数量的倍数。此时,是在步骤s2022的基础上按照设定的刷写率刷写非热点数据。

步骤s2024:当缓存缓存空间使用量高于95%时,为了防止缓存溢出,对于未命中缓存的读写访问请求,则禁止同步访问数据到缓存空间。

本申请通过合理的设计缓存空间分阶,根据缓存空间中剩余可用空间的不同,开启不同数量的并发线程下刷缓存中的脏数据,能够合理的利用系统资源,提高系统的性能。当缓存中剩余可用空间比较多是,可以开启缓慢下刷功能,只在系统空闲时间进行数据下刷。当缓存中可用缓存空间越来越少时,开启并发模式下刷缓存数据,此时重点处理写访问请求,当缓存可用空间达到预警极限时,为了防止缓存溢出,对于未命中缓存的读写访问请求,则禁止同步访问数据到缓存空间。

下面对本发明实施例提供的缓存空间回收装置进行介绍,下文描述的缓存空间回收装置与上文描述的缓存空间回收方法可相互对应参照。

图3为本发明实施例提供的缓存空间回收装置的结构框图,参照图3缓存空间回收装置可以包括:

检测模块100,用于检测缓存空间的空间使用量;

确定模块200,用于调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与所述空间使用量对应的缓存数据下刷策略;

下刷模块300,用于采用确定得到的所述缓存数据下刷策略,对缓存空间中的数据进行下刷。

作为一种具体实施方式,本申请所提供的缓存空间回收装置中检测模块100用于按照预设触发周期检测缓存空间的空间使用量。

作为一种具体实施方式,本申请所提供的缓存空间回收装置中确定模块200用于:

当空间使用量超过总空间的第一阈值时,开启脏数据下刷功能,在系统空闲时间进行数据下刷;当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述第一阈值小于所述第二阈值。

作为一种具体实施方式,本申请所提供的缓存空间回收装置中确定模块200用于:当空间使用量超过总空间的第二阈值时,开启多个线程同时下刷数据,所述线程的数量与空间使用量对应成正比。

作为一种具体实施方式,本申请所提供的缓存空间回收装置中确定模块200还用于:当空间使用量超过总空间的第三阈值时,对于未命中缓存的读写访问请求,则禁止同步访问数据到缓存空间中,所述第三阈值大于所述第二阈值。

本实施例的缓存空间回收装置用于实现前述的缓存空间回收方法,因此缓存空间回收装置中的具体实施方式可见前文中的缓存空间回收方法的实施例部分,例如,检测模块100,确定模块200,下刷模块300,分别用于实现上述缓存空间回收方法中步骤s101,s102,s103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明所提供的缓存空间回收方法,通过检测缓存空间的空间使用量;调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与空间使用量对应的缓存数据下刷策略;采用确定得到的缓存数据下刷策略,对缓存空间中的数据进行下刷。本申请根据缓存空间空间使用量的不同,采用不同的刷写机制,在不破坏热点数据的情况下尽可能回收缓存空间。通过合理的利用系统资源,能够大大提高系统的性能。

此外,本申请还提供了一种缓存空间回收设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种所述缓存空间回收方法的步骤。

本申请还提供了一种存储系统,所述存储系统包括上述所述的缓存空间回收设备。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述缓存空间回收方法的步骤。

本申请所提供的缓存空间回收设备、存储系统以及计算机可读存储介质,与上述缓存空间回收方法相对应,其具体实施方式可以互相参照,在此不再赘述。

综上,本申请通过检测缓存空间的空间使用量;调用不同的空间使用量与缓存数据下刷策略的对应关系,确定与空间使用量对应的缓存数据下刷策略;采用确定得到的缓存数据下刷策略,对缓存空间中的数据进行下刷。本申请根据缓存空间空间使用量的不同,采用不同的刷写机制,在不破坏热点数据的情况下尽可能回收缓存空间。通过合理的利用系统资源,能够大大提高系统的性能。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的缓存空间回收方法、装置、设备、存储系统以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1