Dear MySQL users,
MySQL Router 8.0.22 is a new release for MySQL Router 8.0 series.
MySQL Router 8.0 is highly recommended for use with MySQL Server 8.0 and 5.7.
Please upgrade to MySQL Router 8.0.22.
The MySQL Router is a new building block for high availability solutions
based on MySQL InnoDB clusters.
By taking advantage of the new Group Replication technology, and
combined with the MySQL Shell, InnoDB clusters provide an integrated
solution for high availability and scalability for InnoDB based MySQL
databases, that does not require advanced MySQL expertise.
The deployment of applications with high availability requirements is
greatly simplified by MySQL Router. MySQL client connections are
transparently routed to online members of a InnoDB cluster, with MySQL
server outages and cluster reconfigurations being automatically handled
by the Router.
To download MySQL Router 8.0.22, see the "General Availability (GA)
Releases" tab at
http://dev.mysql.com/downloads/router. Package
binaries are available for several platforms and also as a source code
download.
Documentation for MySQL Router can be found at
http://dev.mysql.com/doc/mysql-router/en/
Enjoy!
Changes in MySQL Router 8.0.22 (2020-10-19)
* Functionality Added or Changed
* Bugs Fixed
Functionality Added or Changed
* Improved building mechanism by implementing CMake's
GenerateExportHeader() functionality for the MySQL
Protocol library; which previously was hard coded. (Bug
#31503429)
* The strict 1:1 thread-to-connection ratio was replaced by
an event-driven + IO-threadpool design. Instead of
running blocking socket operations in a thread,
non-blocking IO is now used and a thread may be used when
a socket is available. This raises the concurrent
connection limit by a Router instance from around 5,000
to around 50,000.
This also adds a new [io] configuration section with two
new configuration options: backend that handles async
operations (accepts poll or linux_epoll) and threads as
the number of IO threads to handles connections (0 for
all available, or 1-1024).
* The bootstrap process now configures REST API
functionality into the generated mysqlrouter.conf
configuration file. The new optional --https-port
bootstrap argument defines port; which is defined as 8443
by default.
To disable the REST API configuration from being
generated, pass in the new --disable-rest bootstrap
option.
* Added systemd notify support. If there is a NOTIFY_SOCKET
environment variable set when the Router starts, Router
treats its value as unix-domain socket name; DGRAM on all
unix-based operating systems and as a named pipe path on
Windows.
Bugs Fixed
* When using the recently introduced _hidden instance
feature, hiding secondary instances with
_disconnect_existing_sessions_when_hidden enabled would
close all secondary instances rather than only hidden
instances. This issue only applied when using host names
instead of IP addresses. (Bug #31665764)
* Refactored acceptor-shutdown synchronization to avoid
possible hangs. (Bug #31598112)
* Improved Router's metadata cache refresh mechanism to
account for race conditions; such as a refresh request
made while the metadata is currently refreshing. (Bug
#31597874)
* Improved the round-robin routing strategy quarantine
check mechanism. (Bug #31575084)
* Added support for the net_buffer_length routing option.
Previously it was accepted but ignored in favor of the
default value. (Bug #31575027)
* Added link-local IPv6 address support. Previously values
containing a '%' sign failed with an 'invalid address'
error. (Bug #31574975)
* Replaced all occurrences of 'master' in the context of
the node role with 'primary'. (Bug #31508256)
* On Windows, added socket write support to emulate it by
adding an AF_INET variant of socketpair(). (Bug
#31414156)
* When Router loses the primary it waits for the failover
with a 10 second timeout. Previously it did not check for
terminate requests, so could take up to 10 seconds if the
new primary was not found until Router honored the
shutdown request. (Bug #31397127)
* Hostname detection resolved IP addresses of external
network interfaces using code specific to Linux that
operated directly with c-style type cases. Improved
portability using type safe network-address types from
net::ip::tcp::address and ::network thus making it
portable for Windows, Solaris, FreebBSD, and macOS. (Bug
#31370876)