一种自适应分布式布隆过滤器的数据写入方法和装置制造方法及图纸

技术编号:38617404 阅读:55 留言:0更新日期:2023-08-26 23:44
本申请提供了一种自适应分布式布隆过滤器的数据写入方法和装置,该方法基于布隆过滤器组实现,布隆过滤器组包括第一布隆过滤器和第二布隆过滤器,首先根据在第一布隆过滤器和/或第二布隆过滤器中写入数据的情况设置所述布隆过滤器组的状态;然后获取所述布隆过滤器组的当前状态,根据所述当前状态以及第一布隆过滤器和/或第二布隆过滤器对应数组集合中的一号元素总个数和/或二号元素总个数对第一布隆过滤器或第二布隆过滤器进行初始化,以将数据写入第一布隆过滤器和/或第二布隆过滤器,同时更新并记录一号元素总个数和/或二号元素总个数。本申请在写入数据时,能够自适应重置布隆过滤器,删除数据,实现布隆过滤器的自动扩容。自动扩容。

【技术实现步骤摘要】
一种自适应分布式布隆过滤器的数据写入方法和装置


[0001]本申请涉及计算机通信领域,尤其涉及一种自适应分布式布隆过滤器的数据写入方法和装置。

技术介绍

[0002]近年来,随着产品业务的发展,很多业务场景需要对数据进行去重,如网页url去重、垃圾邮件识别、曝光内容去重、大集合重复元素判断、缓存穿透等,而采用布隆过滤器便可以很好的解决这一问题。
[0003]布隆过滤器(Bloom Filter)是1970年由布隆提出的,它实际上是由一个很长的二进制向量和一系列随机映射函数组成的。布隆过滤器的优点是空间效率和查询时间都比一般的算法要好的多。
[0004]但是布隆过滤器,不能直接删除数据,比如在需要近7天曝光不重复的场景下,无法直接使用布隆过滤器,因为如果不删除数据,布隆过滤器的存储容量会一直增长,因此需要一个自适应的布隆过滤器来解决需要布隆过滤器容量一直增长的问题。

技术实现思路

[0005]有鉴于此,本申请提供一种自适应分布式布隆过滤器的数据写入方法和装置。
[0006]本申请第一方面提供一种自适应分布式本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种自适应分布式布隆过滤器的数据写入方法,其特征在于,基于布隆过滤器组实现,所述布隆过滤器组包括第一布隆过滤器和第二布隆过滤器;所述方法包括:根据在第一布隆过滤器和/或第二布隆过滤器中写入数据的情况设置所述布隆过滤器组的状态;获取所述布隆过滤器组的当前状态,根据所述当前状态以及第一布隆过滤器和/或第二布隆过滤器对应数组集合中的一号元素总个数和/或二号元素总个数对第一布隆过滤器或第二布隆过滤器进行初始化,以将数据写入第一布隆过滤器和/或第二布隆过滤器,同时更新并记录一号元素总个数和/或二号元素总个数。2.根据权利要求1所述的自适应分布式布隆过滤器的数据写入方法,其特征在于,所述根据在第一布隆过滤器和/或第二布隆过滤器中写入数据的情况设置布隆过滤器组的状态具体包括:数据初始写入第一布隆过滤器时,将布隆过滤器组的状态设置为0;数据正在写入第一布隆过滤器且写入的数据总数小于第一布隆过滤器的容量的一半时,将布隆过滤器组的状态设置为1;数据正在同时写入第一布隆过滤器和第二布隆过滤器时,将布隆过滤器组的状态设置为2;数据只写入第二布隆过滤器且写入的数据总数小于第二布隆过滤器的容量的一半时,将布隆过滤器组的状态设置为3;数据只写入第二布隆过滤器且同时已写入其容量的一半的数据时,将布隆过滤器组的状态设置为4。3.根据权利要求1所述的自适应分布式布隆过滤器的数据写入方法,其特征在于,所述对第一布隆过滤器或第二布隆过滤器进行初始化具体包括:首先获取预配置的容量;然后根据预配置的容量和期望的误判率计算第一布隆过滤器或第二布隆过滤器对应的数组的长度以及最优哈希函数的个数;最后根据所述数组的长度和所述最优哈希函数的个数对第一布隆过滤器或第二布隆过滤器进行初始化以获取第一布隆过滤器或第二布隆过滤器的容量,并记录第一布隆过滤器或第二布隆过滤器中写入数据的第一开始时间或第二开始时间。4.根据权利要求3所述的自适应分布式布隆过滤器的数据写入方法,其特征在于,所述获取预配置的容量还包括:根据第一布隆过滤器或第二布隆过滤器中写入数据的第一开始时间或第二开始时间和...

【专利技术属性】
技术研发人员:黄肖飞
申请(专利权)人:北京陌陌信息技术有限公司
类型:发明
国别省市:

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

1