Split block Bloom filters
这篇短文描述了一个布隆过滤器变体,它利用现代SIMD指令将速度提高了30%-450%。这个过滤器,分裂块Bloom过滤器,被StarRocks,Apache Impala,Apache Kudu,Apache Parquet,Apache Arrow,Apache Drill和阿里云的Hologres使用。
2023-01-20 cs.DS
The Deletable Bloom filter: A new member of the Bloom family
我们引入了可删除布隆过滤器(DLBF)作为流行的数据结构的一个新的自旋的基础上,压缩编码的冲突发生时,插入元素的信息。DlBF设计使得能够以存储器消耗的一小部分成本进行无假阴性删除,这对于某些概率过滤器应用是有吸引力的。
2010-05-03 cs.DS
Bloomier Filters: A second look
布隆过滤器是用于存储静态集合的空间高效结构,其中空间效率是以小的误报概率为代价获得的。Bloomier过滤器概括了Bloom过滤器,以紧凑地存储具有静态支持的函数。在这篇文章中,我们给出了一个简单的构造一个Bloomier过滤器。该结构在空间上是线性的,需要恒定的时间来评估。我们的Bloomier过滤器的创建需要线性时间,比现有的构造更快。我们展示了如何以增加创建数据结构的时间为代价来进一步提高空间利用率。
2008-07-06 cs.DS
countBF: A General-purpose High Accuracy and Space Efficient Counting Bloom Filter
Bloom Filter是一种用于成员关系查询的概率数据结构,它在减少内存消耗和提高系统性能方面得到了广泛的应用。Bloom Filter分为两大类:计数Bloom Filter(CBF)和非计数Bloom Filter。CBF具有比标准布隆过滤器(SBF)更高的误报概率,即,CBF使用比SBF更高的内存占用。但是CBF可以解决假阴性概率的问题。值得注意的是,SBF也是无假阴性的,但它不支持像CBF这样的删除操作。为了解决这些问题,我们提出了一种新的计数布隆过滤器的基础上SBF和二维布隆过滤器,称为countBF。countBF使用修改的杂音散列函数,以提高其各种要求,这是实验评估。我们的实验结果表明,countBF使用$1.96\times$和$7.85\times$更少的内存分别比SBF和CBF,而保持较低的误报率和执行时间比SBF和CBF。countBF的总体精度为$99.999921$,证明了countBF优于SBF和CBF。同时,我们还与其他先进的计数型Bloom过滤器进行了比较。
2021-06-06 cs.DS
Multiple Set Matching and Pre-Filtering with Bloom Multifilters
布隆过滤器是一种空间有效的概率数据结构,用于检查集合中元素的成员关系。然而,给定多个集合,在查找元素或输入元素的集合所属的项时,标准布隆过滤器是不够的。在这篇文章中,我们解决了多个集合匹配问题,提出了两个有效的布隆多重过滤器,称为布隆矩阵和布隆向量。它们都是空间有效的,并回答查询与多个集合匹配问题的一组标识符。我们表明,空间效率可以根据标签在多个集合之间的分布进一步优化:Uniform和Zipf。虽然它们都是空间有效的,但Bloom Vector可以有效地利用数据的Zipf分布来进一步减少空间。我们的研究结果还强调,基本的ADD和LOOKUP操作的布隆矩阵比布隆向量更快。然而,如果所表示的数据或标签不均匀地分布在多个集合之间,则Bloom Matrix不满足用于查找操作的小于$10^{-2}$的理论误报率。因此,我们引入了\textit{Bloom Test},它使用Bloom矩阵作为预过滤器结构,以确定哪种结构适合于提高任意输入数据集的性能。
2019-01-11 cs.DS
Matrix Bloom Filter: An Efficient Probabilistic Data Structure for 2-tuple Batch Lookup
随着大数据规模的不断扩大,概率结构作为一种高效的近似存储和查询处理方法受到越来越多的关注。例如,Bloom过滤器(BF)可以在牺牲误报的情况下获得令人满意的性能,用于近似成员存在查询。然而,标准的Bloom过滤器只能处理单变量数据和单成员存在查询,这对于OLAP和机器学习应用是不够的。在本文中,我们专注于一个常见的多元数据类型,即2元组,或等价的,键-值对。我们设计的矩阵布隆过滤器作为一个高维扩展的标准布隆过滤器。这种新的概率数据结构不仅可以有效地插入和查找一个单一的二元组,但也支持这些操作有效地在批处理--一个关键的要求OLAP和机器学习任务。为了进一步平衡不同工作负载模式的插入和查询效率,我们提出了两个变体,即最大自适应矩阵BF和最小存储矩阵BF。通过理论和实证研究,我们证明了矩阵Bloom过滤器在具有共同统计分布的数据集上的性能是优越的;即使没有它们,它也只是退化为标准Bloom过滤器。
2019-12-16 cs.DS
A Case for Partitioned Bloom Filters
在分区布隆过滤器中,$m$位向量被分成$k$不相交的$m/k$大小的部分,每个散列函数一个。与硬件设计相反,软件实现大多采用标准的布隆过滤器,考虑分区过滤器稍微差一点,因为误报率(FPR)稍大。在本文中,通过进行深入的分析,首先,我们表明,FPR优势的标准布隆过滤器是小于想象的,更重要的是,通过研究每个元素FPR,我们表明,标准布隆过滤器有弱点的域:元素将被测试为误报比预期更频繁。这在针对许多过滤器测试元素的场景中是相关的,例如,数据包转发。此外,如果使用朴素的双哈希,标准的Bloom过滤器很容易表现出非常弱的点,这在几个甚至主流的库中都有发生。分区布隆过滤器表现出FPR在域上的均匀分布,并且对于双重散列的朴素使用是鲁棒的,没有弱点。最后,通过调查测试集成员资格以外的几种用途,我们指出了具有不相交部分的许多优点:它们可以单独采样,提取,添加或退休,从而导致卓越的设计,例如,SIMD使用、大小缩减、集合不相交性测试或流中的重复检测。分区Bloom过滤器更好,并且应该取代标准形式,无论是在通用库中还是作为新颖设计的基础。
2022-11-09 cs.DS
Technical Report: Modeling Average False Positive Rates of Recycling Bloom Filters
本文针对网络应用中回收型布隆过滤器,提出基于更新过程和马尔可夫模型的平均假阳性率计算方法,取代过于保守的最坏情况界限,并验证了模型准确性及两阶段变体的效率优势。
2024-02-03 cs.DS
Bloom filter variants for multiple sets: a comparative assessment
在本文中,我们比较了两个概率数据结构的关联查询派生出著名的布隆过滤器:移位布隆过滤器(ShBF),和空间布隆过滤器(SBF)。相对于原始数据结构,两种变体都增加了使用不同策略在同一过滤器中存储多个子集的能力。我们分析了这两种数据结构在误报概率和集合间错误概率(集合中的元素被识别为属于错误子集的概率)方面的性能。作为我们分析的一部分,我们扩展了移位Bloom过滤器的功能,优化了任何非平凡数量的子集的过滤器。我们提出了一个新的广义ShBF定义与我们的特定域之外的应用,并提出了新的概率公式。比较的结果表明,ShBF提供了更好的空间效率,但在一个显着更高的计算成本比SBF。
2019-08-28 cs.DS
Sampling and Reconstruction Using Bloom Filters
在本文中,我们解决的问题,从一组采样和重建存储为一个布隆过滤器。据我们所知,我们的工作是解决这一问题的第一步。我们引入了一种新的分层数据结构称为BloomSampleTree,它可以帮助我们设计有效的算法,从存储在布隆过滤器中的集合中提取几乎均匀的样本,并允许我们有效地重建集合。在布隆过滤器实现中使用的散列函数是部分可逆的情况下,在这个意义上,它很容易计算映射到特定散列值的元素集,我们提出了第二个,更节省空间的方法称为HashInvert的重建。我们研究这两种方法的性能分析以及实验。我们提供的运行时间的方法和样本质量的BloomSampleTree算法的界限,并通过广泛的实验评估表明,我们的方法是高效和有效的。
2017-09-06 cs.DS
Distance Sensitive Bloom Filters Without False Negatives
布隆过滤器是一种广泛使用的数据结构,用于表示集合$S$并回答形式为“$x$在$S$中吗?".通过允许一些错误的肯定回答(当答案实际上是“否”时说“是”),Bloom过滤器使用的空间大大低于存储$S$所需的空间。在距离敏感设置中,我们使用一组(汉明)向量$S$,并寻求提供类似折衷的数据结构,但回答形式为“$x$是否接近$S$的元素?”(以汉明距离计)。以前的工作距离敏感的布隆过滤器接受假阳性和假阴性的答案。在Bloom过滤器的许多应用中,没有假阴性是至关重要的,因此很自然地会问这是否也可以在距离敏感设置中实现。我们的主要贡献是在距离敏感设置中不允许假阴性的空间使用的上限和下限(在某些情况下是紧的)。
2016-11-02 cs.DS
Dynamic Partition Bloom Filters: A Bounded False Positive Solution For Dynamic Set Membership (Extended Abstract)
动态Bloom过滤器(DBF)是由Guo等人提出的。在2010年,为了解决这样的情况,即将被存储的压缩机的集合的大小事先不知道或者在应用过程中可能改变。我们提出了一个新的竞争对手DBF具有以下重要的属性,DBF是无法实现的:我们的结构是能够保持一个约束的假阳性率的集合成员查询在所有可能的大小的集存储在it.The新的数据结构,我们建议是一个动态的结构,我们称之为动态分区布隆过滤器(DPBF)。DPBF基于我们的Bloom分区树的新概念,Bloom分区树是在叶子处具有标准Bloom过滤器的树结构。DPBF优于标准Bloom过滤器,因为它可以有效地处理大量不同大小集合的并集和交集,同时控制误报率。这使DPBF成为我们所知的第一个这样做的结构。我们提供了理论界比较DPBF的假阳性概率DBF。
2019-01-19 cs.DS
Binary Fuse Filters: Fast and Smaller Than Xor Filters
Bloom和Cuckoo过滤器提供快速的近似集合成员,同时使用很少的内存。工程师使用它们来避免昂贵的磁盘和网络访问。最近引入的异或过滤器可以比Bloom和cuckoo过滤器更快更小。XOR过滤器在存储中的理论下限的23%以内,而Bloom过滤器为44%。受Dietzfelbinger和Walzer的启发,我们构建了概率过滤器-称为二进制融合过滤器-在存储下限的13%以内-而不会牺牲查询速度。作为额外的益处,新的二进制熔丝滤波器的构造可以比异或滤波器的构造快两倍以上。通过略微牺牲查询速度,我们进一步将存储减少到下限的8%以内。我们比较的性能对广泛的竞争力的替代品,如布隆过滤器,阻止布隆过滤器,矢量商过滤器,布谷鸟过滤器,和最近的丝带过滤器。我们的实验表明,二进制熔丝滤波器优于异或滤波器。
2022-01-04 cs.DS
Sliding Bloom Filters
布隆过滤器是一种通过允许小的错误概率来减少表示集合所需的空间(存储器)的方法。在本文中,我们考虑一个\emph{Sliding Bloom Filter}:一个数据结构,给定的元素流,支持成员查询的最后$n$元素(滑动窗口)的集合,同时允许一个小的错误概率。我们正式定义了数据结构及其相关参数,并分析了实现它们所需的时间和内存要求。我们给出了一个低空间结构,运行在O(1)时间每次更新的高概率(也就是说,对于所有序列的高概率所有操作都需要恒定的时间),并提供了一个几乎匹配的空间上的下界,表明我们的建设有最好的空间消耗添加剂低阶项。
2013-10-09 cs.DS
A Bloom filter based semi-index on $q$-grams
我们提出了一个简单的$q$ -gram的半索引,它允许寻找一个模式通常只在一小部分的文本块。几个时空权衡。Pizza & Chili数据集上的实验表明,我们的解决方案比Claude等人的\cite{CNPSTjda10}半索引快三个数量级。
2015-07-10 cs.DS
scaleBF: A High Scalable Membership Filter using 3D Bloom Filter
Bloom Filter自诞生以来就被广泛应用于各种数据结构的研究和应用领域。Bloom Filter能够将空间消耗降低一个数量级。因此,布隆过滤器被用来保持信息的一个非常大规模的数据。Bloom Filters有许多变体,但是可扩展性是Bloom Filter多年来的一个严重困境。为了解决这个难题,Bloom Filter也有各种各样的变体。然而,时间复杂度和空间复杂度又成为关键问题。在本文中,我们提出了一种新的布隆过滤器,以解决可扩展性问题,而不影响性能,称为scaleBF。scaleBF部署了许多3D Bloom Filter来过滤项目集。在本文中,我们从理论上比较当代布隆过滤器的可扩展性和scaleBF优于时间复杂度。
2019-03-15 cs.DB cs.DS
The Distributed Bloom Filter
分布式布隆过滤器是一种空间高效的概率数据结构,被设计用于在分布式系统中执行更有效的集合协调。它保证了系统中节点之间状态的最终一致性,同时仍然保持布隆过滤器的大小尽可能紧凑。通过调整分布式布隆过滤器的参数,可以根据需要调整可能性。通过结合两个新颖的想法,数据结构的可扩展性以及准确性成为可能:第一个想法引入了一种新的,计算成本低廉的方式来填充布隆过滤器,使得在与对等体交互时可以快速计算新的布隆过滤器。第二个想法引入了对等体之间唯一布隆过滤器映射的概念。通过应用这两个简单的想法,人们可以在网络中实现令人难以置信的带宽效率的集合协调。我们没有试图最小化单个布隆过滤器的误报率,而是使用唯一的布隆过滤器映射来增加元素在网络中传播的概率。我们比较了标准的布隆过滤器与分布式布隆过滤器,并表明,即使有50%的误报率,即即使有一个非常小的布隆过滤器的大小,分布式布隆过滤器仍然设法达到完整的一套和解在整个网络中的高度空间效率,以及时间效率的方式。
2020-02-19 cs.DC cs.DS
Pay for a Sliding Bloom Filter and Get Counting, Distinct Elements, and Entropy for Free
对于许多网络应用程序来说,最近的数据比旧数据更重要,因此需要滑动窗口解决方案。DDoS检测和负载均衡等各种功能需要了解多个指标,包括布隆过滤器、每流计数、计数区分和熵估计。在这项工作中,我们提出了一个统一的建设,解决了所有上述问题的滑动窗口模型。我们的单一解决方案提供了一个更好的空间,以准确性权衡比国家的最先进的每一个这些个别的问题!我们通过分析和运行多个真实的互联网骨干和数据中心数据包跟踪来证明这一点。
2017-12-05 cs.DS
Using cascading Bloom filters to improve the memory usage for de Brujin graphs
De Brujin图广泛用于生物信息学中处理下一代测序数据。由于NGS数据集的规模非常大,因此有必要表示de Bruijn图,最近已经提出了几种解决这个问题的方法。在这项工作中,我们展示了如何减少[3]中使用Bloom过滤器表示de Brujin图的算法所需的内存。与[3]的方法相比,我们的方法需要的内存减少了30%到40%,对构建时间的影响微不足道。与此同时,我们的实验显示了比[3]更好的查询时间。据我们所知,这是de Bruijn图的最佳实用表示。
2013-05-21 cs.DS
Bloofi: Multidimensional Bloom Filters
布隆过滤器是概率数据结构,通常用于计算机科学的许多领域(网络、分布式系统、数据库等)中的近似成员问题。随着数据大小和数据分布的增加,出现了大量可用的Bloom过滤器的问题,并且需要搜索所有这些过滤器以寻找潜在的匹配。例如,在联合云环境中,每个云提供商可以使用布隆过滤器对信息进行编码,并与中央协调器共享布隆过滤器。感兴趣的问题不仅是给定元素是否在由布隆过滤器表示的任何集合中,而且是现有集合中的哪个集合包含给定元素。这个问题不能仅仅通过在所有集合的并集上构造布隆过滤器来解决。相反,我们实际上有一个多维的Bloom过滤器问题:给定一个元素,我们希望收到一个元素可能所在的候选集列表。为了解决这个问题,我们考虑三种选择。首先,我们可以简单地检查许多Bloom过滤器。其次,我们建议将Bloom过滤器组织在一个类似于B+树的分层索引结构中,我们称之为Bloofi。最后,我们提出了另一种数据结构,包装的布隆过滤器,以这样一种方式,利用位级并行,我们称之为Flat-Bloofi。我们的理论和实验结果表明,Bloofi和Flat-Bloofi提供了可扩展的和有效的解决方案,通过大量的Bloom过滤器搜索的替代方案。
2016-09-21 cs.DB cs.DS
Adaptive Learned Bloom Filter (Ada-BF): Efficient Utilization of the Classifier
Rice University(莱斯大学)
最近的工作建议通过将机器学习模型作为二元分类器来提高布隆过滤器的性能。然而,这种学习的布隆过滤器没有充分利用预测的概率得分。我们提出了新的算法,通过使用分数区域的完整谱来推广学习的布隆过滤器。我们证明,与现有的学习Bloom过滤器方法相比,我们的算法具有更低的误报率(FPR)和内存使用量。我们还展示了我们的算法在真实世界数据集上的改进性能。
2019-10-21 cs.DS cs.LG
A Shifting Bloom Filter Framework for Set Queries
集合查询是计算机系统和应用程序中的基本操作,本文讨论了设计一种概率数据结构的基本问题,该结构能用少量内存快速处理集合查询。我们提出了一个移位布隆过滤器(ShBF)表示和查询集的框架。我们证明了ShBF的有效性,使用三种类型的流行集查询:成员资格,关联和多重性查询。ShBF的关键新颖性在于将集合元素的辅助信息编码在位置偏移中。相反,现有的基于BF的集合数据结构分配附加存储器来存储辅助信息。为了与现有技术相比评估ShBF,我们使用真实世界的网络轨迹进行实验。结果表明,ShBF显着进步的最先进的所有三种类型的集合查询。
2016-03-22 cs.DS
In-stream Probabilistic Cardinality Estimation for Bloom Filters
来自物联网传感器、社交网络、蜂窝网络等不同来源的数据量在过去几年中呈指数级增长。概率数据结构(PDS)是确定性数据结构的有效替代方案,适合于大数据处理和流式应用。它们主要用于近似隶属度查询、频率计算、基数估计和相似性研究。在大型数据集或流数据中查找不同元素的数量是一个活跃的研究领域。在这项工作中,我们表明,通常的方法的基础上,这种基数估计的布鲁姆过滤器是相对准确的平均,但有一个高的方差。因此,减少该方差对于获得准确的统计数据是有意义的。我们提出了一种概率方法来更准确地估计基于其参数,即,散列函数的数目$k$、大小$m$、以及每当元素不在过滤器中时递增的计数器$s$(即,当对该元素的成员资格查询的结果为负时)。由于Bloom filter的性质,计数器的值永远不会大于确切的基数,但哈希冲突可能会导致它低估它。这会产生一个计数误差,我们可以准确地估计,在流中,以及它的标准差。我们还讨论了一种方法来优化参数的布隆过滤器的计数误差的基础上。我们评估我们的方法与合成数据从分析移动网络运营商提供的移动数据集的移动电话记录计算的位移矩阵的形式创建。这里提出的方法至少在平均上执行得一样好,并且具有比现有技术方法低得多的方差(大约6到7倍)。
2022-11-01 cs.DS
Guarded Epoch Bloom Filters for Sliding-Window Membership
Bahçeşehir University(巴切希尔大学)
提出受保护纪元布隆过滤器,通过划分比特预算、旋转纪元并引入保护纪元,实现滑动窗口内确定性存活覆盖和有限过期保留,在14比特/存活项下将假阳性率从0.191降至0.02225且零假阴性。
2026-06-18 cs.DS
Blocked Bloom Filters with Choices
本文提出带选择的分块布隆过滤器,通过为每个键提供多个备选块,在保留快速在线插入和轻微过载优势的同时,有效降低了空间消耗或假阳性率,并在生物信息学用例中验证了其实用价值。
2025-05-09 cs.DB cs.DS
Extending the Applicability of Bloom Filters by Relaxing their Parameter Constraints
本文提出有理布洛姆过滤器,通过允许非整数哈希函数数量和可变大小块结构,优化布洛姆过滤器的性能和适用性。
2025-12-15 cs.DS
Fast Construction of Partitioned Learned Bloom Filter with Theoretical Guarantees
The University of Tokyo(东京大学)
针对分区学习布隆过滤器(PLBF)构建复杂度高的问题,提出fast PLBF及其变体,在保证内存效率与理论等价性的前提下,将构建速度最高提升778倍。
2026-10-20 cs.DS
A Bloom Filter Survey: Variants for Different Domain Applications
有大量的数据结构、算法和框架处理主要的数据流问题,如估计项目的频率、回答集合成员、关联和多样性查询,以及可以从大量数据流中提取的其他几个统计数据。在本调查中,我们将重点探索称为Bloom Filters的随机数据结构。该数据结构以假阳性概率fpp回答数据流中是否存在项。在本调查中,Bloom过滤器的许多变体将通过显示每个结构的优点及其缺点来涵盖,即一些Bloom过滤器处理插入和删除,而另一些则不处理,一些变体有效地使用内存但增加了fpp,而另一些则以相反的方式进行权衡。此外,在每个布隆过滤器结构中,误报概率将与显示其所呈现的改进的最重要的技术细节一起突出显示,而这项工作的主要目的是根据其适合的应用领域提供布隆过滤器结构的变体之间的总体比较。
2021-06-23 cs.DB cs.DS
The Bloom Tree
我们引入了一个数据结构,允许有效的(概率)存在证明和非概率不存在证明的带宽效率和安全的方式。Bloom树结合了Bloom过滤器和Merkle树的思想。布隆过滤器用于验证集合中元素的存在或不存在。在Bloom树的情况下,我们感兴趣的是以安全和带宽有效的方式验证和传输元素的存在或不存在。而不是发送整个Bloom过滤器来检查元素的存在或不存在,Bloom树通过使用紧凑的Merkle多重证明来实现有效的验证。
2020-02-19 cs.CR cs.DS
Cascaded Learned Bloom Filter for Optimizing Model-Filter Size Balance and Fast Rejection
The University of Tokyo(东京大学)
本文提出级联学习型布隆过滤器(CLBF),通过动态规划优化器平衡模型与过滤器尺寸,在真实数据集上较分区LBF内存降17%、拒斥时间缩65倍。
2026-08-25 cs.CC cs.DS cs.LG
Learned LSM-trees: Two Approaches Using Learned Bloom Filters
Harvard University(哈佛大学)
本文提出两种将学习型预测集成到LSM树查找路径的方法:分类器跳过布隆过滤器探测以降低延迟,以及学习型布隆过滤器减少内存占用,实验显示延迟降低2.28倍、内存减少70-80%。
2025-07-24 cs.DS cs.LG
A Persistent Hierarchical Bloom Filter-based Framework for Authentication and Tracking of ICs
本研究提出持久化分层Bloom过滤器(PHBF)框架,通过处理含噪PUF签名,在供应链中实现准确率100%的快速IC认证。
2024-09-22 cs.CR cs.DS
Straggler Identification in Round-Trip Data Streams via Newton's Identities and Invertible Bloom Filters
我们介绍的掉队者识别问题,其中一个算法必须确定的身份后,它已经有大量的插入和删除操作执行的一组剩余的成员,现在有相对较少的剩余成员。我们的目标是在O(n)空间中实现这一点,其中n是恒等式的总数。掉队者识别问题有应用,例如,在确定一组未确认的数据包在高带宽多播数据流。我们提供了一个确定性的解决方案,仅使用O(d log n)位的掉队者识别问题,是基于一个新的应用牛顿的身份对称多项式。这个解决方案可以识别任何子集的d掉队者从一组n个O(log n)位标识符,假设没有错误删除的身份已经在集合中。事实上,我们给出了一个下界参数,表明任何小空间的确定性解决方案的落伍者识别问题不能保证处理错误删除。然而,我们发现,有一个简单的随机化的解决方案,使用O(d log n log(1/n))位,可以保持一个多集和解决的掉队者识别问题,容忍假删除,其中n>0是一个用户定义的参数边界的概率不正确的反应。这种随机化的解决方案是基于一种新型的布隆过滤器,我们称之为可逆布隆过滤器。
2009-09-10 cs.DS
Biff (Bloom Filter) Codes : Fast Error Correction for Large Data Sets
大型数据集在云和虚拟化环境中越来越常见。例如,多个千兆字节的传输是常见的,这种大小的复制块也是如此。在这种情况下,即使预期的错误数量很小,也需要快速纠错或数据协调。出于这样的云协调问题,我们考虑为大数据设计的纠错方案,解释为什么以前的方法似乎不合适。我们介绍了Biff码,这是基于布隆过滤器,是专为大数据。对于具有长度为$L$和$E$错误的消息的Biff码,编码时间为$O(L)$,解码时间为$O(L + E)$,空间开销为$O(E)$。Biff码是低密度奇偶校验码;它们类似于Tornado码,但设计用于错误而不是擦除。此外,Biff码被设计得非常简单,去除了任何显式的图结构,并且完全基于哈希表。我们从最近开发的数据结构,可逆布隆查找表的一组和解算法,通过一个简单的减少Biff码。虽然基本理论非常简单,但使这种代码特别有吸引力的是它可以实现的容易性和解码的速度。我们提出了一个原型实现的结果,解码消息的100万个字,数千个错误,远远低于一秒。
2012-08-03 cs.DS
Partitioned Learned Bloom Filter
CSAIL(麻省理工学院计算机科学与人工智能实验室);MIT(麻省理工学院);School of Engineering and Applied Sciences(工程与应用科学学院);Harvard University(哈佛大学)
布隆过滤器是用于测试元素是否是集合的成员的空间高效的概率数据结构,并且可能返回误报。最近,开发了被称为学习的布隆过滤器的变型,其可以通过使用用于所表示的集合的学习模型来提供在误报率方面的改进的性能。然而,以前的学习布隆过滤器的方法没有充分利用学习模型。在这里,我们将展示如何将最佳模型利用率的问题框架化为优化问题,并使用我们的框架导出在许多情况下可以实现接近最佳性能的算法。从模拟和真实世界的数据集的实验结果表明,显着的性能改进,从我们的优化方法,无论是原来的学习布隆过滤器的建设和以前提出的启发式改进。
2020-10-04 cs.DB cs.DS cs.LG
Prefix Filter: Practically and Theoretically Better Than Bloom
近似成员查询数据结构或过滤器的许多应用程序只需要支持插入但不支持删除的增量过滤器。然而,增量过滤器的设计空间缺少一个“最佳点”过滤器,它结合了空间效率、快速查询和快速插入。增量过滤器,例如Bloom和Blocked Bloom过滤器,不是空间有效的。动态滤波器(即,支持删除),如布谷鸟或向量商过滤器,是空间有效的,但不能表现出一致的快速插入和查询。在本文中,我们提出了前缀过滤器,一个增量过滤器,解决了上述挑战:(1)它的空间(以比特为单位)是类似于最先进的动态过滤器;(2)查询吞吐量是高的,是可比的布谷鸟过滤器;以及(3)插入吞吐量高,总构建时间比$1.39\times$的向量商滤波器和布谷鸟滤波器的构建时间快。分别为$1.46\times$和$3.2\times$ - $3.5\times$。我们提出了一个严格的分析前缀过滤器,也适用于实际的集大小(即,$n=2^{25}$)。该分析涉及失败的概率、误报率以及操作需要访问多个缓存行的概率。
2022-10-25 cs.DB cs.DS
Fast Partitioned Learned Bloom Filter
针对分区学习型布隆过滤器(PLBF)构建时间复杂度过高的问题,本文提出快速PLBF与快速PLBF++两种方法,分别将构建复杂度降至O(N²k)和O(Nk log N + Nk²),在保持或接近PLBF内存效率的同时实现最高761倍加速。
2023-10-28 cs.DS
On Occupancy Moments and Bloom Filter Efficiency
证明了两个多元委员会分布分别属于Berg阶乘级数分布族和Kemp广义超几何阶乘矩分布族。精确的矩公式,上界和下界,统计参数估计提供了经典的占用和委员会分布。推导出的矩方程用于确定准确的公式的误报率和效率的布隆过滤器-概率数据结构用于解决集成员问题。该研究表明,传统的Bloom过滤器分析高估了最小化误报率所需的哈希函数的数量,并表明Bloom过滤器的效率在哈希函数的数量上是单调的。
2019-08-13 cs.DS cs.IT math.CO
Towards EXPTIME One Way Functions: Bloom Filters, Succinct Graphs, Cliques, & Self Masking
该研究提出基于Bloom过滤器和植入团的构造方法,构建可在多项式时间内生成的图,证明黑盒哈希下求逆该映射函数很可能无法在多项式时间完成,为构造EXPTIME单向函数提供思路。
2025-08-03 cs.CC cs.CR cs.DS
Concurrent Expandable AMQs on the Basis of Quotient Filters
商过滤器是高速缓存高效AMQ数据结构。根据过滤器的填充程度,大多数插入和查询只需要访问一个或两个连续的缓存行。这使得商过滤器比更常用的布隆过滤器更快,后者会导致多个缓存未命中。然而,并发布隆过滤器易于实现,并且可以无锁实现,而并发商过滤器则不那么简单。通常,并发商过滤器通过使用外部锁数组来工作,每个锁保护表的一个区域。否则,此阵列每次操作都会导致一次额外的缓存未命中。我们提出了一个新的锁定方案,没有内存开销。使用这种新的锁定方案,我们实现了1.8倍的加速比与常见的外部锁定方案。商过滤器优于布隆过滤器的另一个优点是,商过滤器可以在其变满时改变其大小。我们实现这种增长技术,我们的并发商过滤器,并适应它的方式,允许无限增长,同时保持有界的误报率。我们把得到的数据结构称为完全可扩展的商过滤器。它的设计类似于可扩展的布隆过滤器,但我们利用一些概念固有的商过滤器,以提高空间效率和查询速度。我们还提出了商过滤器的变体,旨在减少状态位的数量(2-状态位变体)或简化并发实现(线性探测商过滤器)。线性探测商过滤器甚至导致无锁并发过滤器实现。这是特别有趣的,因为我们表明,任何无锁实现的另一个常见的商过滤器的变体将产生显着的开销,在额外的数据字段或多个访问数据的形式。
2019-11-19 cs.DS
Age-Partitioned Bloom Filters
布隆过滤器(Bloom Filter,BF)广泛用于一组元素的近似成员关系查询。BF变体允许删除、无限大小的集合或在无限流上查询滑动窗口。然而,对于最后一种情况,当前最好的方法是基于字典的(例如,基于布谷鸟过滤器或TinyTable),而且似乎基于BF的方法永远不会与基于字典的方法竞争。在本文中,我们提出了一种基于BF的滑动窗口重复检测方法--分区布隆过滤器,它不仅在时间复杂度上具有竞争力,而且比当前基于字典的方法(例如,SWAMP),代价是一些适度的松弛。APBF保留了BF的简单性,不像基于字典的方法,这对基于硬件的实现很重要,并且可以集成已知的改进,例如双哈希或分块。我们提出了一个分区Blocked Bloom Filter的变种,它可以操作2-3缓存行访问每次插入和2-4左右,每个查询,即使是高精度的过滤器。
2020-01-09 cs.DB cs.DC cs.DS
RAMBO: Repeated And Merged BloOm Filter for Ultra-fast Multiple Set Membership Testing (MSMT) on Large-Scale Data
多集成员测试(MSMT)是各种搜索和查询应用程序中的一个众所周知的问题。给定K个不同集合的数据集和查询q,它的目标是找到包含查询的所有集合。简单地说,MSMT实例可以减少到K个成员资格测试实例,每个实例具有相同的q,从而使用简单的布隆过滤器阵列导致O(K)查询时间。我们提出了一种数据结构,称为RAMBO(重复和合并的布隆过滤器),实现O(\sqrt{K} log K)查询时间的期望与额外的最坏情况下的内存成本因素O(log K)超出了阵列的布隆过滤器。因此,RAMBO是一种非常快速和准确的数据结构。除了非常并行,支持流输入的廉价更新,零假阴性率和低假阳性率之外,RAMBO击败了最先进的基因组索引方法:COBS(紧凑位切片签名索引),序列Bloom树(基于Bloofi的实现),HowDeSBT,SSBT和文档索引方法,如BitFunnel。所提出的数据结构只是一个成员资格测试实用程序(在我们的情况下是布隆过滤器)的count-min草图类型的安排。它索引k-gram并提供基于近似成员测试的搜索实用程序。算法的简单性和并行架构使我们能够在100个节点的集群上仅用14小时就索引170 TB的基因组数据集,而竞争方法需要数周。
2020-07-17 cs.DS cs.IR
Rateless Bloom Filters: Set Reconciliation for Divergent Replicas with Variable-Sized Elements
针对可变大小元素且差异基数较大的集合调和问题,提出两阶段混合协议 RBF-IBLT,通过动态适应未知差异的 Rateless Bloom Filter 优化通信,在 Jaccard 指数低于 85% 时较现有技术降低超 20% 通信成本。
2025-10-31 cs.DB cs.DS
Non-Empty Bins with Simple Tabulation Hashing
我们考虑使用一个简单的列表哈希函数$h:U\to [n]=\{0,\dots,n-1\}$用$|X|=m$对一个集合$X\subseteq U$进行哈希,并分析非空bin的数量,即$h(X)$的大小。我们表明,预期的大小$h(X)$匹配,完全随机哈希到低阶项内。我们还提供了浓度边界。非空容器的数量是球和容器范例中的基本度量,并且在诸如Bloom过滤器和过滤器散列之类的应用中至关重要。例如,通常布隆过滤器在假设完全随机散列的情况下针对期望的低误报概率而成比例(参见\url{en.wikipedia.org/wiki/Bloom_filter})。我们的结果意味着,如果我们用简单的制表实现散列,我们对任何可能的输入都获得了同样低的假阳性概率。
2018-10-31 cs.DS
Towards "Intelligent Compression" in Streams: A Biased Reservoir Sampling based Bloom Filter Approach
随着世界范围内存储信息的爆炸式增长,数据密集型计算已成为研究的中心领域。有效管理和处理来自不同来源的大量指数级数据,例如电信呼叫数据记录、在线交易记录等,从如此庞大(数十亿条记录)的数据集中去除冗余,从而提高下游处理的资源和计算效率,这是一个重要的研究领域。流媒体场景中的“智能压缩”或重复数据删除技术,由于数据到达的实时性,从无限数据流中精确识别和消除重复数据是一个更大的挑战。稳定布隆过滤器(Stable Bloom Filter,SBF)在一定程度上解决了这个问题。然而,SBF存在较高的漏报率(FNR)和较慢的收敛速度,从而使其对于FNR容忍度较低的应用程序效率低下。提出了一种新的基于池采样的Bloom Filter(RSBF)数据结构,它将池采样和Bloom Filter的概念相结合,用于数据流中重复项的近似检测.通过详细的理论分析,我们证明了它的误报率(FPR)、漏报率(FNR)和低内存要求下的收敛速度的解析界.我们表明RSBF具有目前最低的误报率和收敛速度,在相同的内存条件下,其性能优于SBF算法(300万条记录)和大约10亿条记录的合成数据集,我们证明了FNR的2倍改进,与SBF相比具有更好的收敛速度,同时表现出相当的FPR。据我们所知,这是首次尝试将存储器采样方法与布隆过滤器集成以用于流场景中的去重。
2011-11-03 cs.DS cs.IR
Daisy Bloom Filters
KTH Royal Institute of Technology(皇家理工学院);University of Copenhagen(哥本哈根大学)
本文研究面向特定数据分布的过滤器空间优化问题,提出期望空间下界并证明其渐近紧性,同时设计了一种更快且更省空间的雏菊布隆过滤器。
2024-06-16 cs.DB cs.DS cs.LG
Yes-no Bloom filter: A way of representing sets with fewer false positives
布隆过滤器(Bloom filter,BF)是一种空间高效的随机化数据结构,特别适合于表示支持近似成员查询的集合。由于其简单性和灵活性,BF已被广泛用于许多应用中,特别是在网络中。BF的性能主要取决于查询开销、空间需求和误报。本文的目的是关注假阳性。最近的BF在一个新的多播转发结构的信息为中心的网络的应用程序的启发,本文提出了是-否BF,一种新的方式表示一组,基于BF,但具有显着较低的误报和无误报。虽然它在形成阶段需要稍微多一点的处理,但它为成员资格查询提供了与BF相同的处理要求。在引入是非BF后,我们通过仿真表明,它比BF具有更好的误报性能。
2016-03-03 cs.DS cs.NI
Meta-Learning Neural Bloom Filters
DeepMind(深度思维);University College London(伦敦大学学院)
最近有一种趋势是训练神经网络来取代手工制作的数据结构,目的是更快的执行,更好的准确性或更大的压缩。在这种设置中,通过在其输入的许多时期上训练网络直到收敛来实例化神经数据结构。在输入达到高吞吐量或短暂的应用中,从头开始训练网络是不切实际的。这激发了对Few-Shot神经数据结构的需求。在本文中,我们探讨了通过元学习在一个单一的一组数据的近似集成员的学习。我们提出了一种新的内存架构,神经布隆过滤器,这是能够实现显着的压缩增益超过经典的布隆过滤器和现有的内存增强神经网络。
2019-06-10 cs.DB cs.DS cs.LG
Adversary Resilient Learned Bloom Filters
针对学习型布隆过滤器缺乏抗自适应对手安全证明的问题,本文定义多种自适应安全概念,提出并证明 PRP-LBF 与 Cuckoo-LBF 在单向函数假设下安全,且保持良好 FPR 与内存开销。
2025-09-01 cs.CR cs.DS
In oder Aus
布隆过滤器是一种数据结构,用于确定元素的集合成员关系,其应用范围从字符串匹配到网络和安全问题。这些结构的青睐,因为它们减少了内存消耗和快速挂钟和渐近的时间界限。一般来说,Bloom过滤器保持恒定的成员查询时间,使它们在其利基中非常快。然而,它们的局限性在于缺乏清除操作,以及它们的概率性质。在本文中,我们讨论了各种迭代和替代品的通用布隆过滤器,已被研究和实施,以克服其固有的局限性。布隆过滤器,特别是当与其他数据结构结合使用时,仍然是强大而有效的数据结构;我们进一步讨论它们在工业和研究中的使用,以优化资源利用率。
2019-02-19 cs.DB cs.DS
Efficient Adaptive Implementation of the Serial Schedule Generation Scheme using Preprocessing and Bloom Filters
大多数调度元算法使用解的间接表示作为有效探索搜索空间的一种方式。因此,这种元分析的一个关键部分是一个“时间表生成方案”-将间接解决方案表示转换为时间表的过程。每次需要评估新的候选解决方案时,都使用调度生成方案。由于速度相对较慢,它消耗了元启发式算法的大部分运行时间,因此,它的速度对元启发式算法的性能起着重要作用。尽管它的重要性,很少有人注意到在文献中的有效实施的时间表生成计划。我们给出了详细的描述串行调度生成方案,包括新的改进,并提出了一种新的方法来加快它,通过使用布隆过滤器。通过参数的自动控制,结果得到进一步加强。最后,我们采用在线算法选择来动态选择使用这两种实现。这种混合方法在广泛的实例上显著优于传统的实现。
2017-08-25 cs.DS cs.PF
In-packet Bloom filters: Design and networking applications
布隆过滤器(Bloom filter,BF)是一种众所周知的空间高效的数据结构,其以一定的误报概率回答集合成员查询。在试图解决当前互联网络架构的许多限制时,一些最近的提议依赖于在分组报头中包括小BF以用于路由、安全、责任或将应用状态移动到分组本身中的其他目的。在本文中,我们考虑这样的包内布隆过滤器(iBF)的设计。我们的主要贡献是探索设计空间和评估一系列扩展(1)以提高iBF的实用性和性能,(2)实现无假阴性元素删除,以及(3)提供安全增强。除了理论估计,广泛的模拟多个设计参数和实施方案验证的有用性的扩展,提供增强和新颖的iBF网络应用。
2010-01-20 cs.DS cs.IT cs.NI
Bloom Filters, Adaptivity, and the Dictionary Problem
Bloom过滤器--或者更一般地说,近似成员查询数据结构(AMQ)--维护来自宇宙U的一组密钥S的紧凑、概率表示。AMQ支持查找、插入和(对于某些AMQ)删除。对S中的x的查询保证返回“present”。对不在S中的x的查询返回“不存在”,概率至少为1- 1/2,其中1/2是可调的假阳性概率。如果查询返回“present”,但x不在S中,则x是AMQ的误报。由于AMQ具有非零的假阳性概率,它们需要的空间比显式集合表示少得多。AMQ被广泛用于加速远程存储的字典(例如,在磁盘上/通过网络)。大多数AMQ对它们将在一系列查询中返回的误报数量提供弱保证。假阳性概率仅对单个查询有效。攻击者很容易通过简单地重复误报来将AMQ的误报率推向1。本文展示了如何在误报数量上获得强有力的保证。我们说AMQ是自适应的,如果它保证了每个查询的误报概率,而不管以前的查询的答案。首先,我们证明了建立一个小的自适应AMQ是不可能的,即使AMQ在返回假阳性时立即被告知。然后,我们将展示如何构建一个自适应AMQ,将其状态划分为一个小的本地组件和一个较大的远程组件。除了自适应,我们的AMQ的本地组件在所有方面都主导现有的AMQ。它使用最优空间直到低阶术语,并支持在最坏情况下的恒定时间内以高概率进行查询和更新。因此,我们表明,自适应没有成本。
2018-08-27 cs.DS
Time-limited Bloom Filter
针对现有滑动窗口布隆过滤器难以按时间范围管理数据流元素的问题,提出限时布隆过滤器,可按时间段存查数据、自动移除过期数据,支持可变插入率并维持目标误报率,还提供了Redis模块参考实现。
2023-06-11 cs.DC cs.DS