一种分布式存储的数据缓存方法和装置

文档序号:948184 发布日期:2020-10-30 浏览:17次 >En<

阅读说明:本技术 一种分布式存储的数据缓存方法和装置 (Data caching method and device for distributed storage ) 是由 陈东河 于 2020-07-10 设计创作,主要内容包括:本发明公开了一种分布式存储的数据缓存方法和装置,方法包括:响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存未命中而进一步判断缓存空间是否足够;响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够。本发明能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染。(The invention discloses a data caching method and a data caching device for distributed storage, wherein the method comprises the following steps: judging whether the cache hits data read-write access related data or not in response to the occurrence of the data read-write access; providing data reading and writing based on the cache in response to the cache hit, and updating the cache heat table according to the data reading and writing access; further determining whether cache space is sufficient in response to the cache miss; loading relevant data to a cache in response to the cache space being sufficient, providing data reading and writing based on the cache, and updating a cache heat table according to data reading and writing access; and determining the heat of all the data in the cache according to the updated cache heat table in response to the insufficient cache space, and continuously deleting the low-heat cache data until the cache space is enough. The invention can improve the cache hit rate, eliminate out-of-date hot data when the cache is insufficient, and eliminate cache pollution.)

一种分布式存储的数据缓存方法和装置

技术领域

本发明涉及分布式存储领域,更具体地,特别是指一种分布式存储的数据缓存方法和装置。

背景技术

缓存是用来存储数据的硬件或软件的组成部分,以使得后续更快访问相应数据,主要解决高并发、大数据场景下热点数据访问的性能问题,提供高性能的数据快速访问。缓存是实现提高分布式存储读写性能的一个主要技术手段,缓存的命中率是影响读写性能的重要指标,如何提高缓存命中率是本领域人员研究的一个主要问题。

LRU(最近最少使用)算法是使用比较广泛的一个缓存实现算法,根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。优点是实现简单,当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。

针对现有技术中LRU命中率低、缓存污染严重的问题,目前尚无有效的解决方案。

发明内容

有鉴于此,本发明实施例的目的在于提出一种分布式存储的数据缓存方法和装置,能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染。

基于上述目的,本发明实施例的第一方面提供了一种分布式存储的数据缓存方法,包括执行以下步骤:

响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;

响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存未命中而进一步判断缓存空间是否足够;

响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够。

在一些实施方式中,更新缓存热度表记载有所有数据的最后访问时间和最后访问间隔,其中最后访问间隔为最后访问时间与倒数第二次访问时间之差;

根据数据读写访问更新缓存热度表包括:将数据读写访问的时间戳与更新缓存热度表中相关数据的最后访问时间之差覆盖性地记录为相关数据的最后访问间隔,并将将数据读写访问的时间戳覆盖性地记录为相关数据的最后访问时间。

在一些实施方式中,根据更新缓存热度表确定缓存中所有数据的热度,包括对缓存中所有数据均执行以下步骤:确定当前时间,并基于当前时间与最后访问时间之差确定经过时间;基于最后访问间隔与经过时间之商确定热度。

在一些实施方式中,方法还包括:响应于特定缓存数据仅被访问过一次因而不存在倒数第二次访问时间,而直接将其热度确定为1。

在一些实施方式中,方法还包括:响应于根据更新缓存热度表确定缓存中所有数据的热度,而将热度写入更新缓存热度表。

本发明实施例的第二方面提供了一种分布式存储的数据缓存装置,包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;

响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存未命中而进一步判断缓存空间是否足够;

响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够。

在一些实施方式中,更新缓存热度表记载有所有数据的最后访问时间和最后访问间隔,其中最后访问间隔为最后访问时间与倒数第二次访问时间之差;

根据数据读写访问更新缓存热度表包括:将数据读写访问的时间戳与更新缓存热度表中相关数据的最后访问时间之差覆盖性地记录为相关数据的最后访问间隔,并将将数据读写访问的时间戳覆盖性地记录为相关数据的最后访问时间。

在一些实施方式中,根据更新缓存热度表确定缓存中所有数据的热度,包括对缓存中所有数据均执行以下步骤:确定当前时间,并基于当前时间与最后访问时间之差确定经过时间;基于最后访问间隔与经过时间之商确定热度。

在一些实施方式中,前述步骤还包括:响应于特定缓存数据仅被访问过一次因而不存在倒数第二次访问时间,而直接将其热度确定为1。

在一些实施方式中,前述步骤还包括:响应于根据更新缓存热度表提供确定缓存中所有数据的热度,而将热度写入更新缓存热度表。

本发明具有以下有益技术效果:本发明实施例提供的分布式存储的数据缓存方法和装置,通过响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存未命中而进一步判断缓存空间是否足够;响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够的技术方案,能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染。

附图说明

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

图1为本发明提供的分布式存储的数据缓存方法的流程示意图;

图2为本发明提供的分布式存储的数据缓存方法的详细流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了一种能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染的分布式存储的数据缓存方法的一个实施例。图1示出的是本发明提供的分布式存储的数据缓存方法的流程示意图。

所述的分布式存储的数据缓存方法,如图1所示,包括执行以下步骤:

步骤S101:响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;

步骤S103:响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

步骤S105:响应于缓存未命中而进一步判断缓存空间是否足够;

步骤S107:响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

步骤S109:响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

在一些实施方式中,更新缓存热度表记载有所有数据的最后访问时间和最后访问间隔,其中最后访问间隔为最后访问时间与倒数第二次访问时间之差;

根据数据读写访问更新缓存热度表包括:将数据读写访问的时间戳与更新缓存热度表中相关数据的最后访问时间之差覆盖性地记录为相关数据的最后访问间隔,并将将数据读写访问的时间戳覆盖性地记录为相关数据的最后访问时间。

在一些实施方式中,根据更新缓存热度表确定缓存中所有数据的热度,包括对缓存中所有数据均执行以下步骤:确定当前时间,并基于当前时间与最后访问时间之差确定经过时间;基于最后访问间隔与经过时间之商确定热度。

在一些实施方式中,方法还包括:响应于特定缓存数据仅被访问过一次因而不存在倒数第二次访问时间,而直接将其热度确定为1。

在一些实施方式中,方法还包括:响应于根据更新缓存热度表提供确定缓存中所有数据的热度,而将热度写入更新缓存热度表。

本发明提出了一种分布式存储缓存实现方法。缓存数据命中率高,说明单位时间内被访问次数多,即每次被访问的时间间隔小,但当业务切换时历史的热度高的缓存数据需要尽快老化从缓存中退出。因此,本发明在LRU算法基础上,引入缓存数据最近一次被访问时间间隔来代表缓存数据平均被访问的时间间隔,时间间隔越小的代表缓存数据热度越高,被命中的概率越大。另通过记录最后一次被访问时间戳,来快速识别释放热度高的过期缓存数据,综合建立如下公式来计算当前缓存数据热度:

y=d/(t1-t2)

其中y为缓存数据热度,d为缓存数据最后一次被访问的时间间隔,t1为缓存数据淘汰计算时的当前时间,t2为缓存数据被访问的最后一次时间戳。(t1-t2)/d代表从最后一次被访问到当前时间这段时间内,按照被访问时间间隔d计算,该缓存数据理论上应该被访问的次数,值越大表明应该被访问的次数越多(实际上未被访问),因此取倒数,d/(t1-t2)代表缓存数据的热度。

下面根据如图2所示的具体实施例进一步阐述本发明的具体实施方式。发生数据读写访问时,判断缓存是否命中,若命中则直接更新缓存热度表;若未命中缓存,判断当前缓存是否已满,若已满,则计算淘汰低热度缓存数据,将新数据加入缓存,更新缓存热度表;若缓存未满,将新数据加入缓存,更新缓存热度表。

例如:数据A、B、C、D、E第一次读写访问时通过LRU算法缓存数据,记录如下:

数据 最后一次访问时间戳 最近一次访问时间间隔
A 10:20
B 10:15
C 10:10
D 10:05
E 10:00

当数据B、C、D被第二次访问时缓存中数据记录如下:

数据 最后一次访问时间戳 最近一次访问时间间隔
A 10:20
B 10:25 10
C 10:30 20
D 10:35 30
E 10:00

假设当前时间11:00,有新数据F被访问,计算当前缓存数据中各数据的热度:

缓存数据A和E由于只被访问了一次,没有最近一次访问时间间隔,热度值均设置为1;缓存数据B最近一次访问时间间隔为10分钟,最后一次访问时间为10:25,当前时间是11:00,理论上应该被访问了35/10=3.5次,但并未被访问,所以属于热度过期,热度值计算为y=10/(11:00-10:25)=2/7=0.2857;同理缓存数据C也属于热度过期,热度值为y=20/(11:00-10:30)=2/3=0.6667,相较于缓存数据B,热度过期轻微;缓存数据D最近一次访问时间间隔为30分钟,最后一次访问时间为10:35,当前时间是11:00,理论上11:05应该被再访问,属于马上会被访问的热度数据,热度值为y=30/(11:00-10:35)=6/5=1.2;

所以当前缓存中的数据热度值排序如下(热度值相同时最后一次被访问时间靠前的热度低):

Figure BDA0002578900930000091

所以缓存数据中B热度最低应该退出缓存,新访问的数据F由于热度是1,被访问时间是当前的11:00,应该加入缓存,如下B退出缓存F新加入缓存:

上述实施例可以看出,本发明实施例提供的分布式存储的数据缓存方法,通过响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存未命中而进一步判断缓存空间是否足够;响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够的技术方案,能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染。

需要特别指出的是,上述分布式存储的数据缓存方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于分布式存储的数据缓存方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染的分布式存储的数据缓存装置的一个实施例。分布式存储的数据缓存装置包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;

响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存未命中而进一步判断缓存空间是否足够;

响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;

响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够。

在一些实施方式中,更新缓存热度表记载有所有数据的最后访问时间和最后访问间隔,其中最后访问间隔为最后访问时间与倒数第二次访问时间之差;

根据数据读写访问更新缓存热度表包括:将数据读写访问的时间戳与更新缓存热度表中相关数据的最后访问时间之差覆盖性地记录为相关数据的最后访问间隔,并将将数据读写访问的时间戳覆盖性地记录为相关数据的最后访问时间。

在一些实施方式中,根据更新缓存热度表确定缓存中所有数据的热度,包括对缓存中所有数据均执行以下步骤:确定当前时间,并基于当前时间与最后访问时间之差确定经过时间;基于最后访问间隔与经过时间之商确定热度。

在一些实施方式中,前述步骤还包括:响应于特定缓存数据仅被访问过一次因而不存在倒数第二次访问时间,而直接将其热度确定为1。

在一些实施方式中,前述步骤还包括:响应于根据更新缓存热度表提供确定缓存中所有数据的热度,而将热度写入更新缓存热度表。

从上述实施例可以看出,本发明实施例提供的分布式存储的数据缓存装置,通过响应于发生数据读写访问而判断缓存是否命中数据读写访问相关数据;响应于缓存命中而基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存未命中而进一步判断缓存空间是否足够;响应于缓存空间足够而将相关数据加载到缓存,基于缓存提供数据读写,并根据数据读写访问更新缓存热度表;响应于缓存空间不足而根据更新缓存热度表确定缓存中所有数据的热度,持续删除低热度缓存数据直到缓存空间足够的技术方案,能够提高缓存命中率并在缓存不足时淘汰过期热数据,清除缓存污染。

需要特别指出的是,上述分布式存储的数据缓存装置的实施例采用了所述分布式存储的数据缓存方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述分布式存储的数据缓存方法的其他实施例中。当然,由于所述分布式存储的数据缓存方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述分布式存储的数据缓存装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种使SPI主控兼容flash芯片的方法、装置、设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类