布隆过滤器、自适应性与字典问题
数据结构与算法
2018-08-28 v3
摘要
布隆过滤器——或更一般地,近似成员查询数据结构(AMQ)——维护来自全域U的键集S的紧凑概率表示。AMQ支持查找、插入以及(对某些AMQ)删除。对S中x的查询保证返回“存在”。对不在S中的x的查询以至少1-epsilon的概率返回“不存在”,其中epsilon是可调的假阳性概率。若查询返回“存在”但x不在S中,则x是AMQ的假阳性。由于AMQ具有非零的假阳性概率,它们比显式集合表示所需空间小得多。AMQ被广泛用于加速远程存储(例如磁盘上/跨网络)的字典。大多数AMQ对其在查询序列上将返回的假阳性数量提供弱保证。epsilon的假阳性概率仅对单次查询成立。 adversary很容易通过简单重复假阳性将AMQ的假阳性率推向1。本文展示了获得假阳性数量的强保证所需的条件。我们称AMQ是自适应的,如果它保证每次查询的假阳性概率为epsilon,而与先前查询的回答无关。首先,我们证明不可能构建一个小的自适应AMQ,即使AMQ在返回假阳性时立即被告知。然后我们展示如何构建一个自适应AMQ,将其状态划分为小的本地组件和较大的远程组件。除了具有自适应性外,我们AMQ的本地组件在所有方面都优于现有AMQ。它在低阶项内使用最优空间,并以高概率在最坏情况常数时间内支持查询与更新。因此,我们表明自适应性没有代价。
引用
@article{arxiv.1711.01616,
title = {Bloom Filters, Adaptivity, and the Dictionary Problem},
author = {Michael A. Bender and Martin Farach-Colton and Mayank Goswami and Rob Johnson and Samuel McCauley and Shikha Singh},
journal= {arXiv preprint arXiv:1711.01616},
year = {2018}
}