SPDK (Storage Performance Development Kit) to Accelerate NVMe Drives

Library Content Type:
Publish Date: 
Friday, December 4, 2020
Event Name: 
Event Track:
Focus Areas:

With the improvement of technology and the reduction of cost and power consumption, SSD (Solid State Drive) has developed rapidly as storage media in recent years. However, the general NVMe protocol requires frequent data exchange between user mode and kernel mode by “interrupts” when processing each IO. The entire process involves multiple CPU context switches and memory data copies. This method is too outdated and inefficient to give full play to the SSD hardware performance, resulting in waste of storage resources. In order to make better use of SSD performance, we need to adopt high-performance storage kit SPDK, using the network, computing processing capability and storage technology to realize the full potential of solid-state storage. SPDK provides a set of tools and libraries for writing high performance, scalable, user mode storage applications. The bedrock of SPDK is user space, polled mode, asynchronous, lockless NVMe driver. SPDK optimizes CPU/NVMe SSD’s/NIC’s to the fullest extent possible thus providing high performance with low cost thus helping upper layer applications to make full use of it by NVMe SSD’s. Also, it empowers lower latency with zero cost increase. SPDK achieves high performance using several key techniques: Moving all 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.presentation is about development of storage

Watch video: