Awesome Open Source
Awesome Open Source

Titan: A RocksDB Plugin to Reduce Write Amplification

Build Status codecov

Titan is a RocksDB Plugin for key-value separation, inspired by WiscKey. For introduction and design details, see our blog post.

Build and Test

Titan relies on RocksDB source code to build. You need to checkout RocksDB source code locally, and provide the path to Titan build script.

# To build:
mkdir -p build
cd build
cmake ..
make -j<n>

# To specify custom rocksdb
cmake .. -DROCKSDB_DIR=<rocksdb_source_dir>
# or
cmake .. -DROCKSDB_GIT_REPO=<git_repo> -DROCKSDB_GIT_BRANCH=<branch>

# Build static lib (i.e. libtitan.a) only:
make titan -j<n>

# Release build:
cmake .. -DROCKSDB_DIR=<rocksdb_source_dir> -DCMAKE_BUILD_TYPE=Release

# Building with sanitizer (e.g. ASAN):
cmake .. -DROCKSDB_DIR=<rocksdb_source_dir> -DWITH_ASAN=ON

# Building with compression libraries (e.g. snappy):
cmake .. -DROCKSDB_DIR=<rocksdb_source_dir> -DWITH_SNAPPY=ON

# Run tests after build. You need to filter tests by "titan" prefix.
ctest -R titan

# To format code, install clang-format and run the script.
bash scripts/

Compatibility with RocksDB

Current version of Titan is developed and tested with TiKV's fork of RocksDB 6.29. Another version that is based off TiKV's fork of RocksDB 6.4 can be found in the tikv-6.1 branch.

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Plus Plus (238,912
Plugin (113,836
Database (92,931
Rocksdb (453