Tungsten Clustering 7.0.0
Behavior Changes (18)
The following changes 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:
Installation and Deployment (1)
- An RPM update now issues
--replace-releaseIssue: CT-1708
Command-line Tools (8)
- Changed output of
thl purgecommand when no lower and upper bounds are given from 'Deleting events where' to 'Deleting all events'.Issue: CT-1738 - The
tpm diagcommand now gathers the/etc/os-releasefile when located. Also now using theipcommand on systems whereifconfigand/orrouteis deprecated.Issue: CT-1496 - The
tpm diagcommand now uses thess(socket status) command in place ofnetstaton SUSE and other operating systems that have deprecatednetstat.Issue: CT-1483 tpmnow accepts chrony as a valid time synchronization softwareIssue: CT-1462- The
tungsten_find_orphanedscript now creates a log file every time it runs which is stored in the configured temporary directory (/tmp/by default,tpm query values temp_directory). This is to allow for easier troubleshooting and visibility during automatic execution.Issue: CT-1447 - The
tungsten_post_processscript functionality has been merged into thetpm post-processcommand. Thetungsten_post_processscript remains as a shell wrapper fortpm post-process.Issue: CT-1314 tungsten_set_positionhas been deprecated and no longer available in this release.dsctlshould be used instead.tungsten_provision_slavehas now been renamed totprovision
Issue: CT-1302- The
tpm diagcommand now usestar czfinstead of thezipcommand to compress the gathered files. Thezipcommand is no longer a prerequisite fortpm diag.Issue: CT-1253
Backup and Restore (4)
- Additional messaging has been added to the output displayed when running
tprovision.Issue: CT-1689 tungsten_provision_slavehas now been renamed totprovision.Issue: CT-1436From v8 of xtrabackup, the
--stream=taroption was removed, meaning that backups could fail if using the newer release of the Percona toolsIn this release, the backups will now create the backup and then manually compress it
WarningThis change will increase the required disk space for backups to allow the post-backup compression to complete.Issue: CT-1346--userand--passwordoptions have been added to the following scripts:cluster_backupcheck_tungsten_backupstungsten_monitor
If
manager-rest-api-authentication=true(the default if not explicitly disabled) then these two new options must be supplied otherwise the scripts will fail with the following error:"ERROR >> Manager REST API authentication needed. Please specify the user name and password."The internal ruby
api.rbmodule can now also handle themanager-rest-api-ssl=true(the default if not explicitly disabled) and will use https instead of http to access the REST APIIssue: CT-1311
Core Replicator (1)
Replicator will now check after extracting a mysql
STOP_EVENTwhether a new binlog file was created, actually handling this event as aROTATE EVENT.This decreases the time that would be needed after
STOP_EVENTto extract a new event.Issue: CT-1349
Connector (1)
- Optimized transaction parsing by removing SQL transaction start recognition: in-transaction state is found in server status flags.Issue: CT-1698
Manager (1)
- A new logfile,
console.logis now generated in the$CONTINUENT_ROOT/tungsten/tungsten-manager/logsdirectory which contains all output displayed viacctrl. This file will provide Continuent Support with more valuable information when assisting to diagnose support cases.Issue: CT-1499
Other Issues (1)
- Log files for each component now have the same date and time stamp format.Issue: CT-1669
API (1)
- API calls triggering configuration changes are protected by a flag,
i-am-sure=true, in order to avoid unwanted, potentially dramatic, configuration changes. This applies to:- configuration/module/servicesmap
- reset
- offline
- online
- onhold
- addDataService
- addDataSource
Issue: CT-1317
Known Issue (3)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Installation and Deployment (1)
After starting up Tungsten components, a
defunctprocess for each running component can be found in the process listing.Whilst this does not cause any issues, it could generate unnecessary alerts for customers monitoring.
The cause has been identified and affects version 7.0.0 and 7.0.1. This will be fixed in the next 7.0.2 release.
Issue: CT-1876
Command-line Tools (2)
The
tpm policycommand may return the incorrect policy value for composite clusters.As a result of this known issue, the
tungsten_reset_managercommand will also have issues on composite clusters because it callstpm policy.Issue: CT-1787- The
check_tungsten_onlinecommand returns a Replicator offline error on active witness hosts.Issue: CT-1783
Improvements, new features and functionality (33)
Installation and Deployment (3)
- Support has been added for Java 17 LTSIssue: CT-1706
- Support now included for MariaDB 10.3+Issues: CT-1433, CT-1276
Two new
tpmoptions have been included as part of the new API in this release.The options are used for setting the API admin user credentials and are as follows:
Issue: CT-1327
Command-line Tools (14)
- A new command (
error) has been added totrepctlto output a full stack trace of the last error, if any.shell> trepctl -service <serviceName> errorEvent application failed: seqno=10 fragno=0 message=Table hr.regions not found in database. Unable to generate a valid statement.com.continuent.tungsten.replicator.applier.ApplierException: Table hr.regions not found in database. Unable to generate a valid statement.at com.continuent.tungsten.replicator.applier.JdbcApplier.getTableMetadata(JdbcApplier.java:582)at com.continuent.tungsten.replicator.applier.JdbcApplier.fillColumnNames(JdbcApplier.java:494)at com.continuent.tungsten.replicator.applier.JdbcApplier.getColumnInformation(JdbcApplier.java:1236)at com.continuent.tungsten.replicator.applier.MySQLApplier.applyOneRowChangePrepared(MySQLApplier.java:418)at com.continuent.tungsten.replicator.applier.JdbcApplier.applyRowChangeData(JdbcApplier.java:1460)at com.continuent.tungsten.replicator.applier.JdbcApplier.apply(JdbcApplier.java:1576)at com.continuent.tungsten.replicator.applier.ApplierWrapper.apply(ApplierWrapper.java:100)at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.apply(SingleThreadStageTask.java:871)at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.runTask(SingleThreadStageTask.java:601)at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.run(SingleThreadStageTask.java:185)at java.base/java.lang.Thread.run(Thread.java:834)Issue: CT-1747 - The
cctrl.logfile is now accessible from the$CONTINUENT_ROOT/service_logsdirectoryIssue: CT-1727 - The
tapicommand now supports the--affinityargument which will display all Connector-specific affinity settings, along with--connectorstatusto show all.Issue: CT-1700 A new option to print the merged logs to
STDOUThas been added totungsten_merge_logs(--stdout|-O)The
tpmcommand suite now properly supports the--profileargument to specify a Tungsten json configuration file in place of the installedtungsten.cfg.Issue: CT-1680- The
tmonitorcommand now has better help text and more options to ease usage, including--filterto allow easy viewing of thetmonitor testoutput.Issue: CT-1585 - The
tungsten_purge_thlcommand is now a wrapper for thetpm purge-thlcommand.Issue: CT-1488 With the release of APIv2, a new cli tool has been introduced to allow easier access called
tapi.In addition, the vast majority of Tungsten cli tools have been updated to optionally use the APIv2 interface when desired.
The Nagios and Zabbix checks are also available via APIv2 using the
tapitool.Issue: CT-1454- The
tungsten_reset_managercommand is now able to restart the Manager process when the--startor-sargument is passed in.Issue: CT-1401 tungsten_send_diagnow supports a new command-line argument,--cleanup, which will cause the removal of the diagnostic archive file generated using the--diagargument.Issue: CT-1360A new sub-command has been added,
tpm generate-haproxy-for-api. This read-only action will read all available INI files and dump out correspondinghaproxy.cfgentries with properly incrementing ports; the composite parent will come first, followed by the composite children in alphabetical order.The
tungsten_generate_haproxy_for_apiscript functionality has been merged into thetpm generate-haproxy-for-apicommand. Thetungsten_generate_haproxy_for_apiscript remains as a shell wrapper fortpm generate-haproxy-for-api.Issue: CT-1342tpm diagnow collects routing table information viaroute -n, and has two new command-line arguments:--includeand--groups.--includespecifies a comma-separated list of subroutines to include. Any gather subroutine not listed will be skipped.--groupsspecifies a comma-separated list of subroutine groups to include. Any group not listed will be skipped.Issue: CT-1322A new
tpmoptionpurge-thland a new scripttungsten_purge_thlhave been added to allow easier and more intelligent THL purging across all nodes in a topology.This allow you to purge THL files based on the following rules:
- Gather the last applied seqno from all Replica nodes and take the lowest one
- Find the current THL file which contains that seqno, then locate the previous one
- Construct a thl purge command to remove thl thru the last seqno in the prev file
Issue: CT-1273Prometheus exporters
mysqld_exporterandnode_exporterare now included with the distribution packages.A new command line tool
tmonitoris now available for the management and testing of external Prometheus exporters (node and mysqld), and for the testing of internal exporters (Manager, Connector and Replicator).Issue: CT-960- A new tpm option
delete-serviceis now available to simplify the removal of clusters and/or replicator services.Issues: CT-210, CT-327, CT-1275
Backup and Restore (2)
- Fixes an issue where
tprovisioncould remove the SSL certs for MySQL on reprovisionIssue: CT-1323 - Added support for mariabackup using the following configurable tpm options:backup-method=mariabackuporbackup-method=mariabackup-incrementalIssue: CT-1100
Core Replicator (3)
In-Flight THL Compression is now available.
For full details on enabling this feature, refer to "THL Encryption and Compression"
Issue: CT-1420- The replicator will now be able to handle new SQL_MODES available in later releases of MySQL and MariaDB, these are as follows:
- MySQL:
TIME_TRUNCATE_FRACTIONAL - MariaDB:
TIME_ROUND_FRACTIONAL, SIMULTANEOUS_ASSIGNMENT
Issue: CT-1362 - MySQL:
- It is now possible to compress and/or encrypt THL on disk. For more information on using these features see"THL Encryption and Compression"Issue: CT-630
Connector (5)
connector-reset-when-affinity-backis now available with proxy mode.Issue: CT-1763connector drain [opt-timeout]has been introduced as an alias to existingconnector graceful-stopcommand and will prevent new connections, then shutdown the connector after an optional delay.The
opt-timeoutparameter (seconds) can be specified to limit the wait before stopping the connector. Not passing this parameter implies infinite wait.Issue: CT-1644A new Dynamic Active/Active feature has been added within the Proxy.
This new Proxy mode is for Composite Active/Active clusters only, and allows you to specifically configure writes to be directed to a single cluster by the use of the
tpmconnector-write-affinityflag.For full details on this feature, and configuring it, see "Deploying a Dynamic Active/Active (DAA) Cluster"
Issue: CT-1540Added support for TLSv1.3.
Note that TLS 1.3 was introduced in jdk 8u272. So
tpmwill only set it by default for java 8u272 and later versions. It is still possible to force the protocol to be used viatpmflagtls-enabled-protocols=TLSv1.xxxIssue: CT-1367Audit Logging is now available in the Connector: it allows for logging data transferred between client application and MySQL servers to a file, database or socket.
For more details and steps to enable, see "Connector Audit Logging"
Issue: CT-78
Security (2)
- Tungsten software now undergoes a rigorous security scan during QA. We also check included open-source/3rd-party software.Issue: CT-1579
- Tungsten can now install on default CentOS and RedHat 8 with tightened security settings thanks to support of TLSv1.3Issue: CT-1359
Monitoring (1)
- A number of new metrics have been added to the Prometheus exporters.Issues: CT-1615, CT-1266
Platform Specific Deployments (1)
- ARM 64 bit processor support added (linux aarch64)NoteNote that at time of release, there is currently no xtrabackup binary available for ARM.Issues: CT-1619, CT-1620
Other Issues (2)
IPv6 host addresses are now fully supported.
Can be enabled with the following configuration property:
prefer-ip-stack="6"By default, IPv4 is enabled, which equates to the value of "4" in the above property.
Issue: CT-1537- General improvements in MySQL 8.0 support.Issue: CT-1346
Bug Fixes (57)
Installation and Deployment (2)
- When services are deployed with
systemdand MySQL could not start due to an error,tpmwould not be able to later start MySQLIssue: CT-1734 - Default systemd configuration files for Tungsten components no longer specifies the tungsten group to execute the command. This will prevent file access issues when tungsten user belongs to several groups.Issue: CT-1550
Command-line Tools (29)
- The
tpm diagcommand now handles zero-lengthmysqld.logfiles gracefully.Issue: CT-1740 - tungsten_monitor.rb script no longer uses sudo to send emails if the configuration doesn't allow it.Issue: CT-1737
- The
tpm diagcommand now handles Multi-Site/Active-Active topologies better.Issue: CT-1718 - The
tpmcommand now communicates properly when there is no INI configuration file or staging-methoddeploy.cfgconfiguration defined.Issue: CT-1712 tpmnow parses the MYSQL SSL related setting correctly.Issue: CT-1662- When MySQL services were badly installed, some distribution could show a
“not-found”status within systemctl, confusingtpmIssue: CT-1677 - Fixes an issue where the
deployallcommand would create a root owned wrapper.log in the ./tools directory.Issue: CT-1664 - The
tpm askcommand no longer callsData::Dumperwhen it is not available.Issue: CT-1626 - The
tungsten_find_orphanedcommand no longer fails with an'Can't exec "/bin/sh": Argument list too long'error when there are too many THL files to parse.Issue: CT-1545 - The
tpm updatecommand will now properly remove composite services.Issue: CT-1519 - The
tpm updatecommand now handles updates/upgrades more gracefully when the previous version did not have the latesttpmframework.Issue: CT-1506 - Database monitoring logs are now reporting the correct error number and SQL state when database errors occur.Issue: CT-1497
- The
tpm diagcommand now properly collects the system information file on Debian systems.Issue: CT-1492 - The
tpm purge-thlcommand now handles command-line arguments more intelligently.Issue: CT-1489 - All
tpmsub-commands now handle command-line arguments more intelligently.Issue: CT-1487 - The
tmonitorcommand no longer fails on Debian 9 and Ubuntu.Issue: CT-1485 - The
tpm generate-haproxy-for-apicommand no longer fails on CentOS 8.Issue: CT-1484 tprovision(formerly tungsten_provision_slave) may fail to provision if the MySQL data directory was not accessible to the tungsten user.Issue: CT-1475- Fixes a monitoring bug with users using
caching_sha2_password.Issue: CT-1406 - The
tpmcommand no longer aborts with aUse of uninitialized value errorwhen a straytungsten.cfgfile exists under$CONTINUENT_ROOTIssue: CT-1394 - The
tpmcommand no longer prints an error when run with no other command-line arguments.Issue: CT-1373 tungsten_send_diagno longer prints an error aboutUse of uninitialized value $diagArgs in concatenation.Issue: CT-1354- The number of created and active connections could be incorrect when listed from a composite data serviceIssue: CT-1312
- Fixes a security issue within the
tpm diagcommand.Issue: CT-1295 - The
tpm diagcommand now behaves correctly on Connector-only nodes, where previously it would try to gather Manager and Replicator-specific items.Issue: CT-1284 The
tpm updatecommand will now exit with an error if any files not owned by the configured Tungsten OS user are found in the Tungsten installation directory.For example, if the OS user is tungsten and the installation directory is
/opt/continuent, containing the file/opt/continuent/thl/archived_thl.zipowned byrootwould cause something like the following error to be produced, andtpm updatewould exit:Foreign-owned files found!Located files in the Tungsten installed directory /opt/continuentthat are not owned by the Tungsten OS user (tungsten):/opt/continuent/thl/archived_thl.zipPlease change the ownership of these files to OS user "tungsten"using the chown command as root via sudo, then rerun the `tpm update` command.For example:shell> sudo chown -R tungsten:tungsten /opt/continuentIssue: CT-1260- The
tpm connectorcommand now handles special characters in the password string.Issue: CT-1258 - Fixes a bug in
tprovisionwhen using xtrabackup version 8, due to changes in xtrabackup binaries.Issue: CT-1248 - In certain cases,
tprovisionwould not be able to find the binary log position of the backup when taken from a primary. This has been fixed.Issue: CT-1085
Backup and Restore (2)
- Fixed an issue where an xtrabackup generated by the replicator would fail to be restored using
trepctl restorecommand.Issue: CT-1575 - When running the
cluster_backupin a Active/Active environment, when settingrequire_master_backupto false, the script would still attempt to backup the Primary as it would scan the wrong sub-service and incorrectly identify the Relay node as a candidate.Issue: CT-1280
Core Replicator (9)
- Added more debug information for detecting possible hanging connections while a THL client connects to the THL server. Also, added socket timeout for the connection initializationIssue: CT-1760
- Fixed an issue where
trepctlwas leaving JMX connections opened.Issue: CT-1752 - Fixed an issue when using Parallel apply that would show a
NullPointerExceptionin case an event could either not be found or be corrupted in THL. This will now display a correct messageMissing or corrupted event from storageIssue: CT-1722 - When connecting to a THL server, a client will now connect to the next available host in its THL URI, if the first does not have the sequence number that the client requires. The client will then fail only if none of the hosts from the URI can provide the needed sequence number.Issue: CT-1558
- For row based events, SQL modes were not displayed in the THL output. This is now fixed.Issue: CT-1440
- Fixes occurrences of
NullPointerExceptionthat would occur when bringing the replicator online before MySQL was started.Issue: CT-1348 - A change in the way MySQL logs
CREATE TABLE AS SELECTin the Binary Logs from v8.0.20 onwards, meant these transactions would previously fail.WarningWhilst these statements will now replicate, it must be noted that in the event of a failure during the data load, the initial CREATE statement won't be rolled back, and therefore care must be taken when using this type of DDL.NoteThis only affects customers using MySQL v8.0.20+ running withROWbased replication. An alternative workaround to ensure correct rollback on failure, would be to run the statement withSTATEMENTbased replication for the session. This will also provide better performance for larger tables.Issue: CT-1301 - When using parallel apply, the replicator would error with a Foreign Key constraint error if statements were issued against two or more objects that shared the same name, but with different case sensitivity, for example:mysql> create table testtable;mysql> drop table testtable;mysql> create table TestTable;Issue: CT-1259
- The replicator metadata cache will now correctly handle table names when
lower_case_table_names=1is set in the MySQL configuration.Issue: CT-651
Filters (2)
- The
BidiRemoteSlaveFiltercould fail to correctly flag fragmented events in unprivileged environments (Aurora, for example) In such an environment (multi-active, unprivileged database access), a new setting was introduced to force extraction process to read ahead to the last fragment to detect the service name (false by default). Enabled withrepl-svc-extractor-multi-frag-service-detection=trueIssue: CT-1351 - Includes previously missing template file to enable easy configuration of the
dbrenamefilter.Issue: CT-1350
Connector (6)
- Connector no longer requests cross-site services information from manager. In addition to removing extra network traffic, this cures a problem of connections counted twice in data source connection statisticsIssue: CT-1775
Connector now mirrors the MySQL default
connect_timeoutby retrieving it from the primary when starting up. This timeout will apply to all connections made from the connector to MySQL servers.This setting can be over-ridden by using the following
tpmproperty:property=connectTimeout=VALUEIf VALUE set to autodetect, this value will mirror the MySQL
connect_timeoutsystem variable. Set to 0 for infinite timeout.Issue: CT-1726- Connector now forbids non-ssl connections when mysql server has
require_secure_transport=ONIssue: CT-1666 - The Connector now properly retries specific MySQL commands when possible:
INIT_DB,CHANGE_USER,STATISTICSand prepared statement functions.Issue: CT-1480 - With
@directr/w splitting in active/active configurations, the connector was not correctly redirecting connections to an active site after re-joining the cluster following a failure.Issue: CT-1400 By default, the connector will no longer transparently reconnect underlying connections to database servers when the data service changes.
This will prevent the following case: in Composite Active/Active topologies, a given connection starts to write data to a site. The site fails, connection gets reconnected the other site and resumes writing. However the data written to the 1st site has not reached the 2nd site, thus data will not be consistent.
Default is to reject reconnections that follow a write operation (
RW_STRICTconnection or SmartScale after a write) and to allow reconnection after a read operation (RO_RELAXEDor SmartScale after a read) which translates toconnector-allow-cross-site-reconnects-for-writes=falseandconnector-allow-cross-site-reconnects-for-reads=trueIt is still possible to get the previous behavior (reconnecting transparently connections cross-site) by specifying both
connector-allow-cross-site-reconnects-for-writes=trueandconnector-allow-cross-site-reconnects-for-reads=true, at your own riskIssue: CT-1265
Manager (6)
- Fixes an issue where
datasource <datasourcename> welcomewould fail to welcome a manually failed composite datasource.Issue: CT-1771 - Fixes an issue when the manager would wait longer than the timeout for replicator purge on a failover.Issue: CT-1733
- Early initialisation of the REST API sometimes caused the manager to hang and fail to startup correctly on new installations.Issue: CT-1725
- Fixes a manager-internal connection check during recovery that was not properly using SSL when required.Issue: CT-1661
- Fixes an edge case bug that would allow a Composite Active/Active cluster to contain 2 Primary nodes.Issue: CT-1474
- Fixes a
NullPointerExceptionerror (NPE) in the manager logs.Issue: CT-1132
Security (1)
- log4j libraries updated to v2.17.1 specifically to mitigate risk of exposure to the 0-day vulnerability detected in log4j v2.14Issue: CT-1703