LeanStore requires libaio, c++23. It's recommended to develop the project inside a docker container for convenience, which can be built from this Dockerfile.
For VS Code, it's recommended to install the "C/C++ Extension Pack" and "clangd" plugins.
git clone [email protected]:zz-jason/leanstore.git
cd leanstore
vcpkg is used to manage dependencies, all the dependencies can be found in vcpkg.json. CMakePresets.json is used to manage common build configs. You can choose one of these cmake presets when open the project in VS Code. To compile LeanStore in debug mode:
cmake --preset debug
cmake --build build/debug
To run unittests in the debug mode:
ctest --test-dir build/debug
To check and fix code formatting with clang-format-18
:
# check format
cmake --build build/debug --target=check-format
# fix format
cmake --build build/debug --target=format
To run simple ycsb benchmarks:
./build/debug/benchmarks/ycsb/ycsb \
--ycsb_threads=8 \
--ycsb_record_count=100000 \
--ycsb_workload=c \
--ycsb_run_for_seconds=600 \
--ycsb_target=basickv
Conventional Commits is used for pull request titles, all the available types can be found in conventional-commits.yml.