【技术实现步骤摘要】
一种布谷鸟过滤器及数据插入、查询、删除方法
[0001]本专利技术属于计算机信息表示与检索
,尤其涉及一种布谷鸟过滤器及数据插入、查询、删除方法。
技术介绍
[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]近似成员查询数据结构(approximate membership query data structure,AMQ)以一种紧凑(compact)格式保存了数据域U上的一个键集S的概率表示,并支持数据的插入与查询操作,部分AMQs支持数据删除操作;对于集合中已有元素的查询,它能够高效地完成集合成员查询,对于集合外元素的查询,它存在一个可控的误报概率(以下称为假阳率),即查询一个不存在于集合内的元素时存在一定概率返回该元素存在于集合中;AMQ最大的特点是其高效的空间效率,在一个可接受的假阳率下,AMQ可以在内存资源有限的设备如网络路由器、交换机或loT设备上工作。
[0004]布隆过滤器(Bloom Filter,BF)是AMQ的典型示例,它支持对一组键的集合S进行插入和查询操作,如果查询集合S中存在的键,布隆过滤器能够快速完成查询;而对于集合S以外的键,由于它是一种概率结构,查找返回“不存在”的概率至少为1
‑
ε,其中n是已经添加元素的数量,k为使用哈希函数的数量,m表示布隆过滤器的长度,这表明BF提供了可控的假阳率ε,它在空间效率和查询准确率之间提供了一种权衡机制,即布隆过滤器的长度会直接影响误报率,布隆过滤器越长其假阳 ...
【技术保护点】
【技术特征摘要】
1.基于数据指纹位置标记的布谷鸟过滤器,其特征在于,由指纹记录表和位置标记表构成;所述指纹记录表,由m个桶组成,用来保存插入的数据指纹,其中,每个桶有b个保存数据指纹的槽;所述位置标记表,由m个向量组成,为每个桶创建一个向量,用来记录数据指纹在指纹记录表中的插入位置信息;其中,每个数据指纹对应两个候选桶,从中选择一个桶的一个槽来保存数据指纹,当且仅当最终保存在第二个候选桶中时,在第二个候选桶对应的向量中,记录槽的位置下标值。2.如权利要求1所述的基于数据指纹位置标记的布谷鸟过滤器,其特征在于,所述桶的个数m,是2的指数次方。3.如权利要求1所述的基于数据指纹位置标记的布谷鸟过滤器,其特征在于,所述数据指纹的计算方式为:获取待插入数据;通过哈希函数和取模操作,计算待插入数据的数据摘要:dig
x
=h
a
(x)mod 2
n
其中,n为数据摘要长度,h
a
(
·
)表示定长输出的哈希函数;基于待插入数据和数据摘要,直接取用数据摘要的低位部分作为待插入数据的数据指纹。4.如权利要求1所述的基于数据指纹位置标记的布谷鸟过滤器,其特征在于,所述两个候选桶的计算方式,具体为:候选桶的计算方式,具体为:其中,表示第一个候选桶,表示第二个候选桶,x表示待插入的数据,dig
x
表示数据摘要,f
x
表示数据指纹,l为指纹长度,h
b
(
·
)表示定长输出的哈希函数,表示桶的个数。5.一种基于布谷鸟过滤器的数据插入方法,其特征在于,所述布谷鸟过滤器为如权利要求1
‑
4任一项所述的基于数据指纹位置标记的布谷鸟过滤器,当插入一个数据x时,首先计算x对应的数据摘要dig
x
、数据指纹f
x
和两个候选桶然后进行插入,插入过程为:从两个候选桶中选择一个桶的一个空槽e
j
来保存数据指纹,如果两个候选桶都没有空槽,则选择一个槽e
j
,通过驱逐过程驱逐槽e
j
中的原有数据指纹f
x
′
,将数据指纹f
x
保存到空出来的槽e
j
中;如果数据指纹f
x
最终保存在第二个候选桶中,则将槽e
j
的位置下标值j存入桶对应的向量中。6.如权利要求5所述的一种基于布谷鸟过滤器的数据插入方法,其特征在于,所述从两个候选桶中选择一个桶的一个空槽e
j
来保存数据指纹,具体分为两种情况:(1)如果...
【专利技术属性】
技术研发人员:赵川,魏宇楠,赵圣楠,荆山,陈贞翔,杨波,
申请(专利权)人:泉城省实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。