Skip to content

tivvit/aerospike-pure-lua-bloom-filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aerospike Bloom filter UDF module (pure luajit iplementation)

MIT license

Storage based on probabilistic structure Bloom filter

Suitable for storing huge amount of data and quering if element is present or not

Installation

git clone --recursive

echo "REGISTER MODULE 'pure-lua-bloom-filter/luaxxhash/luaxxhash.lua'" | aql
echo "REGISTER MODULE 'pure-lua-bloom-filter/bloom_filter.lua'" | aql
echo "REGISTER MODULE 'bloom.lua'" | aql

Usage

Use Aerospike apply

Module: bloom

Method: add

Example in python:

as_client.apply(key, "bloom", "add", ["bin", value, {}])) #returns 1 if not found else 0

API

Add

Params: bin, value, conf Adds value to bloom filter, when already present returns 0, otherwise 1.

Last param is conf, when empty defaults defined on first lines of the code are used.
Default size is 10000 elements with precision 0.01 and ttl 4 hours.
Configuration options are:

  • items - count of elements
  • probability - precision 0 > p > 1
  • ttl - AS ttl (0 for never)

Query

Params: bin, value

Returns 1 if value was found and 0 if not

Clear

params: bin

Clears whole bloom filter

TODO

  • Any ideas how to test this

Development

Feel free to contribute with PR.

Copyright and License

© 2016 Vít Listík

Released under MIT licence

About

Pure lua boom filter module for Aerospike

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages