中文

分区布隆过滤器的一个例证

数据结构与算法 2022-11-10 v2

摘要

在分区布隆过滤器中,mm 比特向量被拆分为 kk 个互不相交的大小为 m/km/k 的部分,每个哈希函数对应一部分。与在硬件设计中占主导不同,软件实现大多采用标准布隆过滤器,认为分区过滤器稍差,因为其假阳性率(FPR)略高。在本文中,通过深入分析,我们首先表明标准布隆过滤器的 FPR 优势比想象中小;更重要的是,通过研究逐元素的 FPR,我们表明标准布隆过滤器在域中存在弱点:某些元素被误判为假阳性的频率远高于预期。这在元素需针对多个过滤器进行测试的场景(例如包转发)中是相关的。此外,若使用朴素双重哈希(这在某些甚至主流的库中出现),标准布隆过滤器容易出现极强的弱点。分区布隆过滤器在域上表现出均匀的 FPR 分布,并且对朴素使用双重哈希具有鲁棒性,没有弱点。最后,通过考察除集合成员测试外的若干用途,我们指出拥有不相交部分的诸多优势:它们可被单独采样、提取、添加或退役,从而带来更优的设计,例如用于 SIMD 使用、尺寸缩减、集合不相交性测试或流中重复检测。分区布隆过滤器更优,无论在通用库还是作为新颖设计的基础,都应取代标准形式。

关键词

引用

@article{arxiv.2009.11789,
  title  = {A Case for Partitioned Bloom Filters},
  author = {Paulo Sérgio Almeida},
  journal= {arXiv preprint arXiv:2009.11789},
  year   = {2022}
}

备注

11 pages; accepted for publication in IEEE Transactions on Computers