【问题标题】:Need of Bloom Filter in databases such as CassandraCassandra等数据库中对Bloom Filter的需求
【发布时间】:2020-12-25 13:34:41
【问题描述】:

我知道布隆过滤器会以概率的方式告诉您某个特定键是否存在于 SSTable 中。我也知道有索引可以帮助找到哪些 SSTables 有一个键。我的问题是:为什么我们首先需要布隆过滤器?为什么我们不能直接取消索引,因为它们似乎都在做几乎相同的工作,而且与布隆过滤器相比,索引会给出确定性的答案?

【问题讨论】:

    标签: database indexing cassandra bloom-filter


    【解决方案1】:

    为每个 SSTable 生成索引,因此我们需要读取每个 SSTable 的索引以确定分区的位置等 - 这是布隆过滤器防止的性能开销,它允许如果数据不在特定的 SSTable 中,则跳过读取 SSTable。通过布隆过滤器查找比从磁盘读取索引要快得多。

    【讨论】:

    • 那么每个 SSTable 的布隆过滤器是否总是存在于内存中?
    • 是的,我看到有客户为此消耗了数十 GB 的数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2011-05-05
    • 2023-03-30
    相关资源
    最近更新 更多