RangeReduce is a range query-aware LSM-engne that piggybacks on the reads performed by range queries to write the valid data back to storage as part of a single sorted run. RangeReduce improves range query latency and operational throughput, reduces space amplification and overall data movement, and significantly diminishes compaction debt.
- C++17 compatible compiler (e.g., g++ 7 or higher)
- CMake 3.10 or higher
- RocksDB 6.20 or higher
- Tectonic CLI (included in the
bindirectory)
-
Clone the repository:
git clone https://github.com/SSD-Brandeis/LSMQueryDrivenCompaction.git cd LSMQueryDrivenCompaction -
Setup and build the project:
bash ./scripts/setup.sh bash ./scripts/rebuild.sh
-
Run experiments:
bash ./scripts/run/<experiment to run>.sh
We use Tectonic to generate workloads for our experiments. To learn more about KV-WorkloadGenerator, visit the KV-WorkloadGenerator GitHub repository.