arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0804.1845cs.DScs.DB
收藏

一种基于矩阵求解的最优Bloom过滤器替换算法

An Optimal Bloom Filter Replacement Based on Matrix Solving

Ely Porat

摘要:

我们提出了一种方法来保持一个字典数据结构,映射键的值,在布隆过滤器的精神。我们建议的字典的空间需求比哈希表小得多。我们允许存储n个键,每个键映射到一个k位字符串的值。我们建议的方法需要nk + o(n)位的空间来存储字典,O(n)时间来产生数据结构,并允许在O(1)内存探测中回答成员查询。字典的大小不依赖于键的大小。然而,减少数据结构的空间需求是以一定的代价来实现的。我们的词典出现片面错误的可能性很小。当试图获取存储在字典中的键的值时,我们总是得到正确的答案。然而,当测试一个没有存储在字典中的元素的成员资格时,我们可能会得到一个错误的答案,当请求这样一个元素的值时,我们可能会得到一个特定的随机值。我们的方法基于求解GF(2^k)中的方程并使用几个哈希函数。我们建议的方法的另一个显著优点是,我们不需要使用复杂的哈希函数。我们只需要两两独立的哈希函数。我们还建议一个数据结构,只需要nk位的空间,有O(n2)的预处理时间,并有一个O(log n)的查询时间。然而,这种数据结构需要统一的哈希函数。为了以2^{-k}的错误概率替换n个元素的Bloom Filter,我们需要nk + o(n)个存储位,O(1)查询时间,O(n)预处理时间,并且仅需要成对独立的哈希函数。即使是最先进的布隆过滤器也需要nk+O(n)的空间,以及一个统一的哈希函数,所以我们的方法消耗的空间显著减少,特别是当k很小时。

英文摘要:

We suggest a method for holding a dictionary data structure, which maps keys to values, in the spirit of Bloom Filters. The space requirements of the dictionary we suggest are much smaller than those of a hashtable. We allow storing n keys, each mapped to value which is a string of k bits. Our suggested method requires nk + o(n) bits space to store the dictionary, and O(n) time to produce the data structure, and allows answering a membership query in O(1) memory probes. The dictionary size does not depend on the size of the keys. However, reducing the space requirements of the data structure comes at a certain cost. Our dictionary has a small probability of a one sided error. When attempting to obtain the value for a key that is stored in the dictionary we always get the correct answer. However, when testing for membership of an element that is not stored in the dictionary, we may get an incorrect answer, and when requesting the value of such an element we may get a certain random value. Our method is based on solving equations in GF(2^k) and using several hash functions. Another significant advantage of our suggested method is that we do not require using sophisticated hash functions. We only require pairwise independent hash functions. We also suggest a data structure that requires only nk bits space, has O(n2) preprocessing time, and has a O(log n) query time. However, this data structures requires a uniform hash functions. In order replace a Bloom Filter of n elements with an error proability of 2^{-k}, we require nk + o(n) memory bits, O(1) query time, O(n) preprocessing time, and only pairwise independent hash function. Even the most advanced previously known Bloom Filter would require nk+O(n) space, and a uniform hash functions, so our method is significantly less space consuming especially when k is small.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑