MoKE: Modular Key-Value Emulator for Realistic Storage Studies

June 30, 2023

data-systemskv-ssdemulatorqemu

Researching Key-Value SSD technology requires access to physical KV-SSD hardware, which is expensive, scarce, and difficult to instrument. Existing software simulators oversimplify device behavior, making it hard to draw conclusions that transfer to real hardware.

The Problem with Simplified Simulators

KV-SSDs are fundamentally different from block SSDs. They expose a key-value interface directly to the host, handling indexing, data placement, and garbage collection internally on the device controller. Simplified simulators that model only the interface — without modeling these internal behaviors — produce results that diverge significantly from real hardware, especially under write-heavy or mixed workloads where garbage collection and data compaction dominate performance.

A Full-Stack Emulator

MoKE (Modular Key-value Emulator) is built on QEMU and provides a standards-compatible NVMe KV interface with accurate emulation of device-internal behavior. Its modular architecture separates data placement, garbage collection delay modeling, and in-storage indexing into independent components that can be configured, replaced, or extended for different research questions.

Key Capabilities

Standards compatible — MoKE supports the SNIA KV API and standard NVMe KV command set, so workloads developed for real hardware run unmodified on the emulator.

Extensible — The modular design enables researchers to swap in custom indexing schemes, garbage collection algorithms, or data placement strategies without modifying the rest of the emulator.

In-storage index emulation — Beyond basic KV operations, MoKE supports emulating the in-storage index structure, enabling research on how different index designs affect device-level performance.

Published at IEEE CLOUD 2023 (16th International Conference on Cloud Computing). DOI: 10.1109/CLOUD60044.2023.00074