-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Server Programmability
Improve current hashing mechanism to allow for fine grained locks along the lines of Oracle’s Latching, RBS and redo logs mechanism allowing higher concurrency through non-blocking reads when write is required.
*Sample papers reviewed by Performance Engineering.
growt (GrowTable) is a header only library implementing a concurrent growing hash table
https://github.com/TooBiased/growt
parlayhash : A Header Only Fast Concurrent Hash Table.
https://github.com/cmuparlay/parlayhash/tree/main
Other Hash Tables
https://github.com/BlazingPhoenix/concurrent-hash-map (libcuckoo)
https://github.com/GLaDOS-418/threading_library - sharded locks
Papers:
https://www.cs.princeton.edu/~mfreed/docs/cuckoo-eurosys14.pdf
https://www.liblfds.org/downloads/white%20papers/[Hash]%20-%20[Michael]%20-%20High%20Performance%20Dynamic%20Lock-Free%20Hash%20Tables%20and%20List-Based%20Sets.pdf
http://erdani.org/publications/cuj-2004-12.pdf
Other
https://github.com/cmuparlay/concurrent_deferred_rc
https://github.com/cmuparlay/parlaylib
https://www.liblfds.org/