Flexible Data Placement Open Source Ecosystem

Wed Sep 20 | 9:30am
Location:
Salon V
Abstract

Flexible Data Placement (FDP) represents the latest development in mainstream data placement technology for NVMe. Although its use-cases resemble those of other NVMe features, such as Streams and ZNS, the differences have significant implications for the implementation within host storage stacks and applications. As host stacks adopt various data placement technologies, the risk of bloated codebases and redundant implementations rises, increasing maintenance costs for large mainline projects. In this presentation, we discuss the efforts to integrate FDP support in Linux, ranging from QEMU emulation to different I/O paths (e.g., Linux Kernel I/O Passthru, SPDK), libraries (e.g., xNVMe), and tools (e.g., fio, nvme-cli). We highlight the design decisions made to enable early adoption without depending on major Linux kernel block layer changes. Additionally, we provide an overview of the FDP stack implementation in two example applications: Cachelib and RocksDB. We use these examples to look at WAF behaviour as well as evaluate the engineering efforts of adoption.

Learning Objectives

  • Understand what FDP is and the benefits possible with the technology
  • Provide a blueprint for how to integrate FDP into an open source software stack.
  • Highlight how io-passthru can be leveraged to prove end-to-end solutions before mainline Linux integration


---

Adam Manzanares
Samsung Electronics
Related Sessions