Skip to content

lionelee/NRHI

Repository files navigation

NRHI - Non-Rehashing Hash Index

NRHI is a hash index structure for persistent memory, which leverages layered structure of hash tables to perform resizing without rehashing and performs lock-free concurrency control over hashing operations to improve scalability. And this repo is the implementation of “NRHI - Non-Rehashing Hash Index for Persistent Memory”, in Proceedings of the 38th IEEE International Conference on Computer Design, (ICCD 2021).

Get Started

NRHI is a header-only library, and is implemented based on libpmemobj-cpp.

Basically,git clone https://github.com/lionelee/NRHI.git --recursive is all you need to get started. NRHI provides test files with YCSB benchmarks under tests/.

Build

Preliminaries

  • Configure Intel Persistent Memory under App Direct Mode. This document can be helpful.
  • Build libpmemobj-cpp: get into that directory and follow the instructions.

Build test binaries

$ mkdir build
$ cd build
$ cmake ..
$ make -j

Run Benchmark

Generate the workloads by running YCSB:

$ ./scripts/gen_workloads.sh

Then run the benchmarks:

$ ./scripts/run.sh

License

NRHI is licensed under SATA-License (The Star And Thank Author License, original link). The basic idea is, whenever using a project using SATA license, people should star/like/+1 that project and thank the author.

About

Non-Rehashing Hash Index for Persistent Memory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published