Skip to content

dbis-ilm/PMem_DS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PMem-based Data Strucutres

pipeline status coverage report

This is a repository for persistent data structures based on persistent memory (PMem).

✨ TODOs

  • PBPTrees (B⁺-Tree for NVM)
  • PTable (BDCC + NVM)
  • Add Skip-Lists (Alex)
  • Add LSM Trees (Arun)
  • Add Tries (Leret)
  • Data structure common benchmark
  • Documentation

©️ License

The structures are licensed under GPLv3. Please see the file COPYING for detailed license information.

➕ Requirements

  • 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)

⚙️ Build

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

🐳 Docker

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

📚 Documentation

🚧

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages