https://github.com/mitdbg/treeline
An update-in-place key-value store for modern storage.
https://github.com/mitdbg/treeline
cpp key-value-store keyvaluestore kvs
Last synced: about 2 months ago
JSON representation
An update-in-place key-value store for modern storage.
- Host: GitHub
- URL: https://github.com/mitdbg/treeline
- Owner: mitdbg
- License: mit
- Created: 2021-06-03T21:30:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-02T18:47:57.000Z (about 2 years ago)
- Last Synced: 2025-09-04T22:24:17.486Z (7 months ago)
- Topics: cpp, key-value-store, keyvaluestore, kvs
- Language: C++
- Homepage:
- Size: 5.63 MB
- Stars: 143
- Watchers: 7
- Forks: 20
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
- Authors: AUTHORS
Awesome Lists containing this project
README

# 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.
```bash
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && make -j
```
To build the tests, turn on the `TL_BUILD_TESTS` option when configuring.
```bash
cmake -DCMAKE_BUILD_TYPE=Release -DTL_BUILD_TESTS=ON .. && make -j
```
To build the benchmarks, turn on the `TL_BUILD_BENCHMARKS` option when
configuring.
```bash
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](https://github.com/mitdbg/treeline/blob/master/include/treeline/pg_db.h).
The bulk of the code that comprises the current version of the system can be found in the [`page_grouping/`](https://github.com/mitdbg/treeline/tree/master/page_grouping) directory.
Thank you for your interest in diving deeper in our work!