.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.38.1 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "nbdkit-release-notes-1.14 1" .TH nbdkit-release-notes-1.14 1 2024-04-21 nbdkit-1.38.1 NBDKIT .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME nbdkit\-release\-notes\-1.14 \- release notes for nbdkit 1.14 .SH DESCRIPTION .IX Header "DESCRIPTION" These are the release notes for nbdkit stable release 1.14. This describes the major changes since 1.12. .PP nbdkit 1.14.0 was released on 28th August 2019. .SS "New features" .IX Subsection "New features" Server performance improvements: Nagle’s algorithm is disabled; instead \f(CW\*(C`MSG_MORE\*(C'\fR is used to control when outgoing packets are sent. Ramdisk plugins now support more efficient zeroing. (Eric Blake). .PP Plugins can now select their thread model at run time. Thread model selection is not finalized until after the config stage (Eric Blake). .PP The server supports \f(CW\*(C`NBD_CMD_CACHE\*(C'\fR for prefetching. Plugins and filters have been updated to implement this where it makes sense (Eric Blake). .PP Low level pthread lock failures now call \fBabort\fR\|(3). This should never happen in real situations (Eric Blake). .PP The server will not advertize multi-conn support if the internal thread model is serialized, avoiding a possible deadlock in some clients (Eric Blake). .PP New server option \fI\-\-no\-sr\fR can be used to disable structured replies (Eric Blake). .PP 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). .PP \&\f(CW$uri\fR can be used to specify an NBD URI in \fI\-\-run\fR parameters (Eric Blake). .PP New \fBnbdkit\-stats\-filter\fR\|(1) displays elapsed statistics about NBD operations, such as the number of bytes read and written. .PP New \fBnbdkit\-nocache\-filter\fR\|(1) which disables cache requests, used to determine how effective they are (Eric Blake). .PP New \fBnbdkit\-noparallel\-filter\fR\|(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). .PP New \fBnbdkit\-cacheextents\-filter\fR\|(1) to cache extents requests, especially useful with VDDK which has a slow implementation of extents (Martin Kletzander). .PP In \fBnbdkit\-full\-plugin\fR\|(1), \fBnbdkit\-memory\-plugin\fR\|(1), \&\fBnbdkit\-null\-plugin\fR\|(1), \fBnbdkit\-pattern\-plugin\fR\|(1) and \&\fBnbdkit\-random\-plugin\fR\|(1), the \f(CW\*(C`size=\*(C'\fR prefix can be omitted, ie: \&\f(CW\*(C`nbdkit\ memory\ 1G\*(C'\fR (instead of \f(CW\*(C`size=1G\*(C'\fR). .PP \&\fBnbdkit\-nbd\-plugin\fR\|(1) has multiple enhancements (all added by Eric Blake): .IP \(bu 4 It may be built using libnbd instead of constructing raw NBD packets. .IP \(bu 4 \&\f(CW\*(C`NBD_OPT_GO\*(C'\fR is supported. .IP \(bu 4 Add structured reads. .IP \(bu 4 Implement \f(CW\*(C`NBD_CMD_BLOCK_STATUS\*(C'\fR. .IP \(bu 4 Supports TCP sockets. .IP \(bu 4 Forwards \f(CW\*(C`NBD_CMD_CACHE\*(C'\fR. .IP \(bu 4 Retry connections. .IP \(bu 4 Shared connections. .IP \(bu 4 Magic \f(CW\*(C`uri\*(C'\fR parameter. .IP \(bu 4 TLS support. .PP \&\fBnbdkit\-vddk\-plugin\fR\|(1) now reports hole extents correctly when using the \f(CW\*(C`single\-link\*(C'\fR flag (Martin Kletzander). .PP \&\fBnbdkit\-cache\-filter\fR\|(1) and \fBnbdkit\-cow\-filter\fR\|(1) now avoid copying data through a bounce buffer when it is already sufficiently aligned (Eric Blake). .PP Filters (such as \fBnbdkit\-delay\-filter\fR\|(1) and \&\fBnbdkit\-rate\-filter\fR\|(1)) which sleep no longer cause long delays when the server is shut down (Eric Blake). .PP Multiple fixes to \fBnbdkit\-rust\-plugin\fR\|(1) (Martin Kletzander). .PP Multiple enhancements and clean ups to the test suite which should make tests better and more reliable. .PP OCaml plugins can now use \f(CW\*(C`parse_size\*(C'\fR, \f(CW\*(C`parse_bool\*(C'\fR, \&\f(CW\*(C`read_password\*(C'\fR calls, and there is also a new example plugin. .PP On platforms which lack atomic \f(CW\*(C`O_CLOEXEC\*(C'\fR support the most serialized thread model is always selected to avoid leaking file descriptors (Eric Blake). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnbdkit\fR\|(1), https://www.redhat.com/archives/libguestfs/2019\-August/msg00375.html. .SH AUTHORS .IX Header "AUTHORS" Eric Blake .PP Richard W.M. Jones .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright Red Hat .SH LICENSE .IX Header "LICENSE" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .IP \(bu 4 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .IP \(bu 4 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .IP \(bu 4 Neither the name of Red Hat nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. .PP THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.