一种计算设备、数据处理方法及相关设备与流程

文档序号:34217932发布日期:2023-05-19 19:46阅读:38来源:国知局
一种计算设备、数据处理方法及相关设备与流程

本技术涉及存储,尤其涉及一种计算设备、数据处理方法及相关设备。


背景技术:

1、键值对(key-value,kv)存储是一种重要的存储技术,已广泛应用于数据去重、网络社交平台、电子商务及互联网服务等领域。键值对存储系统将数据按照键值对的形式进行组织、索引和存储,对于任一键值对来说,根据该键值对的键进行查询,即可得到该键值对的值。

2、键值对存储系统一般使用哈希表来保存键值对。随着键值对数量的增多,哈希表占用的存储空间较大,因此,键值对存储系统一般需要将用于保存键值对的哈希表持久化于成本较低的大容量存储器(例如硬盘)中。虽然哈希表可以提供快速的查询操作,但是,由于成本较低的大容量存储器的访存效率较低,对哈希表的大量访问将带来较大的查询时延。


技术实现思路

1、本技术实施例提供一种计算设备、数据处理方法及相关设备,用于减少对访存效率较低的存储器的访问次数,以减少查询时延。

2、为解决上述技术问题,本技术实施例提供一种计算设备,包括处理器、第一存储器和第二存储器,所述第一存储器的访问时延高于所述第二存储器的访问时延,其中,所述第一存储器用于保存哈希表,所述哈希表用于保存多个键值对,所述键值对包括关键字和值,所述第二存储器用于保存过滤器,所述过滤器用于保存关键字的指纹。所述处理器用于获取数据读取请求,所述数据读取请求包括目标关键字,所述数据处理请求用于请求查询所述目标关键字对应的值。之后,所述处理器用于从所述过滤器中查询所述目标关键字的指纹,当未查询到所述目标关键字的指纹时,返回所述数据读取请求的响应消息,所述响应消息用于指示所述目标关键字对应的值不存在;或者,当查询到所述目标关键字的指纹时,根据所述哈希表获取所述目标关键字对应的值。若查询结果指示滤波器不包括第一键的指纹,处理器可以不从哈希表中查询第一键对应的键值对,这样有利于减少处理器对第一存储器的访问次数,以减少查询时延。

3、可选的,所述处理器还用于:获取数据写入请求,所述数据写入请求包括待写键值对,所述待写键值对包括待写关键字和待写关键字对应的值;根据目标哈希函数在所述哈希表中插入待写键值对;根据所述目标哈希函数在所述过滤器中插入所述待写关键字的指纹。由于哈希表和滤波器使用相同的哈希函数,有利于减少处理器执行的哈希运算的次数,从而有利于节约处理器的计算资源。

4、可选的,所述处理器具体用于:使用所述目标哈希函数获取所述待写关键字的目标哈希值;将所述待写键值对插入所述哈希表的第一桶中,其中,所述第一桶为所述待写关键字的目标哈希值在所述哈希表中指示的地址空间;将所述待写关键字的指纹插入所述过滤器的第二桶中,其中,所述第二桶为所述待写关键字的目标哈希值在所述过滤器中指示的地址空间。哈希表和过滤器的桶一般包括多个分片,每个分片可以用于保存一个数据(例如键值对或关键字的指纹),当两个关键字的目标哈希值相同时,可以将二者保存在该目标哈希值对应的桶中的不同分片,从而将两个关键字映射到不同存储位置,以减少冲突。

5、可选的,所述处理器具体用于:将所述待写键值对插入所述第一桶中的第一分片;将所述待写关键字的指纹插入所述第二桶中的第二分片,所述第一分片与所述第二分片相关联。这样,若处理器310在过滤器的某个分片中查询到目标关键字,可以根据该分片索引到哈希表中相关联的分片,以快速定位到目标键值对,从而减少对哈希表的访问时延。

6、可选的,所述处理器具体用于:使用所述目标哈希函数获取所述目标关键字的目标哈希值;遍历所述滤波器的第二目标桶中的分片,以筛选包括所述目标关键字的指纹的一个或多个分片,所述第二目标桶为所述目标关键字的目标哈希值在所述滤波器中指示的地址空间;若筛选到所述一个或多个分片,在所述哈希表的第一目标桶中与所述一个或多个分片关联的分片中读取所述目标关键字对应的值,有利于提高在哈希表中查询目标键值对的成功率。其中,所述第一目标桶为所述目标关键字的目标哈希值在所述哈希表中指示的地址空间。

7、可选的,所述处理器还用于:获取数据删除请求,所述数据删除请求包括所述目标关键字,所述数据删除请求用于请求删除所述目标关键字对应的键值对;若在所述第一目标桶中与所述一个或多个分片关联的第一目标分片中查询到所述目标关键字,从所述第一目标分片中删除所述目标关键字对应的键值对,并且在所述一个或多个分片中与所述第一目标分片关联的分片中删除所述目标关键字的指纹。过滤器中的分片可以与哈希表中的分片一一对应,这样,从哈希表中删除目标键值对后,在过滤器中删除相应关键字的指纹,不会影响处理器310使用过滤器对哈希表中其他键值对进行判断的准确性。可见,本技术实施例提供的计算设备300能够支持对哈希表和过滤器的数据删除,并且不会因此降低使用过滤器处理数据读取请求的准确性。

8、第二方面,本技术实施例提供一种数据处理方法,所述方法应用于计算设备,所述计算设备包括处理器、第一存储器和第二存储器,所述第一存储器的访问时延高于所述第二存储器的访问时延,其中,所述第一存储器用于保存哈希表,所述哈希表用于保存多个键值对,所述键值对包括关键字和值,所述第二存储器用于保存过滤器,所述过滤器用于保存关键字的指纹,所述方法包括:所述处理器获取数据读取请求,所述数据读取请求包括目标关键字,所述数据处理请求用于请求查询所述目标关键字对应的值;所述处理器从过滤器中查询所述目标关键字的指纹,所述过滤器用于保存关键字的指纹;当未查询到所述目标关键字的指纹时,所述处理器返回所述数据读取请求的响应消息,所述响应消息用于指示所述目标关键字对应的值不存在;或者,当查询到所述目标关键字的指纹时,所述处理器根据所述哈希表获取所述目标关键字对应的值。

9、可选的,所述方法还包括:所述处理器获取数据写入请求,所述数据写入请求包括待写键值对,所述待写键值对包括待写关键字和待写关键字对应的值;所述处理器根据目标哈希函数在所述哈希表中插入待写键值对;所述处理器根据所述目标哈希函数在所述过滤器中插入所述待写关键字的指纹。可选的,所述处理器根据目标哈希函数在所述哈希表中插入待写键值对包括:所述处理器使用所述目标哈希函数获取所述待写关键字的目标哈希值;所述处理器将所述待写键值对插入所述哈希表的第一桶中,其中,所述第一桶为所述待写关键字的目标哈希值在所述哈希表中指示的地址空间。所述处理器根据所述目标哈希函数在所述过滤器中插入所述待写关键字的指纹包括:所述处理器将所述待写关键字的指纹插入所述过滤器的第二桶中,其中,所述第二桶为所述待写关键字的目标哈希值在所述过滤器中指示的地址空间。

10、可选的,所述处理器将所述待写键值对插入所述哈希表的第一桶中包括:所述处理器将所述待写键值对插入所述第一桶中的第一分片。所述处理器将所述待写关键字的指纹插入所述过滤器的第二桶中包括:所述处理器将所述待写关键字的指纹插入所述第二桶中的第二分片,所述第一分片与所述第二分片相关联。

11、可选的,所述处理器从过滤器中查询所述目标关键字的指纹包括:所述处理器使用所述目标哈希函数获取所述目标关键字的目标哈希值;所述处理器遍历所述滤波器的第二目标桶中的分片,以筛选包括所述目标关键字的指纹的一个或多个分片,所述第二目标桶为所述目标关键字的目标哈希值在所述滤波器中指示的地址空间。若筛选到所述一个或多个分片,所述处理器根据所述哈希表获取所述目标关键字对应的值包括:所述处理器在所述哈希表的第一目标桶中与所述一个或多个分片关联的分片中读取所述目标关键字对应的值,其中,所述第一目标桶为所述目标关键字的目标哈希值在所述哈希表中指示的地址空间。

12、可选的,所述方法还包括:所述处理器获取数据删除请求,所述数据删除请求包括所述目标关键字,所述数据删除请求用于请求删除所述目标关键字对应的键值对;若在所述第一目标桶中与所述一个或多个分片关联的第一目标分片中查询到所述目标关键字,所述处理器从所述第一目标分片中删除所述目标关键字对应的键值对,并且在所述一个或多个分片中与所述第一目标分片关联的分片中删除所述目标关键字的指纹。

13、由于本技术提供的方法可以为第一方面提供的计算设备中处理器所执行的方法,因此第二方面提供的方法所能获得到的技术效果可参考前述对应的计算设备所获得的技术效果,此处不再赘述。

14、第三方面,本技术实施例还提供一种计算设备,包括处理器、存储器;所述处理器用于执行所述存储器中存储的指令,以使所述计算设备执行如权利要求7至12中任一项所述的方法。

15、第四方面,本技术实施例还提供一种计算机可读存储介质,包括指令,当其在计算设备上运行时,使得所述计算设备执行第二方面中任意一种可能的实现方式。

16、第五方面,本技术实施例还提供一种计算机程序产品,当其在计算机上运行时,使得所述计算设备执行第二方面中任意一种可能的实现方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1