For Windows, MSI installer packages for MySQL Router now include a check for the required Visual Studio redistributable package, and produce a message asking the user to install it if it is missing. (Bug #30541398)
-
Added new log functionality:
[filelog]
: this new section includes the optionalfilename
option that defaults to[logger]
's filename value. This file is written to thelogging_folder
directory; and the value must be a file name and not include a path.[logger]
: added an optionalfilename
option to define Router's log file name, and it also sets[filelog]
's default filename value. It is unset by default, while default filename behavior is Router'smysqlrouter.log
.[consolelog]
: this new section includes the optionaldestination
option that defaults to/dev/stderr
. Available values are/dev/stdout
,/dev/stderr
, or/dev/null
on *nix; andCON
orNUL
on Windows.
(Bug #29271072, Bug #94095, WL #13838)
-
Added support for the InnoDB cluster metadata "tags" property; namely for the "_hidden" and "_disconnect_existing_sessions_when_hidden" tags.
_hidden
: A boolean that indicates if the node should be hidden. Setting "true" makes the node hidden, while "false" or any other value considers it not hidden. Default: false.-
_disconnect_existing_sessions_when_hidden
: A boolean that indicates if the existing connections to the node should be dropped in case the node is hidden. A value of "false" means the node is "dont_disconnect_existing", meaning existing connections to hidden nodes are not disconnected. True or any other value means the opposite. Default: true.This setting does not affect new client connections, which are never directed to hidden instances.
Hidden instances only affect user connections; the instance remains available to Router when performing tasks such as fetching metadata and calculating the quorum. (WL #13787)
Updated mock_server MySQL Server type definitions; fixed NEWDECIMAL and added TIMESTAMP2 and JSON. (Bug #31283079, Bug #99416)
For testing, the full protobuf dependency was replaced by protobuf-lite. (Bug #31245124)
For Windows, added necessary internal functions to allow log rotation but it remains unsupported. This functionality is only available on Unix-based systems. (Bug #31212570, Bug #33708504)
The bootstrap process could not complete when MySQL Server had the optimizer switch derived_merge set to off; because the v2_routers view became non-insertable. Now, derived_merge is set to on for sessions that Router is handling metadata. (Bug #31170721)
Improved the plugin loading mechanism to not implicitly load plugins; previously the same plugin could be loaded twice. (Bug #31024867)
Router assumed that each new GR change notified by X Protocol notifications has a new view id, but that is not always the case; for example, for changes like switching the primary or change of the role. The view id is no longer used for notification debouncing. (Bug #31017863, Bug #98863)
Fixed MSVC 2019 16.6 builds by adding the missing headers. Thanks to Billy O'Neal for the patch. (Bug #31008906, Bug #98880)
Fixed Clang 9 warnings. (Bug #30920954)
With use_gr_notifications=1, Router used the old X Protocol namespace name (xplugin) when sending the PING message over the X Protocol connection that was sent to avoid the idle connection from being closed. (Bug #30850734)
With a high TTL and Group Replication (GR) notifications enabled, MySQL Shell operations such as addInstance() and removeInstance() would go unnoticed until the TTL expired; which would trigger GR notifications in the meantime. Now Router temporarily decreases TTL to 1s when it notices inconsistent metadata until it becomes consistent again. (Bug #30739068)
On Linux, Router now installs an example logrotate example script; it's located at
/etc/logrotate.d/mysqlrouter
. (Bug #30611485)Updated HTTP server logic to function with changes made by libevent 2.1.9. (WL #10703)