【发布时间】:2019-01-20 20:09:01
【问题描述】:
BigTable 使用 Bloom 过滤器来允许点读取以避免访问不包含给定键列对中任何数据的 SSTable。如果查询仅指定行 ID 而没有列 ID,是否也可以使用这些 Bloom 过滤器来避免访问 SSTables?
BigTable 使用行列对作为插入其布隆过滤器的键。这意味着查询可以将这些过滤器用于指定行列对的点读取。
现在,假设我们有一个查询,仅根据行 ID 获取行的所有列。据我所知,此查询事先不知道属于该行的列是什么,因此它可能无法使用布隆过滤器,因为它无法枚举可能的行列对。结果,这样的查询可能无法使用布隆过滤器,因此效率会降低。
理论上,BigTable 已经可以通过将行 ID 插入到布隆过滤器中来解决这个问题,但我无法判断当前的实现是否这样做。
这个问题对于设计在 BigTable 上运行的高效查询可能很重要。任何提示都会很棒。
【问题讨论】:
标签: bigtable google-cloud-bigtable bloom-filter