[发明专利]一种布隆过滤器中数据的处理方法以及布隆过滤器有效
申请号: | 201710444590.0 | 申请日: | 2017-06-13 |
公开(公告)号: | CN109145158B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 汪漪;卢建元;刘斌 | 申请(专利权)人: | 华为技术有限公司;清华大学 |
主分类号: | G06F16/90 | 分类号: | G06F16/90;G06F16/901 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 过滤器 数据 处理 方法 以及 | ||
本发明实施例公开了一种布隆过滤器中数据的处理方法以及布隆过滤器,涉及存储技术领域,用以提高布隆过滤器的查找与存储效率。包括:获取关键值;利用K个不同的哈希函数对关键值分别作哈希运算,计算得到K个哈希值;根据K个哈希值,计算得到K个地址,K个地址中每个地址与目标数据块包括的K个Word中的一个Word一一关联,一个地址用于指示与该地址关联的Word中的一个比特位;根据K个地址,设置每个地址在各自关联的Word中所指示的比特位上的参数,或者,读取K个地址在各自关联的Word中所指示的比特位上的参数,以根据读取参数确定关键值是否属于布隆过滤器。本发明实施例用于确定关键值是否位于布隆过滤器的过程。
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种布隆过滤器中数据的处理方法以及布隆过滤器。
背景技术
布隆过滤器(Bloom Filter)可以把一个大的数据集合编码压缩到非常小的存储空间上,属于空间高效的随机数据结构,由于布隆过滤器的查询只可以回答一个问题:所查元素是否属于一个集合。因此,通常可以在设计计算机软件时,可以用布隆过滤器判断一个元素是否在一个集合中。但是,在实际过程中不属于一个集合中的元素通常会和属于集合中的元素产生哈希冲突,因此会造成布隆过滤器的查询结果存在假阳性(FalsePositive)。假阳性表示:一个不属于编码集合的元素被判定为属于这个集合。在实际应用中,为不显著影响程序的性能,假阳性概率通常会被设置为一个特别小的值,比如10-6布隆过滤器是由Burton H.Bloom于1970年提出,称之为标准布隆过滤器(Standard BloomFilter,SBF)。
SBF把一个集合S编码存储在一个有m比特的位向量上。位向量的所有比特被初始化为0。假设SBF要将集合S={x1,x2,…,xn}中的n个元素编码在SBF中。每个元素使用k个独立随机哈希函数h1,h2,…,hk,因此,SBF需要在位向量中选择k个比特,通常会将m个比特中被选中的比特位置1。每个哈希函数生成哈希值的范围属于[0,m-1]。当所有的元素都执行完一次编码过程,布隆过滤器的插入过程就完成了。位向量中的比特由所有的哈希函数和所有的元素共享。因此SBF中的一个比特可能被多次置1,但只有第一次有影响。图1所示为SBF数据结构的一个示例。
插入过程结束后,SBF就可以执行它的查询功能了。给定一个元素e,SBF需要判定该元素是否属于集合S。如果所有位于hi(e),1≤i≤k的比特都是1,那么可以判定元素e∈S。如果位于hi(e),1≤i≤k的比特至少有一个0,那么可以判定一个假阳性结果在如下情况时发生:但是位于hi(e),1≤i≤k的比特恰好都被置1。
但是,布隆过滤器在执行一次元素插入过程中,由于SBF在位向量中所选择的k个比特有可能位于一个Word中,SBF使用k个哈希函数在这个Word内映射k个比特以完成元素的插入,这样有可能存在访问冲突,且k个元素是依次完成编码或者读取的,这样每次访存都会产生一次高速缓存缺失,较高的缓存缺失率会极大降低程序性能。
发明内容
本发明实施例提供一种布隆过滤器中数据的处理方法以及布隆过滤器,用以提高布隆过滤器的查找与存储效率。
为达到上述目的,本发明实施例采用如下技术方案:
本发明实施例的第一方面,提供一种布隆过滤器中数据的处理方法,包括:获取关键值;利用K个不同的哈希函数对关键值作哈希运算,得到K个哈希值;根据K个哈希值,计算得到K个地址,K个地址中每个地址与目标数据块包括的K个Word字中的一个Word一一关联;不同的地址与不同的Word关联,一个地址用于指示与该一个地址关联的Word中的一个比特位;根据K个地址,设置K个地址中每个地址在各自关联的Word中所指示的比特位上的参数,或者,读取K个地址中每个地址在各自关联的Word中所指示的比特位上的参数,并根据读取的参数确定关键值是否属于布隆过滤器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;清华大学,未经华为技术有限公司;清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710444590.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种云数据库的数据转换方法
- 下一篇:一种对数据进行处理的方法和装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置