Bloom Filter 系列改进之Split Bloom Filter

Split Bloom Filter是Bloom Filter的一种改进,旨在解决元素数量增加导致的误判率上升问题。通过使用多个位串向量,当元素数量达到一定阈值时,动态调整位串向量的数量以保持预设的误判率。在查找、添加元素时,它检查所有位串向量,只要有一个向量的所有相关位被置1,就认为元素可能存在于集合中。这种方法在保持相同空间需求的情况下,提供了更优的误判率,并且在分布式系统中能更好地适应不同节点的数据量差异,提高存储效率。
摘要由CSDN通过智能技术生成

    简单的Bloom Filter中,如果集合中的元素个数不断增加,那么位数组价格无法保持最初的设计目标,会致使查找误差不断加大,最终导致Bloom Filter的算法不可用,在实际应用中的Hash函数个数k,以及采用的位数组大小m往往是固定的,尤其在分布式的环境下,往往希望维护全局一直的m和k,这种情况下的元素增加势必导致很多混乱。

    Split bloom filter的基本思想是使用s个位串向量表达数据集合。在插入元素时,一旦集合中元素个数达到一定程度影响了最初设计的误差率指标,那么就计算出采用多个位串向量表达数据集合才能保持想要的误差率,然后按照新的位串向量数目更新位串向量集。如果元素的增加没有达到集合数目允许的最大向量数目,则在现有位串向量中随机选择一个来表达新的元素。在查询元素x时,只要s个位串向量中有一个向量的k个相关位同时被置为1,那么x属于该集合。

    拆分Bloom Filter使用l*m的位串矩阵表达集合S = {s1,s2,...,sn},设有k个具有均匀分布特性的hash函数hi,则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值