由于它们已满并且误报百分比增加,因此可以使用哪些技术来防止它们饱和?似乎您无法清空位,因为这会立即对该节点中存储的数据产生负面影响。
即使您有一组已知大小,在使用 Cassandra 等布隆过滤器的数据存储中,令我困惑的是节点中的数据将被添加和删除,对吗?但是,当您删除某个键时,您无法将其布隆过滤器存储桶设置为 0,因为这可能会对节点中散列到一个或多个与已删除键相同的存储桶的数据产生误报。所以随着时间的推移,过滤器就好像被填满了
最佳答案
我认为您需要为布隆过滤器覆盖的集合的大小设置上限。如果集合超过该大小,则需要重新计算布隆过滤器。
正如在 cassandra 中使用的那样,布隆过滤器覆盖的集合的大小在创建过滤器之前就已知,因此这不是问题。
另一种方法是Scalable Bloom Filters
关于algorithm - 布隆过滤器实现如何保持清洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049027/