内存和硬盘集成存储数据处理方法、系统、设备及介质与流程

文档序号:32064944发布日期:2022-11-05 00:26阅读:103来源:国知局
内存和硬盘集成存储数据处理方法、系统、设备及介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种内存和硬盘集成存储数据处理方法、系统、设备及介质。


背景技术:

2.键值存储系统(key-value存储系统)是一种以键值形式存储数据的数据存储系统,类似java中的map,可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值;key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
3.目前,有部分key-value存储系统使用全内存的架构,避免磁盘读写瓶颈来获得极高的性能。但在实际应用中,这种系统只被用来作为数据库的前端缓存,难以成为数据的最终落脚之处。内存型数据库的局限之处在于放置在内存中的数据容易在系统崩溃等意外中丢失,安全性得不到保障,另外内存的价格和能耗依然远高于磁盘,不符合经济方面的考量。而采用硬盘式存储,数据可持久化保存在硬盘上,硬盘存储相对内存式存储廉价很多,扩容成本低。但硬盘的劣势在于存取速度较内存更慢,不适用于用户对响应时间敏感的场景。


技术实现要素:

4.本技术实施例的主要目的在于提出一种内存和硬盘集成存储数据处理方法、系统、设备及介质,将key-value存储方式中内存式存储和硬盘式存储两者的优势互补结合,以解决读写速度慢且因宕机易导致数据丢失的问题。
5.为实现上述目的,本技术实施例的第一方面提出了一种内存和硬盘集成存储数据处理方法,所述方法包括:
6.获取候选用户键值和对应的候选用户数据,并将所述候选用户数据全量存储至硬盘中,确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,将所述高热度用户数据全量存储至内存中,所述高热度用户数据包括热度信息满足预设阈值的所述候选用户数据,所述热度信息至少包括所述候选用户数据被访问次数;
7.根据所述高热度用户数据所对应的高热度用户键值对第一布谷鸟过滤器进行第一更新处理,根据所述候选用户数据对应的所述候选用户键值对第二布谷鸟过滤器进行第二更新处理;
8.利用所述第一更新处理后的所述第一布谷鸟过滤器对访问的用户键值进行过滤,若经所述第一更新处理后的所述第一布谷鸟过滤器过滤成功得到所述高热度用户键值,则请求访问内存,若在内存中读取到与所述高热度用户键值对应的所述高热度用户数据,则完成用户数据读取,若在内存中无法读取到与所述高热度用户键值对应的所述高热度用户数据,则请求访问硬盘以完成对所述高热度用户数据的读取;
9.若经所述第一布谷鸟过滤器过滤失败,则利用所述第二更新处理后的所述第二布谷鸟过滤器进一步过滤,若经所述第二更新处理后的所述第二布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问硬盘以完成对所述候选用户数据中除所述高热度用户数据以外的数据的读取。
10.在一些实施例中,所述确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,包括:
11.建立热度信息哈希表并存储至硬盘中,所述热度信息哈希表所保存的数据包括所述候选用户键值和对应的热度信息,所述热度信息包括窗口数组、窗口游标、热度值;所述窗口数组的每个元素用于保存一个时间片段的所述候选用户键值的访问次数,所述窗口数组用于保存连续n个时间片段的所述访问次数,其中n为正整数,所述窗口数组的大小为n且各元素初始值为0;所述窗口游标用于指向所述窗口数组中的一个元素以确定所述时间片段需要更新访问次数;所述热度值用于确定所述候选用户键值对应的所述候选用户数据是否写入内存,所述热度值的初始值为0;
12.若所述窗口数组中全部元素的和大于等于预设的访问次数阈值,则将所述热度值加1,若所述热度值等于预设的热度阈值,则将所述候选用户键值对应的所述候选用户数据写入内存,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于预设的热度阈值,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新;
13.若所述窗口数组中全部元素的和小于预设的访问次数阈值,则将所述热度值减1,若所述热度值等于所述热度阈值减1,则将所述候选用户键值对应的所述候选用户数据在内存中删除,然后将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新,若所述热度值不等于所述热度阈值减1,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新。
14.在一些实施例中,所述确定所述候选用户数据的热度信息,根据所述热度信息从所述候选用户数据中确定高热度用户数据,还包括:
15.若所述热度值等于0,则从所述热度信息哈希表中删除所述候选用户键值的所述热度信息;
16.若所述热度值不等于0,则将窗口游标加1以指向所述窗口数组中下一个元素并对所述下一个元素更新。
17.在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
18.获取第一待写入数据,所述第一待写入数据与所述候选用户键值对应;
19.若经所述第二更新处理后的所述第二布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问硬盘以完成对所述第一待写入数据的写入。
20.在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
21.将所述候选用户数据分别全量存储至内存和硬盘中;
22.根据所述候选用户数据对应的所述候选用户键值对所述第一布谷鸟过滤器中进行第三更新处理;
23.利用所述第三更新处理后的第一布谷鸟过滤器对访问的用户键值进行过滤,若经所述第三更新处理后的所述第一布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访
问内存以完成所述候选用户数据的读取,若内存出现故障,则请求访问硬盘以完成所述候选用户数据的读取,并将所述候选用户数据写入内存。
24.在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
25.获取第二待写入数据,所述第二待写入数据与所述候选用户键值对应;
26.若经所述第三更新处理后的所述第一布谷鸟过滤器过滤成功得到所述候选用户键值,则请求访问内存以完成对所述第二待写入数据的写入,并将所述第二待写入数据异步写入硬盘。
27.在一些实施例中,所述内存和硬盘集成存储数据处理方法还包括:
28.将所述候选用户数据分别全量存储至硬盘中;
29.根据所述候选用户数据对应的所述候选用户键值对所述第二布谷鸟过滤器进行第四更新处理;
30.利用所述第四更新处理后的所述第二布谷鸟过滤器对访问的用户键值进行过滤;
31.若经所述第四更新处理后的所述第二布谷鸟过滤器过滤成功获得所述候选用户键值,则请求访问硬盘以完成对所述候选用户数据的读取;
32.获取第三待写入数据,所述第三待写入数据与所述候选用户键值对应;
33.若经所述第四更新处理后的所述第二布谷鸟过滤器过滤成功获得所述候选用户键值,则请求访问硬盘以完成对所述第三待写入数据的写入。
34.为实现上述目的,本技术实施例的第二方面提出了一种内存和硬盘集成存储数据处理应用系统,包括:
35.集成存储数据处理模块,包括上层应用程序、集成存储数据处理sdk工具包、第一布谷鸟过滤器、第二布谷鸟过滤器,所述上层应用程序用于调用所述集成存储数据处理sdk工具包,所述集成存储数据处理sdk工具包用于执行上述第一方面所述的一种内存和硬盘集成存储数据处理方法,所述第一布谷鸟过滤器和所述第二布谷鸟过滤器皆用于过滤访问的用户键值;
36.存储模块,包括硬盘和内存,所述硬盘用于存储所述候选用户数据,所述内存用于存储所述高热度用户数据或所述候选用户数据。
37.为实现上述目的,本技术实施例的第三方面提出了一种计算机设备,包括:
38.至少一个存储器;
39.至少一个处理器;
40.至少一个计算机程序;
41.所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现:
42.如上述第一方面所述的一种内存和硬盘集成存储数据处理方法。
43.为实现上述目的,本技术实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面所述的一种内存和硬盘集成存储数据处理方法。
44.本技术提出的一种内存和硬盘集成存储数据处理方法、系统、设备及介质,通过利用分布式存储的数据访问方式,即由候选用户键值对应访问候选用户数据,根据候选用户数据的热度信息来从中确定高热度用户数据,高热度用户数据将存储至内存,而候选用户
数据将存储至硬盘。因此,在用户进行数据访问时,首先第一布谷鸟过滤器和第二布谷鸟过滤器将过滤掉访问时无效的用户key,以防止大量无效key访问的泄洪攻击导致缓存击穿,从而应对内存和硬盘带来的性能压力,极大增强应用程序的健壮性;然后对于被访问频率相对更高的高热度用户数据,将通过内存读取获得,当内存无法获取需要的用户数据后,则最后可访问硬盘将需要的用户数据读取。因此,利用该集成存储进行数据处理,对于常用的用户数据可调用内存,以提升读取速度;而当内存出现故障如宕机时,由于硬盘同时存储了一份用户数据,则不会造成数据丢失,实现将两种存储方式的优势结合起来。
附图说明
45.图1是本技术实施例提供的内存和硬盘集成存储数据处理方法的混合存储模式的流程图;
46.图2是本技术实施例提供的确定高热度用户数据方法的流程图;
47.图3是本技术实施例提供的内存和硬盘集成存储数据处理方法的高速存储模式的流程图;
48.图4是本技术实施例提供的内存和硬盘集成存储数据处理方法的低速存储模式的流程图;
49.图5是本技术实施例提供的内存和硬盘集成存储数据处理应用系统的示意图;
50.图6是本技术实施例提供的计算机设备的硬件结构示意图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
52.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
53.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
54.首先,对本技术中涉及的若干名词进行解释:
55.分布式键值存储(key-value store):是nosql存储的一种方式。它的数据按照键值对的形式进行组织,索引和存储。key-value存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比sql数据库存储拥有更好的读写性能。常用的高性能kv存储主要有redis、memcached、etcd、zookeeper等,其中redis主要用来缓存业务数据,在一些实施例中,常采用redis作为实施例中的内存。redis本质上是一个key-value类型的内存数据库,整个数据库加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,redis的性能非常出色,每秒可以处理超过10万次读写操作,主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的
高性能读写,因此redis适合的场景主要局限在较小数据量的高性能操作和运算上。
56.布谷鸟过滤器(cuckoo filter):布谷鸟过滤器由一个数组组成,数组中元素大小为4个字节,可以存储4个指纹,每个指纹占一个字节(128种)。同一个数组元素上的多个座位在内存空间上是连续的,可以有效利用cpu高速缓存。
57.布谷鸟过滤器包括以下操作,插入:首先计算数据的指纹和哈希值,并通过指纹和哈希值计算另一个哈希值,两个哈希值映射到两个位置(因为计算得到两个位置,每个位置存储4个指纹,所以相同对象最多存储8个)。接下来进行插入,会尝试插入两个位置,如果都失败,随机挤走一个指纹,并重新为该指纹寻找新的位置(超过最大挤兑次数后扩容);扩容:如果数组过小,会发生循环挤兑的情况,就可以设置最大挤兑次数,如果超过该次数,进行扩容,重新计算每个指纹的位置;查找:通过计算哈希值得到两个元素,对两个元素中的8个位置进行指纹对比,如果对比成功则表示数据存在。如果哈希值和指纹相同时会发生误判(小概率);删除:因为每个对象的指纹会存储到一个位置中,所以可以通过删除这个指纹来删除数据。删除功能无法使用的情况:如果相同对象存储超过8个,就无法使用删除功能;如果俩数据的哈希值和指纹相同时,会出现误删除情况;更新:即删除后再添加新指纹。
58.布谷鸟过滤器的优点在于:访问内存次数低;hash函数计算简单;存在删除操作,如果相同数据个数不超过8个,那么删除操作可用;但是因为存储的是计算后的指纹信息,存在误删除的可能。
59.布谷鸟过滤器的缺点在于:内存空间不联系,cpu消耗大;容易出现装填循环问题,hash冲突踢出原数据,原数据还是存在冲突;删除数据时,hash冲突会引起误删,查询有误判,那么删除也会有误删。
60.哈希表(hash):是根据关键码值(key-value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表m,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表m为哈希(hash)表,函数f(key)为哈希(hash)函数。在哈希表中,我们能应用哈希函数进行快速访问到数组中的目标数据。如果发生哈希冲突,就使用链表进行存储。这样不管数据量多少,都能应付。因为哈希表在数据存储上的灵活性和数据查找上的高效性,编程语言的关联数组等会经常用到它。
61.目前,redis作为高性能缓存被广泛应用到各个业务,比如金融行业或保险领域。但目前redis存在一些痛点问题,比如内存占用高,数据可靠性差,业务维护缓存和存储的一致性繁琐。但若单纯采用硬盘来替换redis,其劣势明显:存取速度较内存更慢,不适用于用户对响应时间敏感的场景。
62.基于此,本技术实施例提供了一种内存和硬盘集成存储数据处理方法、系统、设备及介质,能够实现将类似redis内存的存储方式与硬盘存储结合,以克服内存和硬盘单独使用时的缺点。
63.本技术实施例提供的一种内存和硬盘集成存储数据处理方法、系统、设备及介质,具体通过如下实施例进行说明,首先描述本技术实施例中的一种内存和硬盘集成存储数据处理方法。
64.本技术实施例提供的一种内存和硬盘集成存储数据处理方法,涉及分布式存储技
术领域。本技术实施例提供的一种内存和硬盘集成存储数据处理方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现信息提取方法的应用等,但并不局限于以上形式。
65.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
66.请参阅图1,图1是本技术实施例提供的内存和硬盘集成存储数据处理方法的混合存储模式的一个可选的流程图,图1中的方法可以具体包括但不限于步骤s110至步骤s140。
67.步骤s110:获取候选用户键值和对应的候选用户数据,并将候选用户数据全量存储至硬盘中,确定候选用户数据的热度信息,根据热度信息从候选用户数据中确定高热度用户数据,将高热度用户数据全量存储至内存中,高热度用户数据包括热度信息满足预设阈值的候选用户数据,热度信息至少包括候选用户数据被访问次数;
68.步骤s120:根据高热度用户数据所对应的高热度用户键值对第一布谷鸟过滤器进行第一更新处理,根据候选用户数据对应的候选用户键值对第二布谷鸟过滤器进行第二更新处理;
69.步骤s130:利用第一更新处理后的第一布谷鸟过滤器对访问的用户键值进行过滤,若经第一更新处理后的第一布谷鸟过滤器过滤成功得到高热度用户键值,则请求访问内存,若在内存中读取到与高热度用户键值对应的高热度用户数据,则完成用户数据读取,若在内存中无法读取到与高热度用户键值对应的高热度用户数据,则请求访问硬盘以完成对高热度用户数据的读取;
70.步骤s140:若经第一布谷鸟过滤器过滤失败,则利用第二更新处理后的第二布谷鸟过滤器进一步过滤,若经第二更新处理后的第二布谷鸟过滤器过滤成功得到候选用户键值,则请求访问硬盘以完成对候选用户数据中除高热度用户数据以外的数据的读取。
71.在一些实施例的步骤s110至步骤s140中,通过利用分布式存储的数据访问方式,即由候选用户键值对应访问候选用户数据,根据候选用户数据的热度信息来从中确定高热度用户数据,高热度用户数据将存储至内存,而候选用户数据将存储至硬盘。因此,在用户进行数据访问时,首先第一布谷鸟过滤器和第二布谷鸟过滤器将过滤掉访问时无效的用户key,以防止大量无效key访问的泄洪攻击导致缓存击穿,从而应对内存和硬盘带来的性能压力,极大增强应用程序的健壮性;然后对于被访问频率相对更高的高热度用户数据,将通过内存读取获得,当内存无法获取需要的用户数据后,则最后可访问硬盘将需要的用户数
据读取。因此,利用该集成存储进行数据处理,对于常用的用户数据可调用内存,以提升读取速度;而当内存出现故障如宕机时,由于硬盘同时存储了一份用户数据,则不会造成数据丢失,实现将两种存储方式的优势结合起来。
72.在一些实施例的步骤s110中,对于整个系统所建立的用户数据,即候选用户数据,会被全量存储至硬盘中,用于对数据进行长期保存;而对于需要经常进行调用处理的用户数据,即候选用户数据中选取出的高热度用户数据,会存储至内存中,以便于进行快速的读取。
73.在一些实施例的步骤s120中,可以理解的是,对于最初存储至硬盘的候选用户数据,会利用第二布谷鸟进行过滤,以剔除掉与候选用户键值无关的其他访问键值,因此,在第二布谷鸟过滤器中,需要将有效访问的key,即候选用户键值更新至第二布谷鸟过滤器中;同理,对于最初存储至内存的高热度用户数据,会利用第一布谷鸟进行过滤,以剔除掉与高热度用户键值无关的其他访问键值,因此,在第一布谷鸟过滤器中,需要将有效访问的key,即高热度用户键值更新至第一布谷鸟过滤器中。
74.在一些实施例的步骤s130中,可以理解的是,对于键值存储系统,是通过key访问来读取key所对应的value(值),即用户数据,因此利用第一布谷鸟过滤器来过滤掉key访问时的大量访问无效的key,仅当访问key属于高热度用户键值时,则访问建立以请求访问内存中对应的高热度用户数据。
75.当访问建立时却无法在内存中读取到高热度用户数据,则可能是由于内存出现故障或出现宕机情况,以及有可能被访问的高热度用户数据已在内存中被删除。因此,在这种情况下,为了顺利完成对该高热度用户数据的读取,则会建立对硬盘的访问,可以理解的是,硬盘存储的候选用户数据是包括了高热度用户数据,通过对应的查询访问,从而可以读取到需要的高热度用户数据。
76.在一些实施例的步骤s140中,可以理解的是,若经第一布谷鸟滤波器过滤后,未得到高热度用户键值,则说明此时访问的key不属于高热度用户键值,而可能是被访问频率较低的其他候选用户键值,因此需要再通过第二布谷鸟滤波器进一步过滤,若过滤得到候选用户键值,则对应读取硬盘中的候选用户数据。
77.需要说明的是,若依次经过第一布谷鸟过滤器、第二布谷鸟过滤器后,访问key仍未匹配到,则说明此时的访问key的相关信息并未存储至存储模块中,即未存储至内存或硬盘中,则此时的数据读取结果为失败。
78.请参阅图2,图2是本技术一些实施例的确定高热度用户数据方法的流程图。在本技术的一些实施例中,确定高热度用户数据方法具体包括但不限于步骤s111至步骤s113,下面结合图2对这三个步骤进行详细介绍。
79.步骤s111:建立热度信息哈希表并存储至硬盘中,热度信息哈希表所保存的数据包括候选用户键值和对应的热度信息,热度信息包括窗口数组、窗口游标、热度值;窗口数组的每个元素用于保存一个时间片段的候选用户键值的访问次数,窗口数组用于保存连续n个时间片段的访问次数,其中n为正整数,窗口数组的大小为n且各元素初始值为0;窗口游标用于指向窗口数组中的一个元素以确定时间片段需要更新访问次数;热度值用于确定候选用户键值对应的候选用户数据是否写入内存,热度值的初始值为0;
80.步骤s112:若窗口数组中全部元素的和大于等于预设的访问次数阈值,则将热度
值加1,若热度值等于预设的热度阈值,则将候选用户键值对应的候选用户数据写入内存,然后将窗口游标加1以指向窗口数组中下一个元素并对下一个元素更新,若热度值不等于预设的热度阈值,则将窗口游标加1以指向窗口数组中下一个元素并对下一个元素更新;
81.步骤s113:若窗口数组中全部元素的和小于预设的访问次数阈值,则将热度值减1,若热度值等于热度阈值减1,则将候选用户键值对应的候选用户数据在内存中删除,然后将窗口游标加1以指向窗口数组中下一个元素并对下一个元素更新,若热度值不等于热度阈值减1,则将窗口游标加1以指向窗口数组中下一个元素并对下一个元素更新。
82.在一些实施例的步骤s111中,可以理解的是,高热度用户数据是根据热度信息来确定的,将热度信息以哈希表的形式表示,即热度信息哈希表,其具体为多个候选用户键值和对应的多个热度信息成对组成多个哈希的数据结构,以形成哈希表,其中每个热度信息都包括了窗口数组、窗口游标、热度值。
83.下面以一个具体的实施例来解释热度信息。对于某一个候选用户键值,假设统计热度信息的总时长为10分钟,设置一个时间片段为1分钟,则设置窗口数组的大小为10个元素,每个元素的值表示一个时间片段下该候选用户键值的访问次数,窗口游标用于指向窗口数组中需要更新的元素。具体地,第一个元素记录了第一个1分钟的访问次数,第二个元素则记录了下一个1分钟的访问次数,依此类推,窗口数组将存满10个1分钟的访问次数。假设最初是从0时刻开始,则在1分钟时,窗口游标指向的位置为第1个元素,由于时间是连续的,可以理解的是,在10分钟时,窗口游标指向的位置为第10个元素。而当时间到达11分钟时,此时游标将回到第一个元素,即指向第一个元素来更新第11分钟下该候选用户键值的访问次数,此时,最初的第1分钟所记录的访问次数将被第11分钟的访问次数代替,同理,当时间到达12分钟时,窗口游标将指向第二个元素,初始第2分钟的访问次数将被第12分钟的访问次数代替,依次类推,窗口游标将随时间循环游动。因此,可以理解的是,窗口数组始终保存着连续时间的10分钟时长的访问次数,同时以每1分钟作为节点进行访问次数的更新。
84.在一些实施例的步骤s112中,在前述实施例的基础上,下面具体解释如何通过热度信息确定高热度用户数据。对于每一个总时长,即每一个10分钟时长,首先将窗口数组的所有元素相加,即得到这个10分钟内的该候选用户键值的总访问次数,当这个总访问次数大于预设的访问次数阈值,则热度值加1,当热度值等于预设热度阈值时,则该候选用户键值对应的候选用户数据将写入内存,即该候选用户数据为高热度用户数据;若热度值不等于预设热度阈值,则继续随时间更新窗口数组中的元素。
85.可以理解的是,上述判断过程可在每1分钟进行一次,对于每一个连续的10分钟,若在一连续时间段下,其该候选用户键值访问总能符合高频次访问的特征,即总访问次数大于预设的访问次数阈值,则可理解为,热度值在这一连续时间段下不断累加达到热度阈值大小,则最终认为该候选用户数据为高热度用户数据。
86.在一些实施例的步骤s113中,在前述实施例的基础上,同理,可以理解的是,对于此时的高热度数据,一旦当总访问次数小于预设的访问次数阈值,热度值减1,即表示此时该候选用户键值访问不再符合高频次访问的特征,即热度值等于热度阈值减1,则此时该候选用户数据不再是高热度用户数据,该候选用户数据将从内存中删除,并对下个元素进行更新。若热度值不等于热度阈值减1,则为一些其他情况,将正常进行后续对下一个元素的访问次数更新。
87.请参阅图2,图2是本技术一些实施例的确定高热度用户数据方法的流程图。在本技术的一些实施例中,确定高热度用户数据方法具体还包括但不限于步骤s114和步骤s115,下面结合图2对这两个步骤进行详细介绍。
88.步骤s114:若热度值等于0,则从热度信息哈希表中删除候选用户键值的热度信息;
89.步骤s115:若热度值不等于0,则将窗口游标加1以指向窗口数组中下一个元素并对下一个元素更新。
90.在一些实施例的步骤s114至步骤s115中,可以理解的是,当某个候选用户数据的总访问次数维持长时间的低频次访问,当其热度值低至0时,则认为该候选用户数据不具备认定为高热度用户数据的可能,则在热度信息哈希表中将删除掉对应的哈希,以提升整体数据处理操作的效率,减轻存储压力以提高性能。
91.请参阅图1,图1是本技术一些实施例的内存和硬盘集成存储数据处理方法的混合存储模式的一个可选的流程图。在本技术的一些实施例中,内存和硬盘集成存储数据处理方法的混合存储模式具体还包括步骤s150和步骤s160,下面结合图1对这两个步骤进行详细介绍。
92.步骤s150:获取第一待写入数据,第一待写入数据与候选用户键值对应;
93.步骤s160:若经第二更新处理后的第二布谷鸟过滤器过滤成功得到候选用户键值,则请求访问硬盘以完成对第一待写入数据的写入。
94.在一些实施例的步骤s150和步骤s160中,可以理解的是,利用本发明实施例的内存和硬盘集成存储数据处理方法,在实现步骤s110至s140的对用户数据读取的基础上,还能进一步实现对用户数据的写入。
95.请参阅图3,图3是本技术一些实施例的内存和硬盘集成存储数据处理方法的高速存储模式的一个可选的流程图。在本技术的一些实施例中,内存和硬盘集成存储数据处理方法的高速存储模式具体包括但不限于步骤s210至步骤s230,下面结合图3对这三个步骤进行详细介绍。
96.步骤s210:将候选用户数据分别全量存储至内存和硬盘中;
97.步骤s220:根据候选用户数据对应的候选用户键值对第一布谷鸟过滤器中进行第三更新处理;
98.步骤s230:利用第三更新处理后的第一布谷鸟过滤器对访问的用户键值进行过滤,若经第三更新处理后的第一布谷鸟过滤器过滤成功得到候选用户键值,则请求访问内存以完成候选用户数据的读取,若内存出现故障,则请求访问硬盘以完成候选用户数据的读取,并将候选用户数据写入内存。
99.在一些实施例的步骤s210至步骤s230中,可以理解的是,步骤s110至步骤s160表示本发明实施例的混合存储模式,在此基础上,步骤s210至步骤s230表示本发明实施例高速存储模式的读取数据步骤。具体地,候选用户数据将在内存和硬盘中各存储一份,经第一布谷鸟过滤器过滤后,请求访问内存来读取候选用户数据,若内存出现故障,则再请求访问硬盘以完成用户数据读取。在高速存储模式下,所有的候选用户数据都通过内存进行高速访问读取,因此,可以理解为通过占用存储空间来换取数据读取的速度。
100.请参阅图3,图3是本技术一些实施例的内存和硬盘集成存储数据处理方法的高速
存储模式的一个可选的流程图。在本技术的一些实施例中,内存和硬盘集成存储数据处理方法的高速存储模式具体还包括但不限于步骤s240和步骤s250,下面结合图3对这两个步骤进行详细介绍。
101.步骤s240:获取第二待写入数据,第二待写入数据与候选用户键值对应;
102.步骤s250:若经第三更新处理后的第一布谷鸟过滤器过滤成功得到候选用户键值,则请求访问内存以完成对第二待写入数据的写入,并将第二待写入数据异步写入硬盘。
103.在一些实施例的步骤s240和步骤s250中,可以理解的是,在步骤s210至步骤s230的基础上,本发明实施例的高速存储模式可进一步进行写入数据操作。具体地,在第一布谷鸟过滤器过滤成功后,首先将数据写入内存,然后异步写入硬盘。
104.请参阅图4,图4是本技术一些实施例的内存和硬盘集成存储数据处理方法的低速存储模式的一个可选的流程图。在本技术的一些实施例中,内存和硬盘集成存储数据处理方法的低速存储模式具体包括但不限于步骤s310至步骤s360,下面结合图4对这六个步骤进行详细介绍。
105.步骤s310:将候选用户数据分别全量存储至硬盘中;
106.步骤s320:根据候选用户数据对应的候选用户键值对第二布谷鸟过滤器进行第四更新处理;
107.步骤s330:利用第四更新处理后的第二布谷鸟过滤器对访问的用户键值进行过滤;
108.步骤s340:若经第四更新处理后的第二布谷鸟过滤器过滤成功获得候选用户键值,则请求访问硬盘以完成对候选用户数据的读取;
109.步骤s350:获取第三待写入数据,第三待写入数据与候选用户键值对应;
110.步骤s360:若经第四更新处理后的第二布谷鸟过滤器过滤成功获得候选用户键值,则请求访问硬盘以完成对第三待写入数据的写入。
111.在一些实施例的步骤s310至步骤s360中,可以理解的是,本发明实施例还可包括低速存储模式。具体地,低速存储模式仅利用硬盘,经第二布谷鸟过滤器过滤成功后,可完成对硬盘的数据读取或写入。低速存储模式下,内存的性能压力较低,但相对地换取了读写速度的降低。
112.本技术实施例提供的一种内存和硬盘集成存储数据处理方法,通过利用分布式存储的数据访问方式,即由候选用户键值对应访问候选用户数据,具体地,根据混合存储模式、高速存储模式、低速存储模式来对应选择访问内存或硬盘,完成用户数据的读写;根据候选用户数据的热度信息来从中确定高热度用户数据,具体地,通过对热度信息哈希表所携带的热度信息进行相关的判断操作,从而可确定得到高热度用户数据;高热度用户数据将存储至内存,而候选用户数据将存储至硬盘。因此,在用户进行数据访问时,首先第一布谷鸟过滤器和第二布谷鸟过滤器将过滤掉访问时无效的用户key,以防止大量无效key访问的泄洪攻击导致缓存击穿,从而应对内存和硬盘带来的性能压力,极大增强应用程序的健壮性;然后对于被访问频率相对更高的高热度用户数据,将通过内存读取获得,当内存无法获取需要的用户数据后,则最后可访问硬盘将需要的用户数据读取。因此,利用该集成存储进行数据处理,对于常用的用户数据可调用内存,以提升读取速度;而当内存出现故障如宕机时,由于硬盘同时存储了一份用户数据,则不会造成数据丢失,实现将两种存储方式的优
势结合起来。同时,还可采用高速存储模式和低速存储模式,从而增强本发明实施例的数据处理方法的多样性,以适应不要需求场景。
113.请参阅图5,本技术实施例还提供了一种内存和硬盘集成存储数据处理应用系统,可以实现上述一种内存和硬盘集成存储数据处理方法,该应用系统包括集成存储数据处理模块、存储模块。
114.集成存储数据处理模块包括上层应用程序410、集成存储数据处理sdk工具包420、第一布谷鸟过滤器430、第二布谷鸟过滤器440,上层应用程序410用于调用集成存储数据处理sdk工具包420,集成存储数据处理sdk工具包420用于执行如本发明实施例中的任意一种内存和硬盘集成存储数据处理方法,第一布谷鸟过滤器430和第二布谷鸟过滤器440皆用于过滤访问的用户键值;
115.存储模块包括硬盘450和内存460,硬盘450用于存储候选用户数据,内存460用于存储高热度用户数据或候选用户数据。
116.可以理解的是,用户通过上层应用程序410,经过api来调用集成存储数据处理sdk工具包420,集成存储数据处理sdk工具包420集成了实现如本发明实施例中的任意一种内存和硬盘集成存储数据处理方法的功能。
117.需要说明的是,本技术实施例的内存和硬盘集成存储数据处理应用系统用于实现上述内存和硬盘集成存储数据处理方法,本技术实施例的应用系统中部分模块或元件的使用与前述的数据处理方法相对应,具体的处理过程请参照前述的数据处理方法,在此不再赘述。
118.本技术实施例提供的一种内存和硬盘集成存储数据处理应用系统,可以实现上述一种内存和硬盘集成存储数据处理方法,在运行存储数据处理sdk工具包时,通过利用分布式存储的数据访问方式,即由候选用户键值对应访问候选用户数据,根据候选用户数据的热度信息来从中确定高热度用户数据,高热度用户数据将存储至内存,而候选用户数据将存储至硬盘。因此,在用户进行数据访问时,首先第一布谷鸟过滤器和第二布谷鸟过滤器将过滤掉访问时无效的用户key,以防止大量无效key访问的泄洪攻击导致缓存击穿,从而应对内存和硬盘带来的性能压力,极大增强应用程序的健壮性;然后对于被访问频率相对更高的高热度用户数据,将通过内存读取获得,当内存无法获取需要的用户数据后,则最后可访问硬盘将需要的用户数据读取。因此,利用该集成存储进行数据处理,对于常用的用户数据可调用内存,以提升读取速度;而当内存出现故障如宕机时,由于硬盘同时存储了一份用户数据,则不会造成数据丢失,实现将两种存储方式的优势结合起来。
119.本技术实施例还提供了一种计算机设备,该计算机设备包括:至少一个存储器,至少一个处理器,至少一个计算机程序,至少一个计算机程序被存储在至少一个存储器中,至少一个处理器执行至少一个计算机程序以实现上述实施例中任一种的内存和硬盘集成存储数据处理方法。该计算机设备可以为包括平板电脑、车载电脑等任意智能终端。
120.请参阅图6,图6示意了另一实施例的一种计算机设备的硬件结构,该计算机设备包括:
121.处理器510,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
122.存储器520,可以采用只读存储器(readonlymemory,rom)、静态存储设备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行本技术实施例的一种文本信息提取方法;
123.输入/输出接口530,用于实现信息输入及输出;
124.通信接口540,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;
125.总线550,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息;
126.其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
127.本技术实施例还提供了一种存储介质,该存储介质为计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序用于使计算机执行上述实施例中任一种内存和硬盘集成存储数据处理方法。
128.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
129.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
130.本领域技术人员可以理解的是,图1至6中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
131.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
132.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
133.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
134.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两
个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
135.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
136.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
137.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
138.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
139.以上参阅附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1