中文

RAMBO:用于大规模数据上超快多重集合成员测试的重复合并布隆过滤器

数据结构与算法 2020-07-21 v2 信息检索

摘要

多重集合成员测试(MSMT)是多种搜索与查询应用中的一个已知问题。给定一个包含 K 个不同集合的数据集和一个查询 q,其目标是找出所有包含该查询的集合。显然,一个 MSMT 实例可归约为 K 个成员测试实例,每个实例使用相同的 q,从而利用简单的布隆过滤器数组实现 O(K) 的查询时间。我们提出了一种称为 RAMBO(Repeated And Merged BloOm Filter,重复合并布隆过滤器)的数据结构,在布隆过滤器数组之外仅增加 O(log K) 的最坏情况内存开销因子的情况下,期望查询时间达到 O(\sqrt{K} log K)。因此,RAMBO 是一种非常快速且准确的数据结构。除了具有易并行化、支持流式输入的廉价更新、零假阴性率和低假阳性率之外,RAMBO 还击败了用于基因组索引的当前最优方法:COBS(Compact bit-sliced signature index)、Sequence Bloom Trees(基于 Bloofi 的实现)、HowDeSBT、SSBT,以及像 BitFunnel 这样的文档索引方法。所提出的数据结构本质上只是成员测试工具(本例中为布隆过滤器)的 count-min sketch 式排列。它对 k-grams 建立索引,并提供基于近似成员测试的搜索工具。该算法的简单性和易并行化架构使我们能够在 100 个节点的集群上仅用 14 小时就索引 170 TB 的基因组数据集,而现有竞争方法需要数周时间。

关键词

引用

@article{arxiv.1910.02611,
  title  = {RAMBO: Repeated And Merged BloOm Filter for Ultra-fast Multiple Set Membership Testing (MSMT) on Large-Scale Data},
  author = {Gaurav Gupta and Minghao Yan and Benjamin Coleman and R. A. Leo Elworth and Tharun Medini and Todd Treangen and Anshumali Shrivastava},
  journal= {arXiv preprint arXiv:1910.02611},
  year   = {2020}
}

备注

14 pages, 5 figures