Draft:Storage Performance Development Kit
| This is a draft article. It is a work in progress open to editing by anyone. Please ensure core content policies are met before publishing it as a live Wikipedia article. Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL Last edited by MSK (talk | contribs) 4 months ago. (Update)
Finished drafting? |
This article may incorporate text from a large language model, which is prohibited in Wikipedia articles. (April 2026) |
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
[edit]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
[edit]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
[edit]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
[edit]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
[edit]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
[edit]References
[edit]- 1 2 3 4 5 "About SPDK". SPDK Project. Retrieved 22 April 2026.
- 1 2 3 4 "Storage Performance Development Kit (SPDK)". SPDK Project. Retrieved 22 April 2026.
- 1 2 "SPDK explained". Simplyblock. Retrieved 22 April 2026.
- ↑ "Data Plane Development Kit". DPDK Project. Retrieved 22 April 2026.
- ↑ "SPDK GitHub repository". GitHub. Retrieved 22 April 2026.
- ↑ "DAOS Architecture". DAOS Project. Retrieved 22 April 2026.
- ↑ "SPDK project". GitHub. Retrieved 22 April 2026.
- ↑ "SPDK joins the Linux Foundation". SPDK Project. Retrieved 22 April 2026.