tulip - Simple stable bloomfilter web service
A simple go web service implementing SBF
Stable Learned Bloom Filters for Data Streams
More about setting filter values: https://hur.st/bloomfilter/
Usage
tulip -port 8080 -address 127.0.0.1 -state filterstate.json
Methods
POST
New
Create a new filter named name
- filtersize number of cells in filter - m
- hashfunctions number of hash functions - k
- decay number of random deletes before insert
- max max cell value
/bloom/new/<name>/<filtersize>/<hashfunctions>/<decay>/<max>
Add
Add a single value to filter.
Value kan be anything, will be hashed k times with murmur3
/bloom/add/<name>/<value>
AddIfNotSet
Add single value to filter if value not exists in filter. Will not run random delete if value exists.
/bloom/addifnotset/<name>/<value>
Poster
Add multiple values to filter
/bloom/poster/<name>
Eg. filename.txt
value1
value2
value3
curl -X POST http://127.0.0.1:8080/bloom/poster/filtername --data-binary @filename.txt
Reset
Set all values in filter to zero
/bloom/reset/<name>
Destroy
Remove filter
/bloom/destroy/<name>
GET
Test
Check if value is present in filter
/bloom/test/<value>
List
List filters
/bloom/list
Info
Get info about filter
/bloom/info/<name>
Debug
Get debug info about filter
/bloom/debug/<name>
Save
Force saving of filterstate to disk
/bloom/save
Load
Force reload of filterstate from disk
/bloom/load