A Bloom filter is a simple, space-efficient randomized data structure based on hashing that represents a set in a way that allows membership queries to determine whether an element is a member of the set. False positives are possible, but not false negatives. In many applications, the space savings afforded by Bloom filters outweigh the drawbacks of a small probability for a false positive. Various extensions of Bloom filters can be used to handle alternative settings, such as when elements can be inserted and deleted from the set, and more complex queries, such as when each element has an associated function value that should be returned.
Burton Bloom introduced what is now called a Bloom filter in his 1970 paper , where he described the technique as an extension of hash-coding methods for applications where error-free methods require too much space and were not strictly necessary. The specific application he considered...
- 6.Bratbergsengen K. Hashing methods and relational algebra operations. In: Proceedings of the 10th International Conference on Very Large Data Bases; 1984. p. 323–33.Google Scholar
- 7.Mackett LF, Lohman GM. R* optimizer validation and performance evaluation for distributed queries. In: Proceedings 27th International Conference on Very Large Data Bases; 1986. p. 149–59.Google Scholar
- 14.Cohen S, Matias Y. Spectral Bloom filters. In: Proceedings of the ACM SIGMOD International Conference on Management of Data; 2003. p. 241–52.Google Scholar
- 15.Chazelle B, Kilian J, Rubinfeld R, Tal A. The Bloomier filter: an efficient data structure for static support lookup tables. In: Proceedings of the 15th Annual ACM-SIAM Symposium on Discrete Algorithms; 2004. p. 30–9.Google Scholar