BigTable 中的 Bloom Filter 是否可以仅根据行 ID 进行过滤?
Can Bloom Filters in BigTable be used to filter based only on row ID?
BigTable 使用布隆过滤器允许点读取以避免访问不包含给定键列对中任何数据的 SSTable。如果查询只指定行 ID 而没有指定列 ID,是否也可以使用这些 Bloom 过滤器来避免访问 SSTables?
BigTable 使用行列对作为键插入其布隆过滤器。这意味着查询可以将这些过滤器用于指定行-列对的点读取。
现在,假设我们有一个仅根据行 ID 获取一行的所有列的查询。据我所知,此查询事先不知道哪些列属于该行,因此它可能无法使用布隆过滤器,因为它无法枚举可能的行-列对。因此,这样的查询可能无法使用布隆过滤器,因此效率会降低。
理论上,BigTable 已经可以通过仅将行 ID 插入布隆过滤器来解决这个问题,但我不知道当前的实现是否这样做。
这个问题对于在 BigTable 上设计对 运行 的高效查询可能很重要。任何提示都会很棒。
HBase 布隆过滤器同时进行行和行列检查。 HBase 是基于 BigTable 论文构建的,因此很可能 BigTable 也会做同样的事情。
HBase Bloom Filter is a space-efficient mechanism to test whether a StoreFile contains a specific row or row-col cell.
参考:https://learning.oreilly.com/library/view/hbase-administration-cookbook/9781849517140/ch09s11.html
然而,2006 年的 BigTable 论文确实仅提到使用布隆过滤器进行基于行列的搜索。
https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf
BigTable 使用布隆过滤器允许点读取以避免访问不包含给定键列对中任何数据的 SSTable。如果查询只指定行 ID 而没有指定列 ID,是否也可以使用这些 Bloom 过滤器来避免访问 SSTables?
BigTable 使用行列对作为键插入其布隆过滤器。这意味着查询可以将这些过滤器用于指定行-列对的点读取。
现在,假设我们有一个仅根据行 ID 获取一行的所有列的查询。据我所知,此查询事先不知道哪些列属于该行,因此它可能无法使用布隆过滤器,因为它无法枚举可能的行-列对。因此,这样的查询可能无法使用布隆过滤器,因此效率会降低。
理论上,BigTable 已经可以通过仅将行 ID 插入布隆过滤器来解决这个问题,但我不知道当前的实现是否这样做。
这个问题对于在 BigTable 上设计对 运行 的高效查询可能很重要。任何提示都会很棒。
HBase 布隆过滤器同时进行行和行列检查。 HBase 是基于 BigTable 论文构建的,因此很可能 BigTable 也会做同样的事情。
HBase Bloom Filter is a space-efficient mechanism to test whether a StoreFile contains a specific row or row-col cell.
参考:https://learning.oreilly.com/library/view/hbase-administration-cookbook/9781849517140/ch09s11.html
然而,2006 年的 BigTable 论文确实仅提到使用布隆过滤器进行基于行列的搜索。
https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf