Encyclopedia of Database Systems

2009 Edition

Bloom Filters

  • Michael Mitzenmacher
Reference work entry
DOI: https://doi.org/10.1007/978-0-387-39940-9_751



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.

Historical Background

Burton Bloom introduced what is now called a Bloom filter in his 1970 paper [2], 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...

This is a preview of subscription content, log in to check access.

Recommended Reading

  1. 1.
    Babb E. Implementing a relational database by means of specialized hardware. ACM Trans. Database Syst., 4(1):1–29, 1979.CrossRefGoogle Scholar
  2. 2.
    Bloom B. Space/time tradeoffs in hash coding with allowable errors. Commun. ACM, 13(7):422–426, 1970.zbMATHCrossRefGoogle Scholar
  3. 3.
    Bonomi F., Mitzenmacher M., Panigrahy R., Singh S., and Varghese G. Beyond Bloom filters: from approximate membership checks to approximate state machines. Comput. Commun. Rev., 36(4):315–326, 2006.CrossRefGoogle Scholar
  4. 4.
    Bratbergsengen K. Hashing methods and relational algebra operations. In Proc. 10th Int. Conf. on Very Large Data Bases, 1984, pp. 323–333.Google Scholar
  5. 5.
    Broder A. and Mitzenmacher M. Network applications of Bloom filters: a survey. Internet Math., (4):485–509, 2005.MathSciNetGoogle Scholar
  6. 6.
    Chazelle B., Kilian J., Rubinfeld R., and Tal A. The Bloomier filter: an efficient data structure for static support lookup tables. In Proc. 15th Annual ACM-SIAM Symp. on Discrete Algorithms, 2004, pp. 30–39.Google Scholar
  7. 7.
    Cohen S. and Matias Y. Spectral Bloom filters. In Proc. ACM SIGMOD Int. Conf. on Management of Data, 2003, pp. 241–252.Google Scholar
  8. 8.
    Cormode G. and Muthukrishnan S. An improved data stream summary: the count-min sketch and its applications. J. Algorithms, 55(1):58–75, 2003.MathSciNetCrossRefGoogle Scholar
  9. 9.
    Fan L., Cao P., Almeida J., and Broder A.Z. Summary cache: a scalable wide-area Web cache sharing protocol. IEEE/ACM Trans. Network., 8(3):281–293, 2000.CrossRefGoogle Scholar
  10. 10.
    Gremilion L.L. Designing a Bloom filter for differential file access. Commun. ACM, 25:600–604, 1982.CrossRefGoogle Scholar
  11. 11.
    Mackett L.F. and Lohman G.M. R* optimizer validation and performance evaluation for distributed queries. In Proc. 27th Int. Conf. on Very Large Data Bases, 1986, pp. 149–159.Google Scholar
  12. 12.
    McIlroy M.D. Development of a spelling list. IEEE Trans. Commun., 30(1):91–99, January 1982.CrossRefGoogle Scholar
  13. 13.
    Mullin J.K. and Margoliash D.J. A tale of three spelling checkers. Software Pract. Exp., 20(6):625–630, June 1990.CrossRefGoogle Scholar
  14. 14.
    Mullin J.K. Estimating the size of a relational join. Inf. Syst., 18(3):189–196, 1993.CrossRefGoogle Scholar
  15. 15.
    Mitzenmacher M. Compressed Bloom filters. IEEE/ACM Trans. Network., 10(5):604–612, October 2002.CrossRefGoogle Scholar
  16. 16.
    Spafford E.H. Opus: preventing weak password choices. Comp. Sec., 11:273–278, 1992.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Michael Mitzenmacher
    • 1
  1. 1.Harvard UniversityBoston, MAUSA