CrimsonDB
A Self-Designing Key-Value Store

CrimsonDB: Zero Knobs, High Performance

Self-design

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.

Performance

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 innovation 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! The second major technical innovation of CrimsonDB is published in our SIGMOD 2018 Dostoevsky paper which offers better trade-offs between lookup costs, merge overheads, and storage space by identifying and removing superfluous merge operations.


Stay tuned for more!

Publications



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

Niv Dayan, Stratos Idreos
Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging
In Proceedings of the ACM SIGMOD International Conference on Management of Data, 2018