C++ Bloom Filter Library

  •        104

C++ Bloom Filter Library

http://libbloom.codeplex.com/

Tags
Implementation
License
Platform

   




Related Projects

bloom - Go package implementing Bloom filters


A Bloom filter is a representation of a set of n items, where the main requirement is to make membership queries; i.e., whether an item is a member of a set.A Bloom filter has two parameters: m, a maximum size (typically a reasonably large multiple of the cardinality of the set to represent) and k, the number of hashing functions on elements of the set. (The actual hashing functions are important, too, but this is not a parameter for this implementation). A Bloom filter is backed by a BitSet; a key is represented in the filter by setting the bits at each value of the hashing functions (modulo m). Set membership is done by testing whether the bits at each value of the hashing functions (again, modulo m) are set. If so, the item is in the set. If the item is actually in the set, a Bloom filter will never fail (the true positive rate is 1.0); but it is susceptible to false positives. The art is to choose k and m correctly.

bloofi - Bloofi: A java implementation of multidimensional Bloom filters


Bloom filters are probabilistic data structures commonly used for approximate membership problems in many areas of Computer Science (networking, distributed systems, databases, etc.). With the increase in data size and distribution of data, problems arise where a large number of Bloom filters are available, and all them need to be searched for potential matches. As an example, in a federated cloud environment, each cloud provider could encode the information using Bloom filters and share the Bloom filters with a central coordinator. The problem of interest is not only whether a given element is in any of the sets represented by the Bloom filters, but which of the existing sets contain the given element. This problem cannot be solved by just constructing a Bloom filter on the union of all the sets. Instead, we effectively have a multidimensional Bloom filter problem: given an element, we wish to receive a list of candidate sets where the element might be. To solve this problem, we consider 3 alternatives. Firstly, we can naively check many Bloom filters. Secondly, we propose to organize the Bloom filters in a hierarchical index structure akin to a B+ tree, that we call Bloofi. Finally, we propose another data structure that packs the Bloom filters in such a way as to exploit bit-level parallelism, which we call Flat-Bloofi. Our theoretical and experimental results show that Bloofi and Flat-Bloofi provide scalable and efficient solutions alternatives to search through a large number of Bloom filters.We build on an existing Bloom filter library (https://github.com/magnuss/java-bloomfilter) by Magnus Skjegstad which we embedded and modified. We also use junit and Hamcrest which we include as jar files for your convenience.

BoomFilters - Probabilistic data structures for processing continuous, unbounded streams.


Boom Filters are probabilistic data structures for processing continuous, unbounded streams. This includes Stable Bloom Filters, Scalable Bloom Filters, Counting Bloom Filters, Inverse Bloom Filters, Cuckoo Filters, several variants of traditional Bloom filters, HyperLogLog, Count-Min Sketch, and MinHash.Classic Bloom filters generally require a priori knowledge of the data set in order to allocate an appropriately sized bit array. This works well for offline processing, but online processing typically involves unbounded data streams. With enough data, a traditional Bloom filter "fills up", after which it has a false-positive probability of 1.

cuckoofilter - Cuckoo Filter: Practically Better Than Bloom


Cuckoo filter is a Bloom filter replacement for approximated set-membership queries. While Bloom filters are well-known space-efficient data structures to serve queries like "if item x is in a set?", they do not support deletion. Their variances to enable deletion (like counting Bloom filters) usually require much more space.Cuckoo filters provide the flexibility to add and remove items dynamically. A cuckoo filter is based on cuckoo hashing (and therefore named as cuckoo filter). It is essentially a cuckoo hash table storing each key's fingerprint. Cuckoo hash tables can be highly compact, thus a cuckoo filter could use less space than conventional Bloom filters, for applications that require low false positive rates (< 3%).

rust-cuckoofilter - Cuckoo Filter: Practically Better Than Bloom (In Rust)


Cuckoo filter is a Bloom filter replacement for approximated set-membership queries. While Bloom filters are well-known space-efficient data structures to serve queries like "if item x is in a set?", they do not support deletion. Their variances to enable deletion (like counting Bloom filters) usually require much more space.Cuckoo filters provide the flexibility to add and remove items dynamically. A cuckoo filter is based on cuckoo hashing (and therefore named as cuckoo filter). It is essentially a cuckoo hash table storing each key's fingerprint. Cuckoo hash tables can be highly compact, thus a cuckoo filter could use less space than conventional Bloom filters, for applications that require low false positive rates (< 3%).



boost-bloom-filters


A collection of generic, C++ Bloom Filter classes developed for the Boost C++ Libraries.

dablooms - scaling, counting, bloom filter library


This project aims to demonstrate a novel bloom filter implementation that canscale, and provide not only the addition of new members, but reliable removalof existing members.Bloom filters are a probabilistic data structure that provide space-efficientstorage of elements at the cost of possible false positive on membershipqueries.**dablooms** implements such a structure that takes additional metadata to classifyelements in order to make an intelligent decision as to which bloom filter an element

ethereum-bloom-filter - Bloom filter implementation as an Ethereum contract


Bloom filter implementation as an Ethereum contract

rust-bloom-filter - A fast Bloom filter implementation in Rust


A fast Bloom filter implementation in Rust

aioredis_bloom - Bloom filter for aioredis


A simple Bloom filter written in Python 3 with asyncio using, redis ( aioredis ) as storage and the Murmur (mmh3) hash. Bloom filter is a space-efficient probabilistic data structure, is used to test whether an element is a member of a set.

bloom-filter - Bloom Filter implementation in C


Bloom Filter implementation in C

Bloom-Filter - C????? Bloom filter ???


C????? Bloom filter ???

bloom-filter - Simple implementation of Bloom filter on pure Ruby.


Simple implementation of Bloom filter on pure Ruby.

simple-bloom-filter - A simple Bloom Filter using pure Ruby.


A simple Bloom Filter using pure Ruby.

php-bloom-filter - Simple Bloom filter implementation in PHP, using SplFixedArray.


Simple Bloom filter implementation in PHP, using SplFixedArray.

bloom-filter - in-memory bloom filter in ruby


in-memory bloom filter in ruby

bloom-filter - This is an implementation of Bloom Filter, especially CountingBloomFilter.


This is an implementation of Bloom Filter, especially CountingBloomFilter.

bloom-filter


This implementation of Bloom Filter is written in java, and uses a murmur hash. The class is a java generic class that requires a ToBytes object for converting your keys into byte arrays. However if you already have byte array keys that you wish to use them with the bloom filter. There are methods that except and test byte arrays with offsets and lengths so that you can reuse your byte array buffers.