algorithm - 布隆过滤器实现如何保持清洁?

标签 algorithm bloom-filter

由于它们已满并且误报百分比增加,因此可以使用哪些技术来防止它们饱和?似乎您无法清空位,因为这会立即对该节点中存储的数据产生负面影响。

即使您有一组已知大小,在使用 Cassandra 等布隆过滤器的数据存储中,令我困惑的是节点中的数据将被添加和删除,对吗?但是,当您删除某个键时,您无法将其布隆过滤器存储桶设置为 0,因为这可能会对节点中散列到一个或多个与已删除键相同的存储桶的数据产生误报。所以随着时间的推移,过滤器就好像被填满了

最佳答案

我认为您需要为布隆过滤器覆盖的集合的大小设置上限。如果集合超过该大小,则需要重新计算布隆过滤器。

正如在 cassandra 中使用的那样,布隆过滤器覆盖的集合的大小在创建过滤器之前就已知,因此这不是问题。

另一种方法是Scalable Bloom Filters

关于algorithm - 布隆过滤器实现如何保持清洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049027/

相关文章:

javascript - 如何使用哈希函数的结果来获取数组索引?

algorithm - 检测(很可能)不是照片的统一图像

algorithm - 在任意精度十进制库中实现基本和特殊数学函数

c++ - 如何在保持圆周位置的同时缩放多边形

c - C 中布隆过滤器的通用哈希函数实现

java - 创建独立的哈希函数

c - 无边的顶点总数 C

c++ - 编程竞赛的最佳单源最短路径算法是什么?

hash - Bob Jenkins 的 Hash 性能不佳

测试不可预测的功能