Skip to content

saaros/pgbloomfun

Repository files navigation

pgbloomfun
==========

pgbloomfun is an implementation of scalable bloom filter functions for
PostgreSQL.  The implementation automatically scales the filter as more data
is added to it.

This extension only provides functions for using bloom filters on bytea
variables and does not include indexing or other features provided by
Teodor's and Oleg's bloom index (http://www.sai.msu.su/~megera/wiki/bloom)

Example usage:

  CREATE TABLE bloomtest (hits INT, bloom BYTEA);
  INSERT INTO bloomtest VALUES (0, bloom_init(500, 3, 0.01));
  DO $$
    DECLARE ctr INT;
    BEGIN
      FOR ctr IN 1..1000 LOOP
        UPDATE bloomtest
        SET hits = hits + 1,
            bloom = bloom_add(bloom, ctr::text)
        WHERE bloom_check(bloom, ctr::text) IS FALSE;
      END LOOP;
    END;
  $$;
  SELECT hits, bloom_stats(bloom) FROM bloomtest;

Basic bloom filter implementation is based on Jyri J. Virkki's libbloom
(https://github.com/jvirkki/libbloom) and the MurmurHash3 hash function used
to distribute data in the bloom filter is from Austin Appleby's SMHasher
(https://code.google.com/p/smhasher/).

license
=======

pgbloomfun is released under a 2-clause BSD license.  For the exact license
terms, see `LICENSE` and http://opensource.org/licenses/BSD-2-Claused .

contact
=======

pgbloomfun is maintained by Oskari Saarenmaa <os@ohmu.fi>, bug reports and
patches are very welcome, please post them as GitHub issues and pull
requests at https://github.com/saaros/pgbloomfun

About

bloom filter functions for postgresql

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages