Bloom Filter 系列改进之Split Bloom Filter

    简单的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,则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值