nbdkit-release-notes-1.14 - release notes for nbdkit 1.14
These are the release notes for nbdkit stable release 1.14. This describes the major changes since 1.12.
nbdkit 1.14.0 was released on 28th August 2019.
Server performance improvements: Nagle’s algorithm is disabled; instead MSG_MORE
is used to control when outgoing packets are sent. Ramdisk plugins now support more efficient zeroing. (Eric Blake).
Plugins can now select their thread model at run time. Thread model selection is not finalized until after the config stage (Eric Blake).
The server supports NBD_CMD_CACHE
for prefetching. Plugins and filters have been updated to implement this where it makes sense (Eric Blake).
Low level pthread lock failures now call abort(3). This should never happen in real situations (Eric Blake).
The server will not advertize multi-conn support if the internal thread model is serialized, avoiding a possible deadlock in some clients (Eric Blake).
New server option --no-sr can be used to disable structured replies (Eric Blake).
The server will now refuse to start if stdin/stdout/stderr are closed, to avoid potential issues with file descriptor handling in plugins (Eric Blake).
$uri
can be used to specify an NBD URI in --run parameters (Eric Blake).
New nbdkit-stats-filter(1) displays elapsed statistics about NBD operations, such as the number of bytes read and written.
New nbdkit-nocache-filter(1) which disables cache requests, used to determine how effective they are (Eric Blake).
New nbdkit-noparallel-filter(1) which can be used to override the plugin’s own choice of thread model. Used to determine how the thread model affects performance, or to serialize plugins if required (Eric Blake).
New nbdkit-cacheextents-filter(1) to cache extents requests, especially useful with VDDK which has a slow implementation of extents (Martin Kletzander).
In nbdkit-full-plugin(1), nbdkit-memory-plugin(1), nbdkit-null-plugin(1), nbdkit-pattern-plugin(1) and nbdkit-random-plugin(1), the size=
prefix can be omitted, ie: nbdkit memory 1G
(instead of size=1G
).
nbdkit-nbd-plugin(1) has multiple enhancements (all added by Eric Blake):
It may be built using libnbd instead of constructing raw NBD packets.
NBD_OPT_GO
is supported.Add structured reads.
Implement
NBD_CMD_BLOCK_STATUS
.Supports TCP sockets.
Forwards
NBD_CMD_CACHE
.Retry connections.
Shared connections.
Magic
uri
parameter.TLS support.
nbdkit-vddk-plugin(1) now reports hole extents correctly when using the single-link
flag (Martin Kletzander).
nbdkit-cache-filter(1) and nbdkit-cow-filter(1) now avoid copying data through a bounce buffer when it is already sufficiently aligned (Eric Blake).
Filters (such as nbdkit-delay-filter(1) and nbdkit-rate-filter(1)) which sleep no longer cause long delays when the server is shut down (Eric Blake).
Multiple fixes to nbdkit-rust-plugin(1) (Martin Kletzander).
Multiple enhancements and clean ups to the test suite which should make tests better and more reliable.
OCaml plugins can now use parse_size
, parse_bool
, read_password
calls, and there is also a new example plugin.
On platforms which lack atomic O_CLOEXEC
support the most serialized thread model is always selected to avoid leaking file descriptors (Eric Blake).
nbdkit(1), https://www.redhat.com/archives/libguestfs/2019-August/msg00375.html.
Eric Blake
Richard W.M. Jones
Copyright Red Hat
Hey! The above document had some coding errors, which are explained below:
- Around line 14:
-
Non-ASCII character seen before =encoding in 'Nagle’s'. Assuming UTF-8