Version End of Life. 29 Mar 2023
Release 5.4.0 contains both significant improvements as well as some needed bugfixes. One of the main features of this release is MySQL 8 support.
The Tungsten Stack now supports the new MySQL 8.0 authentication
plugins. Both sha256_password
and
caching_sha2_password
(the new default) are
supported by the Replicator, Manager and Connector.
More info on these authentication plugins can be found here: https://dev.mysql.com/doc/refman/8.0/en/sha256-pluggable-authentication.html
The Drizzle driver has been updated to support these new authentication methods, and the MySQL Connector/J 8 is also supported.
The following changes have been made to Tungsten Cluster and may affect existing scripts and integration tools. Any scripts or environment which make use of these tools should check and update for the new configuration:
The Connector
passThroughMode
configuration option is now deprecated.The following
passThroughMode
entry will be removed fromtungsten-connector/conf/connector.properties
. There is currently no tpm option for this, and it is undocumented. The default will be kept topassThroughMode=true
.# The Tungsten Connector offers an extra fast data transfer mode known as # pass-through. When the following switch enabled (default), the Connector # will directly transfer data packets between the client and the server. # When disabled, every native MySQL command will be translated into a JDBC call. passThroughMode=trueIssues: CT-897
The following issues are known within this release but not considered critical, nor impact the operation of Tungsten Cluster. They will be addressed in a subsequent patch release.
Some applications might fail to connect to the Connector with MariaDB 10+
When using MariaDB 10+, the Connector will be confused by the 10 and will think it is a MySQL 8+ server. By default, the Connector will offer to connect with
caching_sha2_password
. If the application does not know how to switch authentication plugins, it will fail with a message similar to the following:The server requested authentication method unknown to the client [caching_sha2_password]As a work-around, you may specify the authentication plugin using the following tpm command option:
--property=defaultAuthPlugin=mysql_native_password
Issues: CT-1033
Improvements, new features and functionality
A new utility script has been added to the release, tungsten_post_process, which assists with the graceful maintenance of the static cross-site replicator configuration files on disk.
Issues: CT-761
For more information, see The tungsten_post_process Command.
A new utility script has been added to the release, tungsten_reset_manager, which assists with the graceful reset of the manager's dynamic state files on disk.
Issues: CT-850
For more information, see The tungsten_reset_manager Command.
The Tungsten Stack now supports the new MySQL 8.0 authentication
plugins. Both sha256_password
and
caching_sha2_password
(the new default) are
supported by the Replicator, Manager and Connector.
More info on these authentication plugins can be found here: https://dev.mysql.com/doc/refman/8.0/en/sha256-pluggable-authentication.html
The Drizzle driver has been updated to support these new authentication methods, and the MySQL Connector/J 8 is also supported.
In order to be fully transparent with the new defaults, when
connected to a MySQL 8+ data source, the Connector will
advertise caching_sha2_password
as the
default plugin.
With earlier versions of MySQL (pre-8.0), the previous default
mysql_native_password
is used by default and
advertised to the client applications.
In order to override the default behavior, a new Connector
property option for tpm,
property=defaultAuthPlugin={autodetect|caching_sha2_password|mysql_native_password},
and is set to autodetect
by default.
Note that if
property=defaultAuthPlugin
is set to caching_sha2_password
, the
sha256_password
authentication is
automatically also supported.
Please note that the Connector does not support public key retrieval as of yet.
Also note that, for backwards compatibility, the Connector forces the “CLIENT_DEPRECATE_EOF” to false, disallowing the usage of client session tracking requests (https://dev.mysql.com/doc/refman/5.7/en/session-state-tracking.html)
Issues: CT-771
When logging is set to debug
or
trace
, the Connector will print individual
queries. In the past, advanced logging limited the display size
of requests to 256 characters to prevent overwhelming the logs
in terms of both space and filesystem I/O.
Some customers need to display more than that, so it is now
possible to adjust the size of the statements displayed in
debug
or trace
logging
modes. This is handled by a new Connector property option for
tpm,
property=statement.display.size.in.kb=NNN,
which is defined as the maximum query length to display in
Kbytes, and now defaults to 1KB.
Warning: setting this option to a high value while DEBUG or TRACE is enabled will quickly fill logs and disk, in addition to using up disk I/O's!
For example, if the raw query size is 4KB, then a setting of 1KB would simply display the first 1024 bytes of the query and truncate/discard the rest from a logging perspective.
For more information about configuring debug and trace logging, please visit Generating Advanced Diagnostic Information.
Issues: CT-990
Long service names within cctrl could cause
output to fail when displaying information. The underlying issue
has been fixed. Because long service names can cause formatting
issues, a new option,
--cctrl-column-width
has been added which can be used to configure the minimum column
width used to display information.
Issues: CT-773, CT-926
MySQL ping commands are now reconnected/retried upon "server gone away" error (Proxy mode ONLY).
Issues: CT-863, CT-885
OLD BEHAVIOR: If the Primary data source was not accessible when
the Connector started (i.e. connection refused, etc.), the
connector would still fully initialize, leading to a running
Connector without an accessible data source. This has the side
effects of having default configuration values for both
wait_timeout
and
server_version
instead of properly
auto-detected values based on the MySQL server settings.
NEW BEHAVIOR: The Connector will now wait indefinitely for a Primary to become available before finishing startup.
Issues: CT-930
Introduced a new tpm flag allowing for tuning Connector thread stack size, which can be required in particular cases where large requests are sent as text to a connector configured for automated read/write splitting (smartscale and direct reads).
The setting is commented out by default, leaving the JVM use its own default, generally 1024.
Setting tpm option
connector-thread-stack-size={value in kb}
will
override this value.
Please note that since the new size will be allocated for each incoming connection, increasing the thread stack size will affect the total runtime memory used by the connector instance
Issues: CT-973
Fixed an edge case where the Primary node and the coordinator node are the same, then the node was rebooted. The failover would not complete and throws an error.
Issues: CT-479
Remove spurious warnings during composite switch or failover.
Issues: CT-487
Fixed a case when get_replicator_roles and cctrl ‘ls -l’ didn't work if a replicator was stopped.
When a replicator is not running insert the
Replicator.HOST
to the
ReplicationNotification
. It was wrongly
inserted into the Replicator.DATASERVERHOST
.
This fixes the get_replicator_roles
script.
Also substituted hard-coded strings for their constant values.
Issues: CT-760, CT-876