The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications. It achieves high performance through the use of a number of key techniques:

  • Moving all of the necessary drivers into userspace, which avoids syscalls and enables zero-copy access from the application.
  • Polling hardware for completions instead of relying on interrupts, which lowers both total latency and latency variance.
  • Avoiding all locks in the I/O path, instead relying on message passing.

The bedrock of SPDK is a user space, polled-mode, asynchronous, lockless NVMe driver. This provides zero-copy, highly parallel access directly to an SSD from a user space application. The driver is written as a C library with a single public header.

SPDK further provides a full block stack as a user space library that performs many of the same operations as a block stack in an operating system. This includes unifying the interface between disparate storage devices, queueing to handle conditions such as out of memory or I/O hangs, and logical volume management.

Finally, SPDK provides NVMe-oF, iSCSI, and vhost servers built on top of these components that are capable of serving disks over the network or to other processes. The standard Linux kernel initiators for NVMe-oF and iSCSI interoperate with these targets, as well as QEMU with vhost. These servers can be up to an order of magnitude more CPU efficient than other implementations. These targets can be used as examples of how to implement a high performance storage target, or used as the basis for production deployments.

Announcing the 2019 SPDK Developer Meetup Hosted by Nutanix

Sep 6, 2019 • Paul Luse

Come and join the 3rd annual SPDK Developer Meet-up, this year hosted by Nutanix in beautiful San Jose, CA! It’s an excellent opportunity for networking, learning, coding, and generally strengthening the community. We’ll be covering all sorts of topics so there’s sure to be something for everyone!

Continue...

Announcing The PRC SPDK Summit!

Aug 28, 2019 • Gang Cao

Save The Date

2019 Storage Performance Development Kit (SPDK) PRC Summit
September 5th-6th
Crowne Plaza Zhongguancun, Beijing
No.106 Zhichun Road, Haidian District, Beijing
Crowne Plaza Zhongguancun

Continue...

New Core Maintainer - Tomek Zawadzki

Aug 27, 2019 • Jim Harris

The SPDK project has a team of core maintainers who are responsible for providing technical oversight for the SPDK project, including final review and merging of patches into the SPDK code base. As the SPDK project continues to grow, the core maintainer team also needs to grow by adding contributors who are already demonstrating technical skill and leadership within the project. So I am pleased to announce that we are adding Tomasz (Tomek) Zawadzki to the core maintainer team!

Continue...