Skip to content

IcebergDB: High Performance Hash Tables Through Stability and Low Associativity

License

Notifications You must be signed in to change notification settings

GerHobbelt/iceberghashtable

 
 

Repository files navigation

iceberghashtable

IcebergHT: High Performance Hash Tables Through Stability and Low Associativity

Overview

IcebergHT is a fast, concurrent, and resizeable hash table implementation. It supports insertions, deletions and queries for 64-bit keys and values.

API

  • 'iceberg_insert(KeyType key, ValueType value)': insert a key-value pair to the hash table
  • 'iceberg_get_value(KeyType key)': return the value associated with the key.
  • 'iceberg_remove(KeyType key)': remove the key.

Build

This library depends on libssl, libtbb, and libpmem.

The code uses vector instructions to speed up operatons.

 $ make main
 $ ./main 24 4

The argument to main is the log of the number of slots in the hash table and the number of threads. For example, to create a hash table with 2^30 slots, the argument will be 30.

Contributing

Contributions via GitHub pull requests are welcome.

About

IcebergDB: High Performance Hash Tables Through Stability and Low Associativity

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 71.8%
  • C++ 25.0%
  • Makefile 1.7%
  • Python 1.2%
  • Shell 0.3%