tikv / Titan
Licence: apache-2.0
A RocksDB plugin for key-value separation, inspired by WiscKey.
Stars: ✭ 238
Titan: A RocksDB Plugin to Reduce Write Amplification
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/format-diff.sh
Compatibility with RocksDB
Current version of Titan is developed and tested with RocksDB 6.4.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].