中文

简报公告:Bumped Ribbon Retrieval 的并行构建

数据结构与算法 2024-11-20 v1

摘要

检索数据结构存储一个静态函数 f : S -> {0,1}^r。对于 S 中的所有 x,它返回 r 比特值 f(x),而对于其他输入,它可以返回任意结果。该结构无法回答成员查询,因此不必编码 S。任意输入的信息论空间下界为 r|S| 比特。检索数据结构有广泛的应用。通过存储 S 中键的指纹,它们可用作 S 的近似成员过滤器,在此应用中它们比布隆过滤器更快且空间效率更高。它们也可用作完美哈希函数等简洁数据结构的基本构建块。Bumped Ribbon Retrieval(BuRR)[Dillinger et al., SEA'22] 是一种最近开发的检索数据结构,构建速度快且空间开销低于 1%。其思想是求解一个近似对角的线性方程组,以确定一个矩阵,该矩阵与每个键的哈希值相乘后给出所需的输出值。在求解过程中,BuRR 可能会将方程组的某些行碰撞到同一数据结构的另一层。虽然原论文描述了一种基于在线程边界上碰撞键的简单并行构建方法,但未给出实现。在本简报公告中,我们现在填补了这一空白。我们的并行实现对查询是透明的。对于 8 比特过滤器,它在 32 核上实现了 14 倍的加速。额外的空间开销为每线程 105 字节,即 105 个槽。当使用 10 亿个输入键进行构建时,这仅占总空间消耗的 0.0007%。构建时间的大部分花在并行排序上。

关键词

引用

@article{arxiv.2411.12365,
  title  = {Brief Announcement: Parallel Construction of Bumped Ribbon Retrieval},
  author = {Matthias Becht and Hans-Peter Lehmann and Peter Sanders},
  journal= {arXiv preprint arXiv:2411.12365},
  year   = {2024}
}