数据削重的利器--cuckoo filter

本文探讨了Cuckoo Filter如何结合Cuckoo Hash和Bloom Filter思想,用于分布式存储系统的数据消重。它通过三维hash避免假阴性并支持删除操作。在面对分布式削重的难点时,提出利用Cuckoo Filter作为解决方案,其高存储效率和定位分片位置的能力优于传统方案。同时提到了CPU缓存优化和Roaring Bitmap作为替代选择。
摘要由CSDN通过智能技术生成

最近再看Bloom Filter的删除问题,偶然间看到cuckoo filter的数据结构。Bloom Filter的思想是通过多维hash的办法,降低hash冲突的概率.。Basic Bloom Filter仅存储位图信息,只能判断一个key是否在集群内,可能存在假阳性(false positive),不存在假阴性(false negtive)。counting bloom filter还可以做统计计数,支持删除,但是空间消耗比较大。cuckoo hash则是一种高效的hash表实现,也是通过多维hash的办法降低hash桶的冲突提高hash表的存储效率。

cuckoo filter的思想是结合cuckoo hash和Bloom Filter思想一起:

  • cuckoo filter是三维hash,第一维度hash找到cuckoo hash的槽位号,第二维hash计算key的指纹,第三位hash计算hash冲突key被踢走的位置
  • 通过前面三次hash计算后,key对应的位置仅当存在有限的8个位置,指纹是唯一的,这样就可以避免假阴性,同时采用了cukko hash表,也可以支持删除操作
  • 通过控制key的hash指纹的大小,来调整整个数据结构的空间占用的效率和假阳性的概率。指纹越大,空间占用越大,假阳性的概率越低
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值