Added a new
unknown_config_option
configuration option that defines Router behavior when encountering an unknown configuration option, such as a typo. Behavior defaults to 'warning' if unset, and bootstrapping sets it to 'error' in the generated configuration behavior. Previously, Router ignored unknown configuration options. (Bug #32207191, WL #12771)Added connection pooling functionality to reuse server-side connections. This adds the new
max_idle_server_connections
(defaults to 0 seconds; so is disabled) andidle_timeout
(defaults to 5 seconds) Router configuration options for the new[connection_pool]
configuration section. Set [rest_connection_pool] to enable its REST API functionality. (WL #12771)Changed the
connect_timeout
default value to5
seconds. Previously it defaulted to15
for the [DEFAULT] section and1
for the [routing] section. (WL #14978)-
Extended the quarantine mechanism to the first-available and next-available static destination routing strategies, when previously it only applied to the static round-robin and dynamic metadata-cache policies. Previously first-available would check for connections but now skips unreachable (quarantined) destinations. The next-available strategy behavior did not change to preserve backwards compatibility.
This adds a new
unreachable_destination_refresh_interval
configuration option that defaults to 1 (second). This determines how often each unreachable destination candidate is probed for availability. (WL #14663)
Router would unnecessarily remove and recreate existing connections when new nodes were added to a Cluster, and this would potentially block the GR notification thread. (Bug #33874978)
Closing an SSL connection now cancels all events on the server-side socket instead of passively waiting for it to close. (Bug #33830212)
The metadata upgrade process (via MySQL Shell's dba.upgradeMetadata()) did not recognize when Router was upgraded if the system still used the older metadata 1.x (metadata 2.0 was introduced in v8.0.19); and this stalled the upgrade process. Now Router sets the Router version in metadata during bootstrap for all metadata versions, and it continues to retry updating the version if it failed due to missing privileges of the Router user when before it only tried once. (Bug #33825480)
-
On Windows MSI builds, added the missing
INFO_BIN
andINFO_SRC
files to theshare/doc/mysqlrouter
directory. (Bug #33822549)References: See also: Bug #33510726.
While bootstrapping, the default section name keys for the metadata_cache and routing sections changed from the cluster name to "bootstrap" to help prevent potential invalid character clashes. (Bug #33673803)
Improved Doxygen support by removing [[maybe_used]] tags and ensuring all parameters are documented. (Bug #33596116)
A potential race condition occurred when the routing plugin shut down and cleaned up the sockets container when the connector tried using this sockets container afterwards. Connections not yet moved to the routing plugin container are now counted, and the routing plugin cannot shut down until these connections are handled. (Bug #33593833)
Split metadata_cache into metadata_cache (library) and metadata_cache_plugin (plugin). (Bug #33574698)
Refactored BasePluginConfig by adding transformation classes (StringOption, UintOption, DoubleOption, and MilliSecondsOption) and converted plugin configurations to get_option(). (Bug #33570004, Bug #33584470)
Router now uses metadata to find a PRIMARY rather than rely upon the order of nodes returned by a node list query. Before it would connect to the first node regardless, even if needing a primary and this would waste time and yield unnecessary errors if the node was not a primary. (Bug #33551163)