Added a new
unknown_config_optionconfiguration 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)
Added connection pooling functionality to reuse server-side connections. This adds the new
max_idle_server_connections(defaults to 0 seconds; so is disabled) and
idle_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.
connect_timeoutdefault value to
5seconds. Previously it defaulted to
15for the [DEFAULT] section and
1for the [routing] section.
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_intervalconfiguration option that defaults to 1 (second). This determines how often each unreachable destination candidate is probed for availability.
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_SRCfiles to the
share/doc/mysqlrouterdirectory. (Bug #33822549)
References: See also: Bug #33510726.
While boostrapping, 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)