flamegraphs: Move demo of flamegraph earlier
[libguestfs-talks.git] / 2019-kvm-forum / papers / NBD-changes.tex
index c588de1..fceae20 100644 (file)
@@ -71,17 +71,228 @@ NBD URI specification was introduced.
 \url{https://github.com/NetworkBlockDevice/nbd/blob/master/doc/uri.md}
 \end{description}
 
-
 \f
-\section{qemu-nbd}
+\section{qemu client, qemu-nbd}
+
+\begin{description}
+
+\item[2.8, Dec 2016]
+
+QMP \verb|nbd-server-add|
+
+\verb|NBD_CMD_WRITE_ZEROES|
+
+\item[2.9, Apr 2017]
+
+Systemd socket activation
+
+\item[3.0, Aug 2018]
+
+\item[3.1, Dec 2018]
+
+\item[4.0, Apr 2019]
+
+Interop improvements with nbdkit
+
+Various fixes related to request alignment
+
+\verb|qemu-nbd --bitmap|
 
+\verb|qemu-nbd --list|
 
+\verb|qemu-nbd --partition| deprecated
+
+\verb|qemu-nbd --tls-authz|
+
+\item[4.1, Aug 2019]
+
+\verb|qemu-nbd --pid-file|
+
+\item[4.2, later in 2019]
+
+\verb|NBD_CMD_CACHE|
+
+\verb|NBD_FLAG_CAN_MULTI_CONN| set automatically in some
+circumstances
+
+\verb|NBD_CMD_FLAG_FAST_ZERO|
+
+\end{description}
 
 \f
 \section{nbdkit}
 
+\begin{description}
+
+\item[1.4, July 2018]
+
+\url{https://www.redhat.com/archives/libguestfs/2018-July/msg00023.html}
+
+New plugins: Tcl, ext2, random, zero
+
+New filters: blocksize, fua, log, nozero
+
+TLS-PSK
+
+TRIM support
+
+\item[1.6, Aug 2018]
+
+\url{https://www.redhat.com/archives/libguestfs/2018-August/msg00279.html}
+
+New plugins: Lua, pattern, data
+
+New filters: truncate, error
+
+\verb|NBD_OPT_GO| supported
+
+FreeBSD port
+
+\verb|-D| options for debugging
+
+\item[1.8, Nov 2018]
+
+\url{https://www.redhat.com/archives/libguestfs/2018-November/msg00111.html}
+
+New plugins: sh, iso, floppy, partitioning
+
+Haiku port
+
+\item[1.10, Jan 2019]
+
+\url{https://www.redhat.com/archives/libguestfs/2019-January/msg00135.html}
+
+New plugins: full
+
+New filters: cache, delay, xz
+
+Multi-conn support
+
+\verb|NBD_OPT_INFO|
+
+Fuzz testing
+
+\item[1.12, Apr 2019]
+
+\url{https://www.redhat.com/archives/virt-tools-list/2019-April/msg00045.html}
+
+New plugins: ssh, linuxdisk, rust
+
+New filters: rate, readahead, noextents
+
+\verb|NBD_CMD_BLOCK_STATUS|
+
+\item[1.14, Aug 2019]
+
+\url{https://www.redhat.com/archives/libguestfs/2019-August/msg00375.html}
+
+New filters: stats, nocache, noparallel, cacheextents
+
+Many performance improvements
+
+\verb|NBD_CMD_CACHE|
+
+\end{description}
 
 \f
 \section{libnbd}
 
+Project started last day of April 2019.
+
+\begin{description}
+
+\item[May 2019]
+
+Most \verb|NBD_CMD_| implemented, and working connection to nbdkit,
+within first 10 days.  Interoperating with qemu-nbd within 2 weeks.
+TLS implemented and interoperating with qemu-nbd within 16 days.
+
+Generated C API, Python 3 bindings and \verb|nbdsh|, OCaml bindings,
+hierarchical state machine.
+
+Export names
+
+Subprocess server (\verb|nbd_connect_command|)
+
+Structured replies
+
+\verb|NBD_CMD_BLOCK_STATUS| and \verb|base:allocation|
+
+Multiple commands ready to issue and in flight
+
+Callbacks
+
+``Internal'' multi-conn support added then removed
+
+Valgrinding
+
+Some API calls can be handled without taking the lock
+
+libnbd $0.1.2$ was released on May $30^{th}$ 2019.
+
+\item[June 2019]
+
+NBD URIs supported
+
+\verb|nbdsh -c| parameter
+
+\verb|MSG_MORE| optimization
+
+Better handling of multiple in-flight commands, a lot of
+optimization, and finessing of the API.
+
+Python bindings custom exception \verb|nbd.Error|
+
+\item[July 2019]
+
+Port to FreeBSD
+
+Further work on callbacks
+
+Optimize command queue to be $O(1)$ instead of $O(n)$
+
+Symbol versions
+
+libnbd $0.9.6$ was released on Jul $30^{th}$ 2019.
+
+\item[August 2019]
+
+More tests
+
+Debug output includes function names, parameters, return values
+
+Optional function parameters
+
+Man pages for every API
+
+Port to RHEL 7
+
+First stable version $1.0$ was released on August $27^{th}$ 2019.
+
+\item[September 2019]
+
+Support for \verb|FAST_ZERO|
+
+New APIs for testing servers without Structured Replies and explicitly
+setting handshake flags.  New APIs for finding out if TLS was
+negotiated, and what NBD protocol is being used.
+
+Reproducible build
+
+Two CVEs found
+
+Share \verb|nbd-protocol.h| file with nbdkit
+
+\item[October 2019]
+
+Systemd socket activation
+
+Fuzz testing (discovers one serious CVE)
+
+New API to connect directly to socket
+
+New \verb|nbdfuse| tool
+
+\end{description}
+
 \end{document}