TropoDB: Design, Implementation and Evaluation of a KV-Store for Zoned Namespace SSDs

CompSys'23, Netherlands, June 27-29

Download PDF Slides

Abstract

The amount of data that is processed each year keeps increasing, expected to reach approximately 180 zettabytes of data in the year 2025. Larger data volumes require applications and hardware solutions to scale along. A big part of the digital ecosystem makes use of key-value stores to store and load data. Key-value stores, therefore, become a prime target for optimisation efforts. Recently a new interface for storage devices, known as Zoned Namespaces (ZNS), has been proposed. This interface is able to achieve better results than the conventional block-based approach when used on flash-based SSDs, both in performance and durability. Therefore, there is an interest by both industry and academia to shift to the usage of ZNS SSDs. Key-value stores are also a target for this shift because key-value stores are I/O heavy, require high performance and are used extensively. Further on, key-value stores commonly make use of data structures, whose design already follows ZNS closely, making them a natural fit for ZNS optimisations. Therefore, we have designed and implemented an LSM-tree-based key-value store directly on top of ZNS, known as TropoDB. TropoDB directly interfaces with the storage and is designed using an user-space I/O stack within the RocksDB ecosystem. We come with a number of novel designs for LSM-tree components on top of ZNS. The results of the implementation are both promising and competitive. TropoDB is able to come close to RocksDB with state-of-the-art file system. Source code for TropoDB is available at https://github.com/Krien/TropoDB.