This is a repository for persistent data structures based on persistent memory (PMem).
-
PBPTrees (B⁺-Tree for NVM) -
PTable (BDCC + NVM) -
Add Skip-Lists (Alex) - Add LSM Trees (Arun)
-
Add Tries (Leret) -
Data structure common benchmark - Documentation
The structures are licensed under GPLv3. Please see the file COPYING for detailed license information.
-
C++ Compiler supporting C++17
-
PMDK >= 1.5
Name Github Package ndctl/daxctl ndctl ndctl-dev(el), daxctl-dev(el) PMDK pmdk libpmemobj-dev(el) PMDK C++ bindings libpmemobj-cpp libpmemobj++-dev(el) NOTE: When installing via package manager - libpmemobj++-dev(el) should install the dependencies above, too.
-
Emulated NVM device pmem.io (optional)
Configurations can be found in src/CMakeLists.txt.
mkdir build; cd build
cmake ../src
make -j
Tests and benchmarks, if enabled, can be either manually executed from the build
folder or run at once with:
make test
There is also the option to create a Docker container.
For this you can either download a pre-built docker image: docker pull dbisilm/nvm-based_data_structures
or built it yourself (in project root directory) with: docker build .
After this you can start the container and bash login with e.g.:
docker run --rm -i -t dbisilm/nvm-based_data_structures /bin/bash
🚧