https://github.com/xsxszab/lock_free_cuckoo_filter
A lock-free cuckoo filter implementation
https://github.com/xsxszab/lock_free_cuckoo_filter
cuckoo-filter lock-free
Last synced: 6 months ago
JSON representation
A lock-free cuckoo filter implementation
- Host: GitHub
- URL: https://github.com/xsxszab/lock_free_cuckoo_filter
- Owner: xsxszab
- Created: 2023-11-26T15:17:52.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-23T19:29:24.000Z (over 1 year ago)
- Last Synced: 2025-02-11T18:45:46.486Z (8 months ago)
- Topics: cuckoo-filter, lock-free
- Language: C++
- Homepage: https://xsxszab.github.io/
- Size: 1.91 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Introduction
A lock-free cuckoo filter implementation.
### Requirements
* C++ 17
* CMake >= 3.4.1
* GCC 4.1 or newer (for `__sync_bool_compare_and_swap`) and x86_64 platform
* libssl-dev (for generating MD5 fingerprint)
* (optional) Doxygen, graphviz### Usage
* install `build-essential`, `cmake` and `libssl-dev`.
* create dir `./build` under project root directory and cd into it.
* run `cmake ..`.
* run `make` to build both the filter shared library and test cases. New test cases can be added by creating .cpp file(s) under ./test, the CMake script will automatically detect and build new test cases.
* executable test can be found in `./build/bin/`.
* (optional) install `doxygen, graphviz` and run `doxygen` in project root directory to generate documents.### Reports
* [Project Proposal](https://github.com/xsxszab/lock_free_cuckoo_filter/blob/master/reports/proposal.md)
* [Milestone Report](https://github.com/xsxszab/lock_free_cuckoo_filter/blob/master/reports/milestone.md)
* [Final Report](https://github.com/xsxszab/lock_free_cuckoo_filter/blob/master/reports/final_report.md)### Future optimizations
- [ ] place all fingerprints in one bucket in one continuous piece of memory
- [ ] BFS-based replacement algorithm### References
[1] [Cuckoo Filter: Practically Better Than Bloom](https://www.cs.cmu.edu/~dga/papers/cuckoo-conext2014.pdf)[2] [Lock-free Cuckoo Hashing](https://ieeexplore.ieee.org/document/6888938)
[3] [MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing](https://www.usenix.org/system/files/conference/nsdi13/nsdi13-final197.pdf)
[4] [Hazard pointers: safe memory reclamation for lock-free objects](https://ieeexplore.ieee.org/document/1291819)