内存和硬盘集成存储数据处理方法、系统、设备及介质技术方案

技术编号:35487338 阅读:21 留言:0更新日期:2022-11-05 16:41
本申请提供了一种内存和硬盘集成存储数据处理方法、系统、设备及介质,方法利用分布式存储的数据访问方式,并根据候选用户数据的热度信息来从中确定高热度用户数据,高热度用户数据将存储至内存,候选用户数据将存储至硬盘。在用户进行数据访问时,首先第一布谷鸟过滤器和第二布谷鸟过滤器将过滤掉访问时无效的用户key,以降低对存储设备带来的性能压力。对于高热度用户数据,将通过内存读取获得,当内存无法获取需要的用户数据后,则可访问硬盘数据读取。因此对于常用的用户数据可调用内存,以提升读取速度;而当内存宕机时,由于硬盘也存储了一份用户数据,因此不会造成数据丢失,实现将两种存储方式的优势结合起来。实现将两种存储方式的优势结合起来。实现将两种存储方式的优势结合起来。

【技术实现步骤摘要】
内存和硬盘集成存储数据处理方法、系统、设备及介质


[0001]本申请涉及计算机
,尤其涉及一种内存和硬盘集成存储数据处理方法、系统、设备及介质。

技术介绍

[0002]键值存储系统(Key

value存储系统)是一种以键值形式存储数据的数据存储系统,类似Java中的map,可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值;key

value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
[0003]目前,有部分Key

value存储系统使用全内存的架构,避免磁盘读写瓶颈来获得极高的性能。但在实际应用中,这种系统只被用来作为数据库的前端缓存,难以成为数据的最终落脚之处。内存型数据库的局限之处在于放置在内存中的数据容易在系统崩溃等意外中丢失,安全性得不到保障,另外内存的价格和能耗依然远高于磁盘,不符合经济方面的考量。而采用硬盘式存储,数据可持久化保存在硬盘上,硬盘存储相对内存式存储廉价很多,扩容成本低。但硬盘的劣势在于存取速度较内存更慢,不适用于用户对响应时间敏感的场景。

技术实现思路

[0004]本申请实施例的主要目的在于提出一种内存和硬盘集成存储数据处理方法、系统、设备及介质,将key

value存储方式中内存式存储和硬盘式存储两者的优势互补结合,以解决读写速度慢且因宕机易导致数据丢失的问题。
[0005]为实现上述目的,本申请实施例的第一方面提出了一种内存和硬盘集成存储数据处理方法,所述方法包括:
[0006]获取候选用户键值和对应的候选用户数据,并将所述候选用户数据全量存储至硬盘中,确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,将所述高热度用户数据全量存储至内存中,所述高热度用户数据包括热度信息满足预设阈值的所述候选用户数据,所述热度信息至少包括所述候选用户数据被访问次数;
[0007]根据所述高热度用户数据所对应的高热度用户键值对第一布谷鸟过滤器进行第一更新处理,根据所述候选用户数据对应的所述候选用户键值对第二布谷鸟过滤器进行第二更新处理;
[0008]利用所述第一更新处理后的所述第一布谷鸟过滤器对访问的用户键值进行过滤,若经所述第一更新处理后的所述第一布谷鸟过滤器过滤成功得到所述高热度用户键值,则请求访问内存,若在内存中读取到与所述高热度用户键值对应的所述高热度用户数据,则完成用户数据读取,若在内存中无法读取到与所述高热度用户键值对应的所述高热度用户数据,则请求访问硬盘以完成对所述高热度用户数据的读取;
[0009]若经所述第一布谷鸟过滤器过滤失败,则利用所述第二更新处理后的所述第二布谷鸟过滤器进一步过滤,若经所述第二更新处理后的所述第二布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问硬盘以完成对所述候选用户数据中除所述高热度用户数据以外的数据的读取。
[0010]在一些实施例中,所述确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,包括:
[0011]建立热度信息哈希表并存储至硬盘中,所述热度信息哈希表所保存的数据包括所述候选用户键值和对应的热度信息,所述热度信息包括窗口数组、窗口游标、热度值;所述窗口数组的每个元素用于保存一个时间片段的所述候选用户键值的访问次数,所述窗口数组用于保存连续N个时间片段的所述访问次数,其中N为正整数,所述窗口数组的大小为N且各元素初始值为0;所述窗口游标用于指向所述窗口数组中的一个元素以确定所述时间片段需要更新访问次数;所述热度值用于确定所述候选用户键值对应的所述候选用户数据是否写入内存,所述热度值的初始值为0;
[0012]若所述窗口数组中全部元素的和大于等于预设的访问次数阈值,则将所述热度值加1,若所述热度值等于预设的热度阈值,则将所述候选用户键值对应的所述候选用户数据写入内存,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于预设的热度阈值,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新;
[0013]若所述窗口数组中全部元素的和小于预设的访问次数阈值,则将所述热度值减1,若所述热度值等于所述热度阈值减1,则将所述候选用户键值对应的所述候选用户数据在内存中删除,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于所述热度阈值减1,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新。
[0014]在一些实施例中,所述确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,还包括:
[0015]若所述热度值等于0,则从所述热度信息哈希表中删除所述候选用户键值的所述热度信息;
[0016]若所述热度值不等于0,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新。
[0017]在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
[0018]获取第一待写入数据,所述第一待写入数据与所述候选用户键值对应;
[0019]若经所述第二更新处理后的所述第二布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问硬盘以完成对所述第一待写入数据的写入。
[0020]在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
[0021]将所述候选用户数据分别全量存储至内存和硬盘中;
[0022]根据所述候选用户数据对应的所述候选用户键值对所述第一布谷鸟过滤器中进行第三更新处理;
[0023]利用所述第三更新处理后的第一布谷鸟过滤器对访问的用户键值进行过滤,若经所述第三更新处理后的所述第一布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访
问内存以完成所述候选用户数据的读取,若内存出现故障,则请求访问硬盘以完成所述候选用户数据的读取,并将所述候选用户数据写入内存。
[0024]在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
[0025]获取第二待写入数据,所述第二待写入数据与所述候选用户键值对应;
[0026]若经所述第三更新处理后的所述第一布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问内存以完成对所述第二待写入数据的写入,并将所述第二待写入数据异步写入硬盘。
[0027]在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
[0028]将所述候选用户数据分别全量存储至硬盘中;
[0029]根据所述候选用户数据对应的所述候选用户键值对所述第二布谷鸟过滤器进行第四更新处理;
[0030]利用所述第四更新处理后的所述第二布谷鸟过滤器对访问的用户键值进行过滤;
[0031]若经所述第四更新处理后的所述第二布谷鸟过滤器过滤成功获得所述候选用户键值,则请求访问本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存和硬盘集成存储数据处理方法,其特征在于,所述方法包括:获取候选用户键值和对应的候选用户数据,并将所述候选用户数据全量存储至硬盘中,确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,将所述高热度用户数据全量存储至内存中,所述高热度用户数据包括热度信息满足预设阈值的所述候选用户数据,所述热度信息至少包括所述候选用户数据被访问次数;根据所述高热度用户数据所对应的高热度用户键值对第一布谷鸟过滤器进行第一更新处理,根据所述候选用户数据对应的所述候选用户键值对第二布谷鸟过滤器进行第二更新处理;利用所述第一更新处理后的所述第一布谷鸟过滤器对访问的用户键值进行过滤,若经所述第一更新处理后的所述第一布谷鸟过滤器过滤成功得到所述高热度用户键值,则请求访问内存,若在内存中读取到与所述高热度用户键值对应的所述高热度用户数据,则完成用户数据读取,若在内存中无法读取到与所述高热度用户键值对应的所述高热度用户数据,则请求访问硬盘以完成对所述高热度用户数据的读取;若经所述第一布谷鸟过滤器过滤失败,则利用所述第二更新处理后的所述第二布谷鸟过滤器进一步过滤,若经所述第二更新处理后的所述第二布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问硬盘以完成对所述候选用户数据中除所述高热度用户数据以外的数据的读取。2.根据权利要求1所述的内存和硬盘集成存储数据处理方法,其特征在于,所述确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,包括:建立热度信息哈希表并存储至硬盘中,所述热度信息哈希表所保存的数据包括所述候选用户键值和对应的热度信息,所述热度信息包括窗口数组、窗口游标、热度值;所述窗口数组的每个元素用于保存一个时间片段的所述候选用户键值的访问次数,所述窗口数组用于保存连续N个时间片段的所述访问次数,其中N为正整数,所述窗口数组的大小为N且各元素初始值为0;所述窗口游标用于指向所述窗口数组中的一个元素以确定所述时间片段需要更新访问次数;所述热度值用于确定所述候选用户键值对应的所述候选用户数据是否写入内存,所述热度值的初始值为0;若所述窗口数组中全部元素的和大于等于预设的访问次数阈值,则将所述热度值加1,若所述热度值等于预设的热度阈值,则将所述候选用户键值对应的所述候选用户数据写入内存,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于预设的热度阈值,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新;若所述窗口数组中全部元素的和小于预设的访问次数阈值,则将所述热度值减1,若所述热度值等于所述热度阈值减1,则将所述候选用户键值对应的所述候选用户数据在内存中删除,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于所述热度阈值减1,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新。3.根据权利要求2所述的内存和硬盘集成存储数据处理方法,其特征在于,所述确定所
述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,还包括:若所述热度值等于0,则从所述热度信息哈希表中删除所述候选用户键值的所述热度...

【专利技术属性】
技术研发人员:王玉龙
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1