A Self-Designing Key-Value Store

CrimsonDB: Zero Knobs, High Performance


CrimsonDB is a new plug and play key-value store. It offers optimal reads and writes given a memory budget and an application workload. CrimsonDB decides autonomously how to change its core design to adjust to workload, hardware and other parameters.


We build CrimsonDB by mapping the whole possible design space of key-value stores which allows us to discover key design optimizations. Through them we push read and write performance towards the optimal behavior while at the same time discover the rules that govern automation.

What if?

CrimsonDB offers advanced system design exploration properties such as allowing to argue about hardware properties and the potential benefit when adding new hardware or what kind of hardware would bring a required performance property for a given workload.

At its core, CrimsonDB is an LSM-tree/B-tree hybrid built in C++. The first major technical component of CrimsonDB is published in our SIGMOD 2017 Monkey paper which offers optimal Bloom filter allocation and a first set of what-if design and auto-tuning properties. Click here for our interactive online tool showcasing the what-if and the autotuning capabilities of Monkey!

Stay tuned for more!


Niv Dayan, Manos Athanassoulis, Stratos Idreos
Monkey: Optimal Navigable Key-Value Store
[paper website] [paper video]
In Proceedings of the ACM SIGMOD International Conference on Management of Data, 2017