On behalf of the SPDK community I'm pleased to announce the release of SPDK 20.01!
The 20.01 release will be SPDK's first long term support release. This release will be
supported for 1 year and will have bug fix releases quarterly. This release will guarantee
API stability (but not ABI stability) for its lifetime.
This release contains the following new features:
- Optimized thin provisioning: Metadata format in blobstore changed to allow for more
optimized cluster allocation with thin provisioned blobs. This improves write performance
and reduces the number of writes on each cluster allocation.
- Flash Translation Layer bdev: FTL library is now based on zoned bdev API, instead of
Open Channel interface. Added FTL virtual bdev, that can be created on top of any bdev
supporting zoned bdev API.
- VMD hot plug: Added support for hot plug and hot remove detection for devices behind the
VMD.
- Compare and write: Support for NVMe FUSED commands in NVMe-oF target and NVMe driver has
been added. Along with compare and write operations on bdev layer this allows for atomic
operations on supported hardware or via emulation.
- NVMe-oF custom NVMe admin command: Added support for implementing handler for specific
NVMe admin commands in NVMe-oF target. This can be used to implement or replace NVMe admin
commands that are currently not handled by the NVMe-oF subsystem.
- NVMe-oF pluggable transports: The NVMe-oF target now supports plugging out of tree
NVMe-oF transports.
- NVMe-oF/TCP and iSCSI performance improvements: The posix module in SPDK's socket
abstraction layer has received a number of major improvements, including an asynchronous
writev that automatically batches writes to minimize syscalls and support for
MSG_ZEROCOPY. Further improvements have been made specifically to NVMe-oF/TCP to batch
receives. These improvements yield as much as 3x improvements in I/Ops per core on some
workloads.
- Crypto bdev: Significant performance improvement in encryption (writes) for both AESNI
and QAT polled mode drivers. Additionally, QAT queue pair load balancing improves scaling
with cores in all workloads.
- DPDK: Added support for DPDK 19.11.
The full changelog for this release is available at:
https://github.com/spdk/spdk/releases/tag/v20.01
This release contains 935 commits from 42 authors with over 52k lines of code changed.
We'd especially like to recognize all of our first time contributors:
Alok Kataria
Artur Paszkiewicz
Ivan Betsis
Ćukasz Radomski
Suhua
Zhang Junfeng
Thanks to everyone for your contributions, participation, and effort!
Thanks,
Tomek