一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分离阈值调整方法、存储介质及程序产品与流程

2022-04-16 15:35:27 来源:中国专利 TAG:


1.本技术实施例涉及数据存储技术领域,尤其涉及一种分离阈值调整方法、存储介质及程序产品。


背景技术:

2.键值分离存储的方案中,可以利用键值分离将较大的值数据分离出来,极大地减少用于存储键的文件大小,从而极大地优化系统的写放大,提升系统的整体性能。因此,键值分离存储方案的应用越来越广泛。
3.一般情况下,键值分离存储中大都采用固定的键值分离条件,但这种键值分离条件难以适用于数据多变的计算场景。示例地,在流计算场景下,用于计算的数据会不断更新,且不同的数据的数据特点存在较大差异,同一个数据处理过程在不同时间段内的数据特点也可能差异很大。


技术实现要素:

4.有鉴于此,本技术实施例提供一种分离阈值调整方案,以至少部分解决上述问题。
5.根据本技术实施例的第一方面,提供了一种分离阈值调整方法,包括:
6.获取当前键值分离存储过程的分离状态信息,其中,所述分离状态信息包括键存储区域中未被分离的值数据的大小信息、值存储区域中分离值数据的第一查询频率,其中,所述分离值数据为大于分离阈值的键值对被进行键值分离得到,所述第一查询频率根据查询所述分离值数据的查询次数与值数据被查询的总次数确定;
7.根据未被分离的值数据的大小信息以及所述第一查询频率,调整所述分离阈值,以调整未被分离的值数据的大小,其中,查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比,所述第一查询频率与所述分离阈值成反比且与值数据被查询频率成正比。
8.根据本技术实施例的第二方面,提供了一种分离阈值调整方法,包括:
9.获取当前键值分离存储过程的分离状态信息,其中,所述分离状态信息包括键存储区域中未被分离的值数据的大小信息、值存储区域中分离值数据的第一查询频率,其中,所述分离值数据为大于分离阈值的键值对被进行键值分离得到,所述第一查询频率根据查询所述分离值数据的查询次数与值数据被查询的总次数确定;
10.根据未被分离的值数据的大小信息以及所述第一查询频率,确定目标分离阈值,以调整未被分离的值数据的大小,其中,查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比,所述第一查询频率与所述分离阈值成反比且与值数据被查询频率成正比;
11.展示根据当前分离阈值进行键值分离存储后,查询键值对消耗的资源,以及与根据所述目标分离阈值进行键值分离存储后,查询键值对预计消耗的资源;
12.响应于阈值调整操作,将分离阈值调整为目标分离阈值。
13.根据本技术实施例的第三方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的分离阈值调整方法。
14.根据本技术实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如上所述的分离阈值调整方法对应的操作。
15.根据本技术实施例提供的方案,由于第一查询频率与所述分离阈值成反比且与值数据被查询频率成正比,查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比,因此通过获取当前键值分离存储过程对应的键存储区域中未被分离的值数据的大小信息、值存储区域中分离值数据的第一查询频率,并根据其调整分离阈值,使得分离阈值与分离值数据被查询的发生概率相匹配,进而使得第一查询频率与分离值数据被查询的频率相匹配,进一步使得查询键值对消耗的资源与被查询的数据相匹配,使得本实施例提供的键值存储分离的存储方案可适用于多种存在差异的数据。
附图说明
16.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
17.图1a为本技术实施例提供的一种流计算的示意流程图;
18.图1b为图1a所示实施例中的一种键值分离存储过程的步骤示意图;
19.图2a为本技术实施例提供的一种键值分离存储系统的结构示意图;
20.图2b为本技术实施例提供的一种分离阈值调整方法的步骤流程图;
21.图3为本技术实施例提供的另一种分离阈值调整方法的步骤流程图;
22.图4a为本技术实施例提供的另一种分离阈值调整方法的步骤流程图;
23.图4b为本技术实施例提供的一种键值分离存储系统的示意图;
24.图4c为图4a所示实施例中的一种场景示意图;
25.图5为本技术实施例提供的又一种分离阈值调整方法的步骤流程图;
26.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
27.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
28.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
29.参见图1a、1b,为了方便地说明本技术的方案,先对键值分离存储过程进行介绍。
30.参见图1a,左侧和右侧两路流数据(即左信息流和右信息流)可以分别写入对应的键值存储系统,流计算节点join可以从左侧和右侧流数据分别对应的键值存储系统中获得对应的键值对,并进行jion匹配。
31.具体进行匹配时,可以先从键值存储系统获得并匹配键值对中的键数据,若键数
据匹配完成,则从键值存储系统中查询获得键值对中的值数据并输出。当左侧和右侧流数据中的键数据匹配成功的概率较高时,查询值数据的查询频率较高,当左侧和右侧流数据中键数据匹配成功的概率较低时,查询值数据的查询频率较低。
32.参见图1b,左侧或者右侧的流数据对应的键值对key|value可以写入键值分离存储系统。
33.若键值对大于键值分离阈值,则可以将键值对(key,value)进行键值分离,并为分离值数据value分配标识,之后可以将(key,v-id)存储至键存储区域,将(v-id,value)存储在值存储区域。
34.若键值对小于键值分离阈值,则可以将键值对(key,value)存储在键存储区域lsm-tree。
35.进行查询时,先在键存储区域查询key值是否匹配,若匹配,则可以直接从键存储区域获得值数据,或者根据vid从值存储区域获得值数据。
36.由于键存储区域lsm-tree一般为分层结构,在键存储区域进行查询时,一般需要逐层进行查询,直至查询得到需要的数据,因此针对键存储区域的查询操作消耗的资源,与键存储区域的大小成正比,键值分离阈值越小,键存储区域越大,在健存储区域查询消耗的资源越大。
37.值存储区域中一般并未将值数据进行分层存储,可以直接根据键存储区域中存储的值地址或者值标识进行定位,因此,每次在值存储区域中进行查询操作消耗的资源较为固定,不受值存储区域的大小的影响,但查询一次消耗的资源大于在键存储区域查询一次消耗的资源。
38.当需要进行join的数据不同时,键数据匹配成功的概率也不同,导致查询键值分离的数据时的查询效率有很大差异。若键数据匹配成功的概率较高,则需要查询值数据的次数也较多,若大部分值数据被存储至值存储区域,会导致查询过程消耗的资源较多;若键数据匹配成功的概率较低,则需要查询值数据的次数较少,若存在键存储区域中的数据较多,会导致查询过程消耗的资源较多。
39.而固定的键值分离条件导致键值分离存储的方案无法适配于存在差异的数据,甚至可能出现性能倒退的情况。
40.为此,本技术提出了一种分离阈值调整方法。
41.图2a、2b为本技术实施例提供的一种分离阈值调整方法的示意图。
42.参见图2a,本实施例提供的方案可以由键值分离存储决策器执行。
43.键值分离决策器的作用是决定每一个《key,value》键值对是否可以发生键值分离。如图2a所示,键值分离决策器可以确定一个《key,value》是否被进行键值分离,若进行键值分离,则可以将分离出的值数据存储在值存储空间blobstore中,具体可以为存储为值存储文件blobfile。
44.键值分离决策器可以将未被分离的键值对或者被分离后剩余的键数据及值地址存储至值存储区域lsm-tree中。
45.键值分离决策器会对一段时间内的分离状态信息进行统计,然后根据统计信息,来动态调整键值分离的条件,从而实现自适应的键值分离。其中,键值分离的状态信息主要包括当前键值分离的数据比例、发生键值分离的value的平均大小、全部的查询请求中访问
分离value的请求比例等等。
46.具体调整方法通过下述步骤进行详细说明。
47.具体地,如图2b所示,方法可以包括:
48.s201、获取当前键值分离存储过程中分离状态信息。
49.所述分离状态信息包括键存储区域中未被分离的值数据的大小信息、值存储区域中分离值数据的第一查询频率,其中,所述分离值数据为大于分离阈值的键值对被进行键值分离得到,所述第一查询频率根据查询所述分离值数据的查询次数与值数据被查询的总次数确定。
50.s201、根据未被分离的值数据的大小信息以及所述第一查询频率,调整所述分离阈值,以调整未被分离的值数据的大小。
51.其中,查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比,所述第一查询频率与所述分离阈值成反比且与值数据被查询频率成正比。
52.本实施例中,查询键值对消耗的资源具体可以为消耗的内存资源等,本实施例对此不进行限定。
53.根据本技术实施例提供的方案,由于所述第一查询频率与所述分离比例成反比且与值数据被查询的发生概率成正比,查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比,因此通过获取当前键值分离存储过程的对应的未被分离的值数据的大小信息、未被分离的值数据的第一查询频率,并根据其调整分离阈值,使得分离阈值与值数据被查询的发生概率相匹配,进而使得第一查询频率与值数据被查询的概率相匹配,进一步使得单次查询键值对消耗的资源与被查询的数据相匹配,使得本实施例提供的键值存储分离的存储方案可适用于多种存在差异的数据。
54.下面通过一种具体的场景对上述方案进行举例说明。
55.在流计算场景下,不同作业的数据特点(value大小,key和value的访问频率等)各不相同;同一个作业在不同时间段的数据特点也可能是周期性变化的。
56.示例地,左右两侧流数据(即左信息流和右信息流)可以不断存储至键值分离存储系统,join节点可以不断从键值分离存储系统中读取数据进行join操作。
57.在t1时间段内,左侧和右侧两路流数据的数据特点为:值数据较小,键值对进行键值分离存储的比例可以为30%。即在t1时间段内,有30%的键值对中的值数据被分离出来存储至值存储区域,剩余70%的键值对被存储至键存储区域。
58.若此时,左侧和右侧两路流数据的键数据key匹配成功的概率为10%,则值存储区域中分离值数据的第一查询频率为3%,查询频率较小。此时,可以将降低分离阈值,以减少未被分离的值数据的大小,进而减小键存储区域的大小,第一查询频率随之增加,但增加后的第一查询频率仍然较小。在键存储区域的大小且第一查询频率较小的情况下,查询键值存储系统中键值对消耗的资源较少。
59.在t2时间段内,左侧和右侧两路流数据的数据特点为:值数据仍然较小,键值对进行键值分离存储的比例可以为30%。即在t1时间段内,有30%的键值对中的值数据被分离出来存储至值存储区域,剩余70%的键值对被存储至键存储区域。
60.若此时,左侧和右侧两路流数据的键数据key匹配成功的概率为50%,则值存储区
域中分离值数据的第一查询频率为35%,查询频率较大。此时,可以将增加分离阈值,以增加未被分离的值数据的大小,进而减少第一查询频率以降低在查询过程中访问值存储区域的次数从而保证查询键值存储系统中键值对消耗的资源较少。
61.本实施例中,在键值分离存储系统中增加了自适应kv分离的优化(即上述调整分离阈值的过程),可以使得不同作业/不同时间段可以自动适配不同的kv分离阈值,让键值分离可以充分地发挥优势。自适应kv分离可以通过采用动态的分离阈值来调节数据发生kv分离的比例,我们设分离阈值为vt,即只有当value大小超过vt时才会触发kv分离。针对不适宜开启kv分离的场景,可以自动将分离阈值为vt调整成一个较大值,相当于完全关闭kv分离;针对kv分离适用的场景(value较大,且访问频率低),可以自动将分离阈值为vt调整成一个较小值,来尽量让访问不频繁的值数据value可以被分离到值存储区域blobstore,将频繁访问的值数据value尽量还留存在键存储区域lsm-tree中。
62.另外,本技术任意实施例中,参见图2a,在发生键值分离时,分离出的value数据会存在一定的空间放大,磁盘空间占用会相对较多。在磁盘空间受限的场景下,键值分离的使用可能会因此而受到限制。为了解决这个问题,值存储空间可以支持存储计算分离的功能。
63.具体地,可以根据所述值存储区域中各个数据对应的热点程度,将热点程度较高的数据存储至本地存储空间,将热点程度较低的数据存储至云端存储系统中,其中,所述热点程度用于表征数据被查询的概率。
64.具体地,在本地磁盘空间不足时,值存储区域blobstore会将部分blobfile暂时上传到分布式文件系统(dfs)上。
65.具体地:
66.1.值存储区域blobstore会统计所有值存储文件blobfile的磁盘空间占用情况,当磁盘文件总大小超过预设阈值之后,可以执行将本地文件被上传到dfs的操作;
67.2.通过记录一段时间内用于存储值数据的值存储文件blobfile被访问的频度,可以获得值存储文件的热度。当需要将本地的部分值存储文件blobfile上传到dfs上时,可以选择热度程度较低的值存储文件blobfile作为上传对象;值存储文件blobfile上传完成后,便可以将本地副本删掉,释放磁盘空间;
68.3.如果读取值数据所需的值存储文件blobfile在dfs上时,可以先将其下载到本地;下载到本地的值存储文件blobfile的热度如果大于其他值存储文件,则可以将该值存储文件blobfile缓存到本地,将其他热度较低的值存储文件blobfile上传到dfs上。
69.此外,本技术任意实施例中,参见图2a,针对开启kv分离(键值分离)后value的访问存在热点的场景,值存储区域blobstore可以提供缓存blobcache功能,用于对访问最频繁的blob(分离的value)进行缓存。blobcache的工作原理类似于rocksdb blockcache,采用lru的缓存策略,对最近访问最频繁的blob进行缓存。
70.为了便于表述,我们将lsm-tree数据存储区域称为mainstore。mainstore中会有一部分内存作为blockcache来使用,而blobstore中我们也设计了blobcache来优化读性能。值得一提的是,geministore中这两部分cache采用共享内存的组织方式,使得在kv分离的场景下可以更加有效地利用内存。
71.详细地来说,当gemini开启kv分离之后,进入mainstore的数据会相对变少,一些情况下blockcache可能无法被装满(或者装了一些相对较冷的数据),这种场景就可以体现
共享内存的优势,这部分没有被blockcache充分利用的内存就可以暂时给blobcache使用。
72.如果mainstore中的数据变得很多,则blockcache和blobcache的数据会以lru的策略去竞争这部分共享的内存。考虑到kv分离之后blobstore中访问value的频率大都比较低(受自适应kv分离策略调节),则blobcache中的数据一般会被优先踢出共享内存,但如果是blobstore存在数据访问热点的情况,则blockcache中的部分冷数据就会被踢出共享内存了。
73.因此,共享内存的方式下,在blobstore没有热点的情况下,共享的这部分内存主要被blockcache来使用;在blobstore访问存在数据热点,或者blockcache没有被装满的场景,blobstore都可以竞争部分内存过来为blobcache使用。
74.此外,针对键值分离并且value的访问存在热点的场景,blobstore提供了blobblockcache的功能,用于对访问最频繁的blob(分离的value)进行缓存。blobblockcache的工作原理类似于rocksdb blockcache,采用lru的缓存策略,对最近访问最频繁的blob进行缓存。
75.本方案的存储规则如下:
76.1.blobblockcache使用的内存比例相对较小,占用的内存总大小会受到严格控制;
77.2.当需要从blobstore中读取blob时,首先查询blobbuffer中是否存在,若不存在然后查询blobblockcache中是否存在,若不存在再到blobfile中进行查询;
78.3.从blobfile中读取到某一个blob时,会使得该blob的热度增加,如果判断当前blob的热度大于blobblockcache中的其他blob,则会将当前blob放入blobblockcache,相应地blobblockcache中热度相对较低的blob会被从缓存中移除。
79.图3为本技术实施例提供的一种分离阈值的调整方法的步骤流程图,如图所示,其包括:
80.s301、获取分离值数据的大小信息,以及获取所述分离值数据的第三查询频率。
81.分离值数据的大小信息与未被分离的值数据的大小信息成反比;所述第三查询频率与所述第一查询频率成反比。
82.与从键存储空间观测值数据的查询情况相比,观测值存储空间中值数据被查询的情况更容易观测,因此,本实施例中,获取与未被分离的值数据的大小信息成反比的分离值数据的大小信息,以及获得第三查询频率。
83.示例地,本实施例中,可以获得当前查询请求中访问分离value的请求比例qt,请求比例qt用于表征第三查询频率,请求比例qt通过值数据被查询的总次数以及值存储空间中的值数据被查询的次数确定。
84.s302、获取与所述分离值数据的大小信息对应的查询频率阈值范围rt。
85.本实施例中,可以预先设定多个分离值数据的大小信息对应的大小范围,每个大小范围可以对应查询频率阈值范围rt。在获得分离值数据的大小信息后,可以根据其所属的范围确定对应的查询频率阈值范围rt。
86.可选地,本技术实施例中,分离值数据的大小信息具体可以为分离值数据的平均大小,则所述获取与所述分离值数据的大小信息对应的查询频率阈值范围,包括:确定所述分离值数据的平均大小所属的预设数据大小范围;获取与预设数据大小范围对应的查询频
率阈值范围,其中,所述查询频率阈值范围的上限与所述值数据的数据大小信息成正比。
87.s303、若所述第三查询频率与所述查询频率阈值范围不匹配,则调整所述分离阈值,以调整进行键值分离存储的键值对的比例。
88.其中,键值分离存储的键值对的比例与第三查询频率成正比。
89.示例地,本技术实施例中,如果判断当前查询请求中访问分离value的请求比例qt小于目标比例范围rt的下限,则需要将键值分离的阈值vt调小,使得发生键值分离的数据比例pt变大;如果判断当前查询请求中访问分离value的请求比例qt大于目标比例范围rt的上限,则需要将键值分离的阈值vt调大,使得发生键值分离的数据比例pt变小。
90.每次调整的幅度由当前请求比例和目标比例范围rt的上限或者下限的差值决定,差值越大,调整的幅度越大。
91.如果当前查询请求中访问分离value的请求比例在目标比例范围之内,则键值分离的条件不进行调整。
92.下面对具体的调整方案进行说明,对键值分离的条件进行动态调整的方式如下:
93.1.设键值对《key,value》中value的大小为l,则《key,value》发生键值分离的条件为:l大于键值分离的分离阈值vt,
94.即只有当value的大小大于分离阈值vt时,键值对会发生键值分离,value大小如果小于等于vt时,不发生键值分离。vt是可以由键值分离决策器动态调整的。
95.vt进行动态调整的规则描述如下:
96.(1)设当键值分离的阈值为vt时,发生键值分离的数据比例为pt,发生键值分离的value(即值存储区域中存储的值数据)的平均大小为st,在全部的查询值数据的查询请求中访问分离value的请求比例为qt;
97.本实施例中,预设有访问分离value的目标比例范围rt,rt上限的取值和发生键值分离的value平均大小st成正比,具体可以表示为
[0098][0099]
其中的kb(千字节)是指计算机数据存贮器存储数据的大小单位,1kb=1024b。
[0100]
当发生键值分离的value的平均大小在(0,4kb]范围内时,目标比例范围rt为(8%~12%);当发生键值分离的value平均大小在(4kb,12kb]范围内时,目标比例范围rt为(18%~22%);当发生键值分离的value平均大小大于12kb时,目标比例范围rt为(0%~100%)。
[0101]
当然,上述rt与st的具体取值范围仅用于举例说明,并不作为本技术的限定。
[0102]
具体进行调整时,如果判断当前查询请求中访问分离value的请求比例qt小于目标比例范围rt的下限,则需要将键值分离的阈值vt调小,使得发生键值分离的数据比例pt变大;如果判断当前查询请求中访问分离value的请求比例qt大于目标比例范围rt的上限,则需要将键值分离的阈值vt调大,使得发生键值分离的数据比例pt变小。如果当前查询请求中访问分离value的请求比例在目标比例范围之内,则键值分离的条件不进行调整。
[0103]
本实施例的分离阈值调整方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、pad等)和pc机等。
[0104]
图4a为本技术实施例提供的另一种分离阈值调整方法的流程示意图,如图所示,其包括:
[0105]
s401、获取当前键值分离存储过程的分离状态信息。
[0106]
其中,所述分离状态信息包括未被分离的值数据的大小信息、未被分离的值数据的第一查询频率,其中,所述大于分离阈值的键值对被进行键值分离,所述第一查询频率根据查询所述键存储区域中值数据的查询次数与查询总次数确定。
[0107]
本步骤的具体实现方式可参考上述实施例,在此不再赘述。
[0108]
s402、根据未被分离的值数据的大小信息、所述第一查询频率以及在值存储区域中进行单次键值对查询耗费的资源,计算得到阈值调整比例。
[0109]
其中,所述第一查询频率与所述分离比例成反比且与值数据被查询的发生概率成正比,单次查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比。
[0110]
具体地,本实施例中,第一查询频率通过下述方式确定:确定查询值数据的第二查询频率,以及确定查询值存储区域中的分离值数据的第三查询频率;根据所述第二查询频率和所述第三查询频率的差值确定所述第一查询频率。
[0111]
参见图4b,在键值对中的值数据大小valuesize超过分离阈值t时,键值对中的值数据value会被分离出并存储至值存储区域blobstore,键数据key和值地址会被存储至键存储区域main store。
[0112]
则可以设键存储区域中存储的键数据key的数量keycount为kc,设键存储区域中存储的键数据的总大小keytotalsize为ks,设键存储区域中存储的值数据的数量valuecount为vc,键存储区域中存储的值数据的总大小valuetotalsize为vs。查询值存储区域中值数据的查询请求占全部查询键值对的访问请求的比例为a。
[0113]
则针对键存储区域入lsm-tree(即mainstore),我们假设请求一次的开销和mainstore的数据总大小成正比,即:
[0114]
em=β
·
(ks vs),其中,β为常量,em为访问一次键存储区域的期望开销。
[0115]
针对值存储区域入blobtore,其访问开销与数据大小无关,假设访问一次值存储区域的期望开销为常数:
[0116]
eb=m其中,m为常量,eb为访问一次值存储区域的期望开销。
[0117]
基于上述假设,一次查询请求的期望开销为:
[0118]
e=em aeb=β
·
(ks vs) am,其中,α为值存储区域被访问的比例。
[0119]
另外,假设值数据的大小是均匀分布的,键数据key是被随机访问的,则:键值存储系统中存在如下正比关系:
[0120]
vc~t
[0121]
vs~vc
·
t
[0122]
a~kc-vc,其中,“~”前后的为存在正比关系的参数。
[0123]
假设调整后的目标分离阈值为t’,则可以将分离阈值调整为目标分离阈值之后,一次查询的期望开销可以为:
[0124][0125]
根据上式可知,e是关于t'的二次函数,且开口向上,具有最小值。将上式求导并取得最小值后,可以得到当e取最小值时,t’的取值为:
[0126][0127]
设当前发生kv分离的数据比例为q,则
[0128][0129]
将q带入上述t’的取值,可得到:
[0130][0131]
由于值存储区域的参数α比kc、vc更容易观测到,则可以对上述公式进行变形得到:
[0132]
其中,m为在值存储区域中进行单次查询耗费的资源,β为定值,p为所述第二查询频率,a为所述第三查询频率,p-a为所述第一查询频率,vs为所述未被分离的值数据的总大小。
[0133]
s403、根据所述阈值调整比例以及当前分离阈值确定作为调整目标的目标分离阈值。
[0134]
本实施例中,上式中的t为当前分离阈值,t’为目标分离阈值。
[0135]
当然,上述存在多个t与t’的公式,本领域的技术人员可根据需求选择适当的公式,来进行分离阈值的调整,这些均在本技术的保护范围内。
[0136]
s404、将当前分离阈值调整为所述目标分离阈值。
[0137]
本实施例中,若计算得到目标分离阈值,则可以将调整分离阈值为目标分离阈值。具体地,本实施例提供的方案可以间隔预设时间重复执行。
[0138]
示例地,参见图4c,本实施例中,具体可以包括:
[0139]
监测步骤:可以监测当前键值分离存储过程中分离状态信息。
[0140]
计算步骤:基于上式计算kv分离的目标分离阈值,并根据计算得到的目标分离阈值判断是否需要进行分离阈值调整操作。
[0141]
具体地,可以根据目标分离阈值对应的期望消耗与当前访问一次的实际消耗的差异,根据差异确定是否进行分离阈值的调整操作。
[0142]
若不进行分离阈值调整操作,则返回到监测步骤继续执行,若进行分离阈值调整操作,可以执行调整步骤。
[0143]
调整步骤:通过键值分离决策器调整分离阈值为目标分离阈值。
[0144]
在调整后冷却n秒钟,可以再继续返回到监测步骤执行。
[0145]
图5为本技术实施例提供的又一种分离阈值调整方法的流程示意图,如图所示,其包括:
[0146]
s501、获取当前键值分离存储过程的分离状态信息。
[0147]
其中,所述分离状态信息包括未被分离的值数据的大小信息、未被分离的值数据的第一查询频率,其中,所述大于分离阈值的键值对被进行键值分离,所述第一查询频率根据查询所述键存储区域中值数据的查询次数与查询总次数确定;
[0148]
s502、根据未被分离的值数据的大小信息以及所述第一查询频率,确定目标分离阈值,以调整未被分离的值数据的大小。
[0149]
其中,所述第一查询频率与所述分离比例成反比且与值数据被查询的发生概率成正比,单次查询键值对消耗的资源与所述第一查询频率成正比且与所述未被分离的值数据的大小信息成反比;
[0150]
s503、展示通过当前键值分离存储过程存储键值对后,单次查询键值对消耗的资源,以及与所述目标分离阈值对应的单次查询键值对消耗的资源。
[0151]
具体进行展示时,还可以展示调整后能够省略的资源量、上述步骤中获取的分离状态信息等。
[0152]
用户可以根据展示的内容,确定是否进行分离阈值调整,若确定进行调整,则可以输入阈值调整操作。
[0153]
s504、响应于阈值调整操作,将分离阈值调整为目标分离阈值。
[0154]
参照图6,示出了本技术实施例提供的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
[0155]
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(communications interface)604、存储器(memory)606、以及通信总线608。
[0156]
其中:
[0157]
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
[0158]
通信接口604,用于与其它电子设备或服务器进行通信。
[0159]
处理器602,用于执行程序610,具体可以执行上述分离阈值调整方法实施例中的相关步骤。
[0160]
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
[0161]
处理器602可能是处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0162]
存储器606,用于存放程序610。存储器606可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0163]
程序610中各步骤的具体实现可以参见上述分离阈值调整方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0164]
本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指
示计算设备执行上述多个方法实施例中的任一键值分离存储对应的操作。
[0165]
需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
[0166]
上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的分离阈值调整方法。此外,当通用计算机访问用于实现在此示出的分离阈值调整方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的分离阈值调整方法的专用计算机。
[0167]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0168]
以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献