探索:解决Bloom filter删除问题的一种可行思路

本文探讨了如何解决Bloom filter不支持删除的问题,提出通过添加一个缓存层(另一个Bloom filter)来存储删除的元素。这种方法旨在保持高并发性能,并在查找时提供元素是否被删除的信息。尽管存在Non false negative问题,但通过避免哈希冲突并可能使用其他数据索引结构,可以实现更好的效果。该方案在高并发场景下能提升系统性能。
摘要由CSDN通过智能技术生成

目前解决Bloom filter删除问题有很多种方法,比如Bloom filter的变种Counting Bloom filter、d-left Counting Bloom filter,还有Cuckoo filter等,但是这些方法基本上都是对Bloom filter本身算法做出或大或小的改变,同样的也牺牲了一部分性能。以上三种方法的原理及细节均可以通过阅读论文或查找相关资料进行学习(这里不做过多的介绍)。接下来,介绍不同于以上方法的另一种可行思路!

在计算机系统结构中,存在这样一句话: 加上一个缓存层可以解决体系结构大部分问题!

1. 探索

在解决Bloom filter不支持删除的问题上,我们借鉴这种思路,添加一个缓存层用于存储删除的元素。添加的缓存层应满足的需求:①在查找时应具备与Bloom filter相匹配的性能,以便并发操作时可以给出结果(即当前元素是否已被删除)②空间开销应尽可能的小。

满足上述两个条件,我的第一反应是Bloom filter索引结构本身,即我们将需要删除的元素插入另一个Bloom filter当中。

2. 将Bloom filter视作“缓存”

基于以上探索,将Bloom filter需要删除的元素插入另一个Bloom filter(我们分别称之为insert Bloom filter,insert Bloom filter)。如下图所示,我们需要建立映射关系的元素插入inser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值