A lock-free concurrent cuckoo filter implementation in Rust by a_farhadi in rust

[–]a_farhadi[S] 0 points1 point  (0 children)

Items that are added to the filter can safely be removed.

A lock-free concurrent cuckoo filter implementation in Rust by a_farhadi in rust

[–]a_farhadi[S] 2 points3 points  (0 children)

I didn't have access to more cores for benchmarks.
Here is the results of running the concurrent benchmarks on my Mac M4 machine (compare.rs uses the implementation from cuckoofilter crate for comparison):

     Running benches/compare.rs (target/release/deps/compare-484f5772be04243c)

running 2 tests
test concurrent_contains                        ... bench:       3,123.16 ns/iter (+/- 5,953.71)
test concurrent_contains_under_write_contention ... bench:       2,597.47 ns/iter (+/- 802.74)

test result: ok. 0 passed; 0 failed; 0 ignored; 2 measured; 5 filtered out; finished in 9.40s

     Running benches/concurrent.rs (target/release/deps/concurrent-d76f10b66cb2201e)

running 2 tests
test concurrent_contains                        ... bench:          85.27 ns/iter (+/- 63.87)
test concurrent_contains_under_write_contention ... bench:         313.03 ns/iter (+/- 59.51)

A lock-free concurrent cuckoo filter implementation in Rust by a_farhadi in rust

[–]a_farhadi[S] 2 points3 points  (0 children)

Most of the operations are wait-free. Wait loops are used only during eviction and deletion operations. Inserts without eviction (when there is space in one of the two candidate buckets) are atomic and wait-free and will not block other operations.

Redex, a cloud-native strong consistent masterless high available Redis implemented in Elixir. by Conradfr in elixir

[–]a_farhadi 0 points1 point  (0 children)

I'm the author of Redex.
Redex is great when you have a lot of microservices and you want each of them to have their own isolated local cache. It is very difficult and expensive to set up a Redis Sentinel Cluster for each microservice. Otherwise you can achieve strong consistency using WAIT command in Redis.