1.本发明涉及大数据存储系统设计领域,特别涉及一种基于权重的健值存储缓存淘汰方法、系统及存储介质。
背景技术:
2.缓存淘汰方法是缓存系统的核心,是缓存命中率的决定因素。目前业界常用的缓存淘汰方法是基于lru(least recently used,最近最少使用),lfu(least frequently used,最不经常使用)以及由lru/lfu衍生出来的一些组合或者局部优化算法。当前广泛应用于工业界的kv(key-value,键值存储)缓存系统主要有redis,memcached等等。redis支持随机采样的lru算法,同时也支持lfu算法。memcached淘汰策略是基于lru到期失效,到期失效采用的是延迟模式,在访问key的时候触发。使用单独的缓存淘汰策略,存在的问题是只能在一些特定的工作负载表现较好,具体如下:(1)基于lru的算法在热点访问的模式下有较高的命中率,但是偶发性的、周期性的批量操作和扫描会导致lru命中率急剧下降,缓存污染情况比较严重。(2)基于lfu的算法可以有效解决扫描带来的缓存污染问题,但是lfu需要更长时间来适用新的访问模式,计算开销比lru大。
3.因此业界有一些关于融合lru和lfu的衍生算法,例如广泛应用的arc算法,根据工作负载自适应调整lru和lfu的比例,能适应较多的工作负载。由于kv缓存系统,具有如下特点:(1)存储的对象大小不一,object(一个object包含一个key-value)的大小区间可能是从几个byte到几十mb。(2)工作负载多变,kv系统可能用于缓存数据库,图片,视频等多种应用数据。这些特点给目前常用的缓存淘汰方法带来了一些技术挑战。对于kv缓存系统来说,这些淘汰算法普遍存在以下问题:
4.(1)目前的淘汰算法中都是假设object的大小区间是相同的,该假设会降低kv缓存命中率;(2)不能适用于多种负载,无法做到自适应,当工作负载发生变化时,需要一些人工的调参来达到较高的缓存命中率;(3)无法支持用户指定object优先级,不能灵活支持用户的一些特殊需求。例如在同时支持多种应用的缓存系统,用户可能需要优先缓存一些最重要的数据;(4)一些算法实现采用的数据结构需要全局的同步,可扩展性不高,存在性能瓶颈。
5.基于上述原因,需要提出一种适用于kv缓存系统的缓存淘汰方法。
技术实现要素:
6.本发明要解决的技术问题是现有缓存淘汰方法不适用于kv缓存系统中的问题,为此,本发明提出了一种基于权重的健值存储缓存淘汰方法、系统及存储介质。
7.针对上述技术问题,本发明提供如下技术方案:
8.本发明一些实施例中提供一种基于权重的健值存储缓存淘汰方法,包括如下步骤:
9.响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的
权重影响因素;
10.根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;
11.将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;
12.删除所述最终淘汰数据。
13.本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素的步骤之前还包括:
14.获取存储系统的水位线,若所述水位线超过设定阈值,则生成所述缓存淘汰触发信号。
15.本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,所述响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素的步骤中:
16.通过预设采样策略选择候选淘汰数据,所述预设采样策略包括随机采样策略、全局扫描策略或部分扫描策略;
17.所述权重影响因素包括所述候选淘汰数据的对象大小、访问次数、时间戳、命中次数和优先级。
18.本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,通过如下算法确定所述权重值:
19.weight
total
=k*(r*weight
lru
+(1-r)*weight
lfu
)+max_value*priority
user
;
20.其中,k为权重系数,取值范围为(0,1),k的取值随所述候选淘汰数据的对象大小的增大而减小;r是lru算法权重的比例,取值范围为[0,1];(1-r)为lfu算法权重的比例;weight
lru
和weight
lfu
的取值区间均为[0,255];max_value的取值为255;priority
user
的取值为正整数。
[0021]
本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,所述根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中:
[0022]
weight
lru
根据当前时间t
current
和所述候选淘汰数据的最近一次访问时间t
last
的差值δ得到,其算法公式为:
[0023][0024]
δ=t
current-t
last
;
[0025]
其中,c1、c2、c3、c4为常数值;k1、k2、k3、k4为系数;以及a1、a2和a3为常数值,其中:c2=c
1-k1*a1;c3=c
2-k2*a2;c4=c
3-k3*a3。
[0026]
本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,所述根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中:
[0027]
weight
lfu
的算法公式为:
[0028]
weight
lfu
=val(morris
counter
)-(t
current-t
last
)/t
decay
;
[0029]
其中,morris-counter的取值区间在[0,255],数据的每一次被访问,morris-counter的计数按设定规则增加;t
decay
为可配置常数。
[0030]
本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,权重系数k的算法公式为:
[0031][0032]
其中:m为常数,m的取值范围为[4,32]kb;object size为对象大小。
[0033]
本发明一些实施例中所述的基于权重的健值存储缓存淘汰方法,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,lru算法权重的比例r通过如下方式进行设定:
[0034]
获取用户输入的指定值;或,
[0035]
确定存储系统的工作负载模式,根据所述工作负载模式选取适应的比例。
[0036]
本发明一部分实施例中还提供一种基于权重的健值存储缓存淘汰系统,包括:
[0037]
数据存储组件,用于将存储系统收到的kv数据部分进行存储;
[0038]
元数据存储组件,用于将所述数据存储组件中kv数据的元数据进行存储,所述元数据包括权重影响因素;
[0039]
淘汰算法执行组件,包括采样/扫描模块、权重计算和选择模块、权重调整模块和执行模块,其中:
[0040]
所述采样/扫描模块,用于根据通过预设采样策略从所述数据存储组件和所述元数据存储组件中选择候选淘汰数据和权重影响因素;
[0041]
所述权重计算和选择模块,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;
[0042]
所述权重调整模块,用于调整所述候选淘汰数据的权重值运算过程中lru算法和lfu算法权重的比例;
[0043]
所述执行模块,删除所述数据存储组件中的所述最终淘汰数据以及所述元数据存储组件中与所述最终淘汰数据相关的元数据。
[0044]
本发明一部分实施例中还提供一种存储介质,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行以上任一项所述的基于权重的健值存储缓存淘汰方法。
[0045]
本发明的技术方案相对现有技术具有如下技术效果:
[0046]
本发明提供的基于权重的健值存储缓存淘汰方法、系统及存储介质,在获取候选淘汰数据后,再次依据候选淘汰数据的权重影响因素(如对象大小、命中次数等)对候选淘汰数据的权重值进行计算,最终选择出权重值最低的n个候选淘汰数据作为最终淘汰数据,删除最终淘汰数据。本方案中,相比于现有比lru淘汰算法和lfu淘汰算法及二者的简单结
合,具有更好的命中率,同时能够适用于存储对象大小不同、负载多变等情况,是一种更加适用于kv缓存系统的缓存淘汰方案。
附图说明
[0047]
下面将通过附图详细描述本发明中优选实施例,将有助于理解本发明的目的和优点,其中:
[0048]
图1为本发明一个实施例所述基于权重的健值存储缓存淘汰方法的流程图;
[0049]
图2为本发明另一个实施例所述基于权重的健值存储缓存淘汰方法的流程图;
[0050]
图3为本发明一个实施例所述基于权重的健值存储缓存淘汰系统的硬件结构连接示意图;
[0051]
图4为本发明另一个实施例所述基于权重的健值存储缓存淘汰系统的结构框图。
具体实施方式
[0052]
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0054]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0055]
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0056]
本实施例提供一种基于权重的健值存储缓存淘汰方法,可应用于kv缓存系统中,如图1所示,包括如下步骤:
[0057]
s101:响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素。缓存淘汰发触发信号可以是用户预先保存的淘汰启动条件,根据系统性能进行设定即可。在获取候选淘汰数据时,可以依据随机采样或者基于某种扫描策略对缓存中的数据进行筛选,筛选出的候选淘汰数据一般需要多余真正需要淘汰的数据大小。优选地,通过预设采样策略选择候选淘汰数据,所述预设采样策略包括随机采样策略、全局扫描策略或部分扫描策略。
[0058]
s102:根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值。权重影响因素可以包含多种因素,依据kv缓存系统的特性设定权重影响因素,例如,考虑到kv缓存系统中的数据对象大小不一,因此可以将数据对象的大小作为权重影响因素,考虑到用户自身的需求,可以将用户预先设定的优先级作为权重影响因素等。优选
地,所述权重影响因素包括所述候选淘汰数据的对象大小、访问次数、时间戳、命中次数和优先级。
[0059]
s103:将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据。n的取值需要满足:将n个最终淘汰数据删除后,kv缓存系统中的剩余数据存储量已经满足正常的要求。
[0060]
s104:删除所述最终淘汰数据。
[0061]
以上实施例中的方案,在获取候选淘汰数据后,再次依据候选淘汰数据的权重影响因素(如对象大小、命中次数等)对候选淘汰数据的权重值进行计算,最终选择出权重值最低的n个候选淘汰数据作为最终淘汰数据,删除最终淘汰数据。本方案中,相比于现有比lru淘汰算法和lfu淘汰算法及二者的简单结合,具有更好的命中率,同时能够适用于存储对象大小不同、负载多变等情况,是一种更加适用于kv缓存系统的缓存淘汰方案。
[0062]
进一步地,以上方案中,所述步骤s101之前还包括:获取存储系统的水位线,若所述水位线超过设定阈值,则生成所述缓存淘汰触发信号。即,本实施例中以系统水位线作为是否执行缓存淘汰算法的判断依据。例如:系统水位线可以包括存储数据所占用的存储空间,假设系统水位线达到了预设空间大小,则可以执行缓存淘汰算法,将缓存中的数据删除一部分,释放足够的空间。
[0063]
具体地,如图2所示,kv缓存系统中数据存储及淘汰的完整流程包括:
[0064]
s201:对kv缓存系统进行kv读写操作。
[0065]
s202:通过kv缓存系统的读写操作确定需要存储的数据对象,进行相应的kv存储操作。
[0066]
s203:更新kv缓存系统中存储数据对象的元数据,可以采用延迟更新方法,其中的元数据主要包括数据的对象大小(object size),命中次数(在历史执行淘汰算法过程中被扫描作为候选淘汰数据的次数),时间戳等信息,这些信息将作为本方案中淘汰算法的权重影响因素。
[0067]
s204:筛选出多个候选淘汰数据,例如:kv缓存系统的后台进程会定期检查系统水位线,当系统水位线超过一定阈值时,触发缓存淘汰算法的流,通过随机采样或者扫描策略选取候选淘汰数据。
[0068]
s205:获取每一候选淘汰数据的权重值。本发明实施例提供一种全新的淘汰算法,计算出所有候选淘汰数据的权重值。
[0069]
s206:通过最小堆数据结构选出n个权重值最小的候选淘汰数据作为最终淘汰数据。
[0070]
s207:删除所述n个最终淘汰数据。
[0071]
具体地,以上方案中的步骤s205中,根据wlrfu淘汰算法(weighted lru&lfu,本技术提出的一种全新的淘汰算法)计算候选淘汰数据的权重值,wlrfu淘汰算法是基于数据对象级别的,每一轮缓存淘汰过程中都会选择权重值最小的n个候选淘汰数据并淘汰,权重值的影响因素主要有数据的对象大小,历史命中信息,用户配置的优先级等信息,优选地,其通过如下算法确定所述权重值:
[0072]
weight
total
=k*(r*weight
lru
+(1-r)*weight
lfu
)+max_value*priority
user
;
[0073]
其中,上述公式中各个参数的含义如下:
[0074]
1.k为权重系数
[0075]
k的取值范围为(0,1),k的取值随所述候选淘汰数据的对象大小的增大而减小,即k值和数据的对象大小是负相关的关系,数据对象越大,k值越小,数据对象越大,说明数据对象占用的系统资源越多,在其他同等条件下,应该被优先淘汰,因此权重值应当越小。优选地,权重系数k的算法公式为:
[0076][0077]
其中:m为常数,m的取值范围为[4,32]kb;object size为对象大小。
[0078]
2.r是lru算法权重的比例
[0079]
r的取值范围为[0,1];(1-r)为lfu算法权重的比例;r值的设定支持两种方式:(1)获取用户输入的指定值,即用户指定默认值;满足特定workload的需求。(2)确定存储系统的工作负载模式,根据所述工作负载模式选取适应的比例。即自适应调整的方式,kv缓存系统可以通过机器学习的方法识别kv缓存系统的工作负载模式,然后选取适应该模式的比例值,保证在不同工作负载下都达到较高的缓存命中率。
[0080]
3.weight
lru
[0081]
weight
lru
根据当前时间t
current
和所述候选淘汰数据的最近一次访问时间t
last
的差值δ得到,其算法公式为:
[0082][0083]
δ=t
current-t
last
;
[0084]
其中,c1、c2、c3、c4为常数值;k1、k2、k3、k4为系数;以及a1、a2和a3为常数值,其中:c2=c
1-k1*a1;c3=c
2-k2*a2;c4=c
3-k3*a3。具体地,为了实现lru算法的权重和lfu的权重算法具有对等性,c1可取值255,c2、c3、c4的取值算法公式能够满足证分段函数取值的连续性。
[0085]
4.weight
lfu
[0086]
weight
lfu
的算法公式为:
[0087]
weight
lfu
=val(morris
counter
)-(t
current-t
last
)/t
decay
;
[0088]
其中,morris-counter的取值区间在[0,255],数据的每一次被访问,morris-counter的计数按设定规则增加;tdecay为可配置常数。weightlfu可使用一个8bit的morris-counter来表示。weightlfu的取值区间也为[0,255],可以保证lru和lfu的权重区间是对等的,可以理解为归一化。每次数据对象被访问时,morris-counter的计数可以按照log的方式递增(通过随机数模拟log方式递增),在lfu算法的一些实现上,“历史”高频访问的数据对象很难被淘汰,就会导致这类数据在扫描时的命中率的下降,因此本方案中引入一种机制,随着时间推移,morris-counter逐渐衰减,能够保证“历史”高频访问数据所占的影响因素逐渐降低,morris-counter会根据当前时间和最近访问时间的差值进行补偿矫正,以上公式中,通过val()函数将morris-counter转变为数值型数据,从而实现运算。
[0089]
5.用户定义优先级
[0090]
wlrfu算法支持用户自定义优先级,通过加上max_value(值为255)和priority
user
(值为正整数)的乘积来保证优先级低的最高权重比高优先级的最低权重小,因此可以优先淘汰低优先级的候选淘汰数据。
[0091]
通过上述分析,可以确定,本方案中提出的全新的wlrfu算法,应用于kv缓存系统中时,至少具有如下优势:
[0092]
(1)融合了lru算法和lfu算法的优点,在热点访问模式下表现良好,同时具备一定的抗扫描性;(2)融合了数据的对象大小和历史命中情况等因子,相比lru算法和lfu算法有更好的命中率;(3)灵活支持用户定义的优先级,满足特定需求;(4)没有全局的数据结构,消除了全局锁同步开销,性能高;(5)支持随机采样,低内存开销,o空间复杂度。
[0093]
如图3所示,本技术的一些实施例提供一种执行wlrfu算法的电子设备,其包括一个或多个处理器301以及存储器302,图3中以一个处理器301为例。上述电子设备还可以包括:输入装置303和输出装置304。处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图3中以通过总线连接为例。
[0094]
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述方法实施例的wlrfu算法。
[0095]
本技术实施例中还提供一种基于权重的健值存储缓存淘汰系统,如图4所示,包括:
[0096]
数据存储组件401,用于将存储系统收到的kv数据部分进行存储;即,所述数据存储组件401负责缓存系统中key-value数据部分的存储,只包含用户传给系统的实际数据。
[0097]
元数据存储组件402,用于将所述数据存储组件中kv数据的元数据进行存储,所述元数据包括权重影响因素;其中,所述元数据主要包括kv的大小,访问次数,历史命中次数,时间戳,用户定义的优先级等相关信息。
[0098]
淘汰算法执行组件403,负责淘汰算法的实现,其包括采样/扫描模块4031、权重计算和选择模块4032、权重调整模块4033和执行模块4034,其中:
[0099]
所述采样/扫描模块4031,用于根据通过预设采样策略从所述数据存储组件401和所述元数据存储组件402中选择候选淘汰数据和权重影响因素;选取一些要被淘汰的候选淘汰数据时可支持不同策略,例如随机采样,全局扫描,部分扫描等。
[0100]
所述权重计算和选择模块4032,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;根据方法实施例中所提出的wlrfu淘汰算法计算所述采样/扫描模块4031选取的多个候选淘汰数据的权重值,然后选取出权重值最小的原则选出最终淘汰数据。
[0101]
所述权重调整模块4033,用于调整所述候选淘汰数据的权重值运算过程中lru算法和lfu算法权重的比例;用于调整lru算法和lfu算法权重所占的比例,可以通过机器学习的方法识别缓存系统的工作负载模式,然后根据负载模式选取适应该模式的比例,从而可以达到自适应调整,满足多种工作负载。
[0102]
所述执行模块4034,删除所述数据存储组件中的所述最终淘汰数据以及所述元数据存储组件中与所述最终淘汰数据相关的元数据。
[0103]
以上系统中,提出了基于权重的方式来融合lru算法和lfu算法,既可以支持用户配置权重比例,也可以支持通过一些方法如机器学习等来自动调整,满足不同的工作负载需求。本方法在传统lru和lfu的基础上,融合了数据对象大小等影响因素,提高了扫描数据的命中率。而且,本系统支持用户设置缓存数据被淘汰的优先级,满足特殊应用需求。
[0104]
本技术实施例中还提供一种存储介质,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行以上任一项方法实施例中所述的基于权重的健值存储缓存淘汰方法。
[0105]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。
技术特征:
1.一种基于权重的健值存储缓存淘汰方法,其特征在于,包括如下步骤:响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素;根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;删除所述最终淘汰数据。2.根据权利要求1所述的基于权重的健值存储缓存淘汰方法,其特征在于,响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素的步骤之前还包括:获取存储系统的水位线,若所述水位线超过设定阈值,则生成所述缓存淘汰触发信号。3.根据权利要求1或2所述的基于权重的健值存储缓存淘汰方法,其特征在于,所述响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素的步骤中:通过预设采样策略选择候选淘汰数据,所述预设采样策略包括随机采样策略、全局扫描策略或部分扫描策略;所述权重影响因素包括所述候选淘汰数据的对象大小、访问次数、时间戳、命中次数和优先级。4.根据权利要求3所述的基于权重的健值存储缓存淘汰方法,其特征在于,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,通过如下算法确定所述权重值:weight
total
=k*(r*weight
lru
+(1-r)*weight
lfu
)+max_value*priority
user
;其中,k为权重系数,取值范围为(0,1),k的取值随所述候选淘汰数据的对象大小的增大而减小;r是lru算法权重的比例,取值范围为[0,1];(1
–
r)为lfu算法权重的比例;weight
lru
和weight
lfu
的取值区间均为[0,255];max_value的取值为255;priority
user
的取值为正整数。5.根据权利要求4所述的基于权重的健值存储缓存淘汰方法,其特征在于,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中:weight
lru
根据当前时间t
current
和所述候选淘汰数据的最近一次访问时间t
last
的差值δ得到,其算法公式为:δ=t
current-t
last
;其中,c1、c2、c3、c4为常数值;k1、k2、k3、k4为系数;以及a1、a2和a3为常数值,其中:c2=c
1-k1*a1;c3=c
2-k2*a2;c4=c
3-k3*a3。
6.根据权利要求5所述的基于权重的健值存储缓存淘汰方法,其特征在于,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中:weight
lfu
的算法公式为:weight
lfu
=val(morris
counter
)-(t
current-t
last
)/t
decay
;其中,morris-counter的取值区间在[0,255],数据的每一次被访问,morris-counter的计数按设定规则增加;t
decay
为可配置常数。7.根据权利要求4-6任一项所述的基于权重的健值存储缓存淘汰方法,其特征在于,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,权重系数k的算法公式为:其中:m为常数,m的取值范围为[4,32]kb;object size为对象大小。8.根据权利要求7所述的基于权重的健值存储缓存淘汰方法,其特征在于,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值的步骤中,lru算法权重的比例r通过如下方式进行设定:获取用户输入的指定值;或,确定存储系统的工作负载模式,根据所述工作负载模式选取适应的比例。9.一种基于权重的健值存储缓存淘汰系统,其特征在于,包括:数据存储组件,用于将存储系统收到的kv数据部分进行存储;元数据存储组件,用于将所述数据存储组件中kv数据的元数据进行存储,所述元数据包括权重影响因素;淘汰算法执行组件,包括采样/扫描模块、权重计算和选择模块、权重调整模块和执行模块,其中:所述采样/扫描模块,用于根据通过预设采样策略从所述数据存储组件和所述元数据存储组件中选择候选淘汰数据和权重影响因素;所述权重计算和选择模块,根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;所述权重调整模块,用于调整所述候选淘汰数据的权重值运算过程中lru算法和lfu算法权重的比例;所述执行模块,删除所述数据存储组件中的所述最终淘汰数据以及所述元数据存储组件中与所述最终淘汰数据相关的元数据。10.一种存储介质,其特征在于,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行权利要求1-8任一项所述的基于权重的健值存储缓存淘汰方法。
技术总结
本发明公开一种基于权重的健值存储缓存淘汰方法、系统及存储介质,其方法包括:响应于缓存淘汰触发信号,获取多个候选淘汰数据以及每一所述候选淘汰数据的权重影响因素;根据每一所述候选淘汰数据的权重影响因素得到每一所述候选淘汰数据的权重值;将所述候选淘汰数据的权重值按照由小到大的顺序排列,选择排在前n名内的候选淘汰数据作为最终淘汰数据;删除所述最终淘汰数据。本方案依据候选淘汰数据的权重影响因素如对象大小、命中次数等对候选淘汰数据的权重值进行计算,最终选择出权重值最低的n个候选淘汰数据作为最终淘汰数据,具有更好的命中率,同时能够适用于存储对象大小不同、负载多变等情况,适用于KV缓存系统的特点。点。点。
技术研发人员:戈素梅
受保护的技术使用者:北京乐讯科技有限公司
技术研发日:2021.12.02
技术公布日:2022/3/8