Description
Thread-safe hash tables for multi-cores!
Description
Please see the README on GitHub at https://github.com/pwrobinson/concurrent-hashtable#readme. Benchmarks can be found at https://lowerbound.io/blog/2019-10-24_concurrent_hash_table_performance.html
README.md
A thread-safe hash table for multi-cores
You can find benchmarks and more information about the internals of this package here.
Installation
stack install
Usage Example
> ht <- newWithDefaults 4 -- creates hash table of initial size 4
> insert ht 1 "hello" -- adds key-value pair (1,"hello")
> insert ht 2 "world" -- adds key-value pair (2,"world")
> atomically $ readAssocs ht -- convert to a key-value list
[(1,"hello"),(2,"world")]
> readSizeIO ht -- returns 4
> insert ht 3 "!" -- adds key-value pair (3,"!") and triggers a resize as the load fraction is ≥ 0.75
> readSizeIO ht -- returns 8
> atomically $ readAssocs ht -- convert to a key-value list
[(1,"hello"),(3,"!"),(2,"world")]