Asynchronous Mode NBDSSL

As of vSphere 6.7, asynchronous I/O for NBDSSL transport mode is available. Performance of NBDSSL mode data transfer can be improved with this option.
To implement asynchronous NBDSSL, use the new functions
VixDiskLib_ReadAsync
and
VixDiskLib_WriteAsync
in a callback, followed by
VixDiskLib_Wait
, to replace the VixDiskLib read and write functions. In the development kit, see
vixDiskLibSample.cpp
for code examples, following logic for the
-readasyncbench
and
-writeasyncbench
options.
VDDK has had non-public asynchronous APIs since VDDK 6.0, but behavior is different in earlier releases. File transport mode is synchronous in all releases.
Asynchronous read and write
VDDK 6.0
VDDK 6.5
6.7
VixDiskLib_ReadAsync
Always synchronous.
Same as 6.0.
For HotAdd and SAN modes, same as 6.0 and 6.5.
NBDSSL mode is asynchronous if the ESXi host supports asynchronous NBD.
VixDiskLib_WriteAsync
For HotAdd and NBDSSL modes, always synchronous.
For SAN mode, the API is asynchronous. A thread handles writes one by one in the back-end, so outstanding I/O is always 1.
Same as 6.0.
For HotAdd and SAN modes, same as 6.0 and 6.5.
NBDSSL mode is asynchronous if the ESXi host supports asynchronous NBD, as does ESXi 6.7.