/treeline

An update-in-place key-value store for modern storage.

Primary LanguageC++MIT LicenseMIT

TreeLine

An embedded key-value store for modern SSDs.

Building from source

Install Dependencies

A few packages that TreeLine depends on are

  • libtbb-dev
  • autoconf
  • libjemalloc-dev

Depending on the distribution you have, ensure the above packages are installed. On Ubuntu, you can install the dependencies using apt:

sudo apt install libtbb-dev autoconf libjemalloc-dev

TreeLine's other dependencies are fetched by CMake during compilation.

Compile

CMake 3.17+ is required for building this project.

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && make -j

To build the tests, turn on the TL_BUILD_TESTS option when configuring.

cmake -DCMAKE_BUILD_TYPE=Release -DTL_BUILD_TESTS=ON .. && make -j

To build the benchmarks, turn on the TL_BUILD_BENCHMARKS option when configuring.

cmake -DCMAKE_BUILD_TYPE=Release -DTL_BUILD_BENCHMARKS=ON .. && make -j

Inspecting the codebase

If you would like to read more about the internals of TreeLine, you can start at this header file.

The bulk of the code that comprises the current version of the system can be found in the page_grouping/ directory.

Thank you for your interest in diving deeper in our work!