Popularity
6.2
Declining
Activity
0.0
Stable
19
3
2

Monthly Downloads: 12
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Concurrency     Unagi    
Latest version: v0.1.1.2

unagi-bloomfilter alternatives and similar packages

Based on the "unagi" category.
Alternatively, view unagi-bloomfilter alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of unagi-bloomfilter or a related project?

Add another 'unagi' Package

README

unagi-bloomfilter Build Status

This library implements a fast concurrent bloom filter, based on bloom-1 from "Fast Bloom Filters and Their Generalization" by Y Qiao, et al.

It's on hackage and can be installed with

$ cabal install unagi-bloomfilter

A bloom filter is a probabilistic, constant-space, set-like data structure supporting insertion and membership queries. This implementation is backed by SipHash so can safely consume untrusted inputs.

The implementation here compares favorably with traditional set implementations in a single-threaded context, e.g. here are 10 inserts or lookups compared across some sets of different sizes:

single-threaded

With the llvm backend benchmarks take around 75-85% of the runtime of the native code gen.

Unfortunately writes in particular don't seem to scale currently; i.e. distributing writes across multiple threads may be slower than in a single-threaded context, because of memory effects. We plan to export functionality that would support using the filter here in a concurrent context with better memory behavior (e.g. a server that shards to a thread-pool which handles only a portion of the bloom array).

concurrent