It Takes Two: Instrumenting the Interaction between In-Memory Databases and Solid-State Drives
Abstract
In-memory databases rely on non-volatile storage devices for services such as durability and recovery. SSDs can provide the high-performance these services require. When performance problems occur, however, SSDs offer no mechanism to help analyze them. The only alternative is to instrument the database side of the problem and conjecture about what might be the cause of performance degradation. In this paper, we show that SSDs can in fact produce performance profiling information. We extend the Cosmos+ OpenSSD, a full-fledged SSD with open-source firmware, to track performance information on a per-IO-request granularity. We use such information, for instance, to analyze the interaction between a modern transaction log and checkpoint workloads, offering explanations to problems that were quite obscure before. We believe that an SSD providing such level of instrumentation is an essential tool towards co-designing a new class of high-performance storage/database stack.