You can edit almost every page by Creating an account and confirming your email.

Storage Performance Development Kit

From EverybodyWiki Bios & Wiki


Storage Performance Development Kit (SPDK) is an open-source software framework consisting of libraries and tools for building high-performance, scalable storage applications.[1] It enables applications to access storage devices directly from user space, bypassing traditional kernel-based storage stacks in order to reduce latency and increase throughput.[2]

Originally developed by Intel, SPDK is used in a range of environments including cloud infrastructure, software-defined storage, and high-performance computing systems.[3]

Overview

SPDK is designed to maximise the performance of modern storage devices, particularly NVMe (Non-Volatile Memory Express) solid-state drives.[1] It achieves this by implementing a user-space, polled-mode driver architecture that eliminates the overhead associated with system calls and interrupt handling.[2]

Instead of relying on interrupt-driven I/O, SPDK uses a polling model in which applications actively check for completed operations. This approach reduces latency variability and improves determinism, making it suitable for performance-critical applications.[1]

Architecture

SPDK employs several design principles aimed at improving efficiency and scalability:

  • User-space drivers: Storage device drivers run entirely in user space, avoiding kernel context switches.[2]
  • Polling-based I/O: Hardware queues are polled for completions rather than relying on interrupts.[1]
  • Zero-copy mechanisms: Data is transferred directly between application memory and devices using direct memory access (DMA).[3]
  • Lockless concurrency: Per-core data structures and message passing are used to minimise contention between threads.[1]

The architecture is conceptually similar to other kernel-bypass frameworks such as the Data Plane Development Kit (DPDK), which also prioritises low-latency, high-throughput processing.[4]

Components

SPDK provides a modular set of libraries and services that can be combined to build storage systems. These include:

  • NVMe driver for direct access to NVMe devices
  • NVMe over Fabrics (NVMe-oF) target implementation
  • iSCSI target
  • Virtio and vhost support for virtualised environments
  • Block device abstraction layer
  • Acceleration and memory management frameworks[5]

Use cases

SPDK is used in a variety of storage and data-intensive applications, including:

  • Cloud storage platforms and hyperscale data centres
  • Software-defined storage systems
  • High-performance databases and analytics platforms
  • NVMe over Fabrics deployments for storage disaggregation

It is also integrated into larger storage systems such as the Distributed Asynchronous Object Storage (DAOS) platform.[6]

Development and governance

SPDK was initially developed by Intel and later evolved into a community-driven open-source project.[2] The project is maintained by a consortium of contributors from industry and academia and is hosted on GitHub.[7]

In 2025, SPDK was contributed to the Linux Foundation to support long-term governance and encourage broader collaboration across the storage ecosystem.[8]

See also

References

  1. 1.0 1.1 1.2 1.3 1.4 "About SPDK". SPDK Project. Retrieved 22 April 2026.
  2. 2.0 2.1 2.2 2.3 "Storage Performance Development Kit (SPDK)". SPDK Project. Retrieved 22 April 2026.
  3. 3.0 3.1 "SPDK explained". Simplyblock. Retrieved 22 April 2026.
  4. "Data Plane Development Kit". DPDK Project. Retrieved 22 April 2026.
  5. "SPDK GitHub repository". GitHub. Retrieved 22 April 2026.
  6. "DAOS Architecture". DAOS Project. Retrieved 22 April 2026.
  7. "SPDK project". GitHub. Retrieved 22 April 2026.
  8. "SPDK joins the Linux Foundation". SPDK Project. Retrieved 22 April 2026.



This article "Storage Performance Development Kit" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Storage Performance Development Kit. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.