The Storage Performance Development Kit (SPDK) is a well-regarded set of tools and libraries for writing high performance user mode storage applications on Linux and FreeBSD.
This talk looks at what is involved in making SPDK run natively on Windows where the options for NVMe support are more limited. Starting with the creation of the Windows Platform Development Kit (WPDK) as a base, it covers the design options that were considered, the build environment, the trade offs and potential benefits.
The current state is explained, together with examples of the changes that were required in both the SPDK and Data Plane Development Kit (DPDK). WPDK provides the POSIX functionality needed to run SPDK on Windows, implementing a set of headers and a lightweight library which map functionality as closely as possible to existing Windows semantics. It is intended to be a production quality layer that runs as native code, with no surprises, that can be tested independently.