All Release notes
Consolidated release notes across all Continuent products. Use the table of contents below to jump to a specific section.
Contents
Version 8
Tungsten Clustering 8.0
Tungsten Clustering 8.0.4
Behavior Changes (2)
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)
Upgraded 3rd party libraries to remove critical and high severity CVEs. The full list is as follows:
- zookeeper 3.4.14 → 3.9.4 — CVE-2023-44981 (SASL Quorum auth bypass)
- log4j-api / log4j-core 2.23.1 → 2.25.3 (consolidated) — keeps log4j current; no known critical post-2.17 CVEs but stays ahead
- commons-text 1.9 → 1.12.0 / 1.13.0 — CVE-2022-42889 (Text4Shell)
- commons-compress 1.21 → 1.27.1 — CVE-2024-25710, CVE-2024-26308 (DoS via crafted archives)
- commons-configuration2 (replaced commons-configuration 1.9) → 2.11.0 — CVE-2024-29131, CVE-2024-29133
- commons-io 2.11.0 → 2.18.0 — CVE-2024-47554
- jackson-databind 2.13.0 → 2.17.2 / 2.18.2 — CVE-2022-42003, CVE-2022-42004
- guava 31.0.1-jre → 33.4.0-jre — CVE-2023-2976
- h2 1.4.199 → 2.3.232 — CVE-2021-23463, CVE-2022-23221
- postgresql JDBC 42.5.4 → 42.7.7 — CVE-2024-1597, CVE-2022-31197, CVE-2022-26520
- dom4j 1.6.1 → 2.1.4 — CVE-2018-1000632, CVE-2020-10683
- xstream 1.4.20 → 1.4.21 — CVE-2024-47072
- velocity-engine-core 2.3 → 2.4.1 — CVE-2020-13936 era cleanup
- kafka-clients 0.10.2.2 → 3.9.1 — CVE-2023-25194, CVE-2024-27309
- junit 4.12 → 4.13.2 — CVE-2020-15250 (temp-dir disclosure; test-time only)
- netty / xz xz 1.8 → 1.9 — CVE-2022-26259 era
- protobuf-java 2.6.1 → 4.33.5 — CVE-2024-7254, CVE-2022-3171
The following libraries are no longer required and have been removed entirely:
- bonecp 0.8.0 — abandoned upstream
- derby 10.12.1.1
- postgresql 9.0-801.jdbc3 and 9.3-1102.jdbc4 — many old PG-JDBC CVEs gone
- sqljdbc4 (replaced by mssql-jdbc 12.10.0) — CVE-2022-23270 era
Issues: CT-2752, CT-2677, CT-2681
Core Clustering (1)
- Replicator and Connector will now generate a heap dump upon out of memory issues, located respectively in
tungsten-replicator/log/replicator.hprofand intungsten-connector/log/connector.hprofIssue: CT-2669
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Connector (1)
When working with MariaDB 11.4 and greater with SSL setup,
tpmmight fail to properly connect to the MariaDB server because of the new default forssl-verify-server-cert(now true) REF: https://jira.mariadb.org/browse/MDEV-31857tpmwill not return any error at install time but some utility scripts might not work correctly.Adding
ssl-verify-server-cert=falseto your MySQL configuration will workaround the problem.Issue: CT-2663
Improvements, new features and functionality (9)
Command-line Tools (3)
- The
tpm diagcommand now captures all MySQL configuration files referenced by any!include/!includedirdirectives, with a sudo fallback so root-owned 0640 configs are captured too.Issue: CT-2745 - A new
thl statscommand has been added that allows you to gather statistics on the THL content, such as number of DML and DDL statements grouped by date, schema and table.Issues: CT-2720, CT-2760 - The
tpm diagcommand now searches enabled service log directories for*.hproffiles via find, records path and size ashprof_files.txt, then warns the user with file size (in MB) and thetungsten_send_diag -f {path} -c {case_number}upload command for each file found.Issue: CT-2665
Core Replicator (2)
Improved logging performance of "UPDATE or DELETE statement did not process any row." messages.
While these messages should be rare, performance could decrease when displaying a lot of rows. Also, the message format was changed when policy is set to WARN, previously:
Event seqno=3726720187/fragno=0 : UPDATE or DELETE statement did not process any row.DELETE FROM `someSchema`.`someTable` WHERE `id` = ?Arguments: - ROW# = 0 - KEY(index=1 name=id type=4 [INTEGER] length=8 unsigned=true blob=false desc=BIGINT UNSIGNED) (size = 3) = 123Now, only the first line will be displayed by default:
Event seqno=3726720187/fragno=0 : UPDATE or DELETE statement did not process any row.The detailed view of the statement / values that did not change the database will be logged only if log4j is set in DEBUG
Issue: CT-2733It is now possible to deploy a "cluster-extractor" topology with the standalone Replicator package via Docker.
For more detiails and a step-by-step guide, see "Deploying a Replicator through Docker"
Issue: CT-2591
Connector (1)
Connector now allows selection of the data service name (tungsten cluster name) at connection time, passing a new flag
"dataservice=<name>"together with the desired schema nameExample:
mysql -u app_user -psecret -hdb1 -Dtest@dataservice=shard1 -P 3306This feature only works in proxy mode (it is not accessible in bridge mode). See "Advanced Shard Routing" for full implementation details.
Issue: CT-2688
Manager (2)
- A shunned node can be set to archive mode.Issue: CT-2690
A new TPM property
property=policy.replica.promotion.max.synchronizing.durationhas been added, having the following affect.During failover/switch, candidates stuck in SYNCHRONIZING state longer than the configured threshold are rejected. If all candidates are rejected, the promotion fails with "Unable to switch the master because none of the slaves are ONLINE or otherwise available to switch to."
In the automatic failover path, the failed datasource is shunned with reason "FAILOVER-ABORTED".
This feature closes a gap where data-loss could have previoulsy occurred when the failover/switch selected a candidate with a replicator in an undetected error state
Issue: CT-2657
Documentation (1)
- All documentation URL references in help text output and template files have been updated.Issue: CT-2686
Bug Fixes (8)
Installation and Deployment (1)
tpm validate-updateno longer exits with error when upgrading from 6.x versions and modifications of tungsten.ini are required for SSL setup.Issue: CT-2658
Command-line Tools (3)
tpm purge-thl/tungsten_purge_thl: the "running on a Primary node" warning and the--filesflag now both behave correctly when there is only a single THL file (previously skipped via an early return).Issue: CT-2750- THL and query replicator command-line tools now send log4j output to stderr instead of stdout, so callers piping/parsing their output get clean data even when warnings or errors are logged.Issue: CT-2744
- The
tpm reportcommand no longer issues warnings about "Duplicate specification for option".Issue: CT-2672
Connector (1)
- Fixed an issue in multi-site configurations where a site recovery would cause a brief application disconnection on the local site.Issue: CT-2693
Manager (1)
- Fixed the manager infinite restart loop on edge cases while joining a cluster.Issue: CT-2723
Security (1)
- Fixed an issue with
tpmwrongly trying to validate keystores with database SSL off + THL SSL on.Issue: CT-2691
API (1)
- Manager API "status" payload misspelled "truststoreLocation" (was trustoreLocation)Issue: CT-2756
Tungsten Clustering 8.0.3
Behavior Changes (1)
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:
Command-line Tools (1)
- The
tpm ini checkcommand now checks for two new rules:- There MUST be a
witnesses=entry in EVERY stanza ifenable-active-witnesses=trueexists in[defaults] - There MUST be a
witnesses=entry in a stanza that containsenable-active-witnesses=true
Issue: CT-2625 - There MUST be a
Improvements, new features and functionality (2)
Core Replicator (1)
- The replicator now includes real-time performance monitoring to track and identify slow database operations during replication. The feature provides visibility into transaction, event, and statement execution times with configurable thresholds for alerting. For more information on configuring and using this feature, see
trepctl perflogIssue: CT-2629
Security (1)
- Updated log4j libraries to mitigate security threats found in earlier versions. Note that these issues do not affect Tungsten installations when configured with the default log4j properties files.Issue: CT-2674
Bug Fixes (6)
Installation and Deployment (1)
- Fixed an installation issue when using MariaDB 10.6 with SSL. Previously, this would have failed to install showing an error message like:Unable to connect to the MySQL server using tungsten@db1:13306 (WITH PASSWORD) (MySQLLoginCheck)Issue: CT-2624
Command-line Tools (1)
- Fixed a bug that would cause
tprovisionto fail if the password contained double-quotes.Issue: CT-2673
Backup and Restore (1)
- Fixes an issue when, in certain cases, a newly provisioned database would be left in the
offline_mode.Issue: CT-2660
Core Replicator (1)
- Recent java versions changed a default that now enable endpoint identification in secured RMI calls. As a quick turnaround, this release restores the default of disabling identification in various Tungsten scripts.Issue: CT-2666
Connector (1)
- Fixed a null pointer exception error showing up in rare cases at startup time.Issue: CT-2656
Manager (1)
- A number of bugs have been resolved that would cause the managers to suffer frequent OutOfMemory issues.Issue: CT-2667
Tungsten Clustering 8.0.2
Behavior Changes (2)
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)
tpm validatenow verifies localhost is defined in/etc/hostsIssue: CT-2564
Command-line Tools (1)
- The
tprovisioncommand now deletes only binary log files listed in the index if the binary log directory is not the same as the mysql data directory.Issue: CT-2631
Improvements, new features and functionality (4)
Installation and Deployment (1)
New feature:
tungsten.inibackup and history.When enabled with the
tpmflagtungsten-ini-backup(false by default), thetpm updatecommand will create a copy of the current INI file (default:/etc/tungsten/tungsten.ini) as$CONTINUENT_ROOT/history/ini/tungsten.ini.YYYYMMDDhhmmssWhen enabled with the
tpmflagtungsten-ini-backup, thetpm installcommand will create the first history file and the history subdir, if needed.A new sub-command,
tpm ini diffhas been added to compare the current INI file (default:/etc/tungsten/tungsten.ini) and a history file (default: latest history file found), and can also accept--stamp [YYMMDDhhmmss]to specify which file to diff by timestamp.A new sub-command,
tpm ini backuphas been added to manually invoke the same copy that thetpm updatecommand does.Added two new
tpmconfiguration flags:tungsten-ini-backup(default: false) : Enable thetungsten.iniautomatic backup feature duringtpm installandtpm update
tungsten-ini-history-dir(default:$CONTINUENT_ROOT/history/ini) : Define the location fortungsten.inibackup/history filesIssue: CT-2635
Command-line Tools (2)
- New feature
tpm copy --examplewill show the manual steps taken bytpm copy --initto copy the cluster certificate files to other nodes.Issue: CT-2636 A new subcommand
tpm ini defaultshas been added to list anytpmoption that actually has a default value defined in thetools/tpm_options_db.txtfile, along with the default value.Additionally, documentation has been updated to show defaults and options for all properties where applicable.
Issue: CT-2634
Platform Specific Deployments (1)
- This release is now certified with the following OS releases:
- RHEL 10
- Rocky Linux 10
- Oracle Linux 10
Issue: CT-2642
Bug Fixes (8)
Installation and Deployment (3)
The use of the - character in datasource service names is now properly handled.
In versions 7.x of tungsten, the - character, internally, was converted to an _. From v8 onwards the - character is maintained, however this led to an issue where
tpmwould fail during an upgrade as it was unable to correctly identify the service names.If you use the - in your servicenames and you are currently running v7.x, you will need to replace the - with an _ in your
/etc/tungsten/tungsten.inifile and upgrade directly to v8.0.2. If you wish to maintain the - please contact Continuent Support who will assist in the upgrade process.Issue: CT-2640- Fixed an issue where mixed case letters in hostnames combined with a Composite Active/Active topology, would cause the replicators to reconfigure against the wrong tracking schema.Issue: CT-2638
- Fixed an issue where - (hyphens) in hostnames combined with a Composite Active/Active topology, would cause the replicators to reconfigure against the wrong tracking schema.Issue: CT-2632
Command-line Tools (1)
- The
tprovisioncommand now correctly honors the mountpoint override flag when not using methodrsync.Issue: CT-2651
Connector (3)
- Fixed issue introduced by CT-2511 (dual certificate support) where the keystore was reloaded at every new connection.Issue: CT-2652
- Connector configuration files to execute Tungsten-specific
show slave statusrequest now get the right schema to select from.Issue: CT-2639 - Fixed an issue in the Drizzle driver that could cause memory errors when handling large string parameters.Issue: CT-2627
Manager (1)
- If a cluster was idle for more than 15 minutes and a failure occured, the failover would fail to complete.Issue: CT-2637
Tungsten Clustering 8.0.1
- Composite Active/Active topology, AND
- Your hostnames contain a dash symbol (-) and/or a mix of UPPER and lower case characters.
Behavior Changes (2)
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:
Command-line Tools (1)
The
tprovisioncommand no longer requires the external tooltungsten_get_mysql_datadir.Additionally, the tool has been significantly re-factored for greater stability, performance and functionality.
Issue: CT-2597
Security (1)
- Now providing adequate error message when TLS certificates differ between connector and managers, or when manager refuses the SSL handshake.Issue: CT-2579
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Core Clustering (1)
- If your hostname contains a dash symbol (-) and/or a mix of UPPER and lower case characters, AND you are running a Composite Active/Active topology, then upgrading to or installing this release may cause a mis-configuration of the replication services.Issue: CT-2632
Improvements, new features and functionality (5)
Command-line Tools (3)
- New
tpmflag--add-sslnow allows you to force-generate certificates when doing an upgrade. This allows configurations with security disabled to be upgraded to 8.0.1 AND switched to using SSL/TLS communications at the same time. Example:shell> tools/tpm update --replace-release --add-sslIssue: CT-2619 - The
tpm ini checkcommand now validates composite topologies.Issue: CT-2606 - New Feature:
tpm ini upgrade --ini [fullpath]will display all changes to the specified INI file that would be performed by thetpm updatecommands during a version upgrade. Adding the--writeargument would apply the changes to the specified file as well.Issue: CT-2601
Security (1)
- Tungsten can now hold two MySQL database SSL Certificates, allowing rotation of certificates without the need for downtime. A new command line tool,
rotate_certs, is provided to aid in this process.Issue: CT-2511
Platform Specific Deployments (1)
- LTS MariaDB 11.4 is now certified.Issue: CT-2337
Bug Fixes (21)
Installation and Deployment (1)
Command-line Tools (8)
- The
tpm cert gencommand now works during version upgrades when a security configuration file may not have existed before (passwords.store)Issue: CT-2618 - Fixed a regression where network partition would lead to connector partial site outage.Issue: CT-2615
- The
tpm ini checkcommand now handles a variety of edge cases.Issue: CT-2613 - The
tungsten_send_diagnow uses AWS Signature Version 4 to upload files.Issue: CT-2589 - The
tapicommand no longer issues an error when the quantity of command-line arguments is larger than expected.Issue: CT-2580 - The
tpm purge-thlcommand now works properly when run against environments where there are multiple THL files, but the lowest seqno returned exists in the very first THL file.Issue: CT-2561 - The
tapicommand now handles various payload outputs properly.Issue: CT-2553 - Corrected debug outputs in the Perl tpm framework.Issue: CT-2497
Backup and Restore (2)
- Fixed an edge case issue with xtrabackup running against the primary node and MySQL 8+.InfoGenerally we do not recommend taking backups from primary nodes, and instead backups should be taken from replicas.Issue: CT-2602
- The
trepctl backupcommand would fail using xtrabackup.Issue: CT-2600
Core Replicator (2)
With recent SELinux changes, MySQL might be unable to read from
/tmp.This directory is used when applying a
LOAD DATA INFILEcommand that was logged using Statement Based Replication (warning : this is considered as unsafe by MySQL).In order to avoid any issues, a new setting has been added to indicate a directory to use :
svc-applier-ldi-temp-dir=/tmp/mysqltmpIn this case, mysqltmp is a new subdirectory that should be set with the following permissions and SELinux context
mkdir -p /tmp/mysqltmpsudo chown -R mysql: /tmp/mysqltmpsudo chmod -R g+r /tmp/mysqltmpsudo semanage fcontext -a -t mysqld_db_t '/tmp/mysqltmp(/.*)?'sudo restorecon -Rv /tmp/mysqltmpAnother improvement was also added to force the use of LOCAL when applying a
LOAD DATA INFILEcommand that was logged using SBR. This is useful when applying to a remote MySQL host. To enable, set the value of thesvc-applier-ldi-use-local=true(default : false)Issue: CT-2603- Fixed an issue where timestamp columns would not match between source and target when using the
privileged-slave=falseproperty to replicate from a source database using MIXED binlog mode.Issue: CT-2594
Connector (3)
- Fixed an issue with witness nodes not being accepted by older connectors when running with newer managers, triggering manager/connector reconnections in loop.Issue: CT-2620
- Fixes
NullPointerExceptionupon I/O errors in router gateway.Issue: CT-2610 - No longer printing broken pipe errors (typically generated by haproxy or hardware loadbalancer checks) when
printConnectionWarnings=false(the default)Issue: CT-2576
Manager (2)
- Fixed an SSL configuration misconfiguration between manager and connector communication.Issue: CT-2608
- Fixed a
NullPointerExceptionerror that may have prevented failovers occurring in some scenarios.Issue: CT-2607
Security (1)
tungsten_mysql_ssl_setupnow properly generates v3 self signed CA certificates for openssl 3 found in RHEL9 Linux flavors.Issue: CT-2581
Monitoring (1)
- Additional prometheus metrics have been added to the Replicator:
tungsten_replicator_service_online_duration_secondsgauge shows duration in seconds since the replicator was put online.tungsten_replicator_task_totalcounter shows statistics by service, stage and task as shown in the following example:In this case, this is the extract time spent by the task #1 of the q-to-dbms stage of the alpha service. This is similar to the newtungsten_replicator_task_total{service="alpha",stage="q-to-dbms",task_id="1",stat="extract_time",} 250.015trepctl perflogoutput.
Issue: CT-2514
API (1)
- Fixed an issue with log4j2 library embedded in tungsten-api jar which could trigger a warning in cctrl and other log files.Issue: CT-2604
Tungsten Clustering 8.0.0
Release 8.0.0 is the first major v8 release and contains a wide range of bug fixes, and improvements.
Additionally, this release marks the first release that will be required for Tungsten Operator and the subsequent deployment of Tungsten Clustering within a Kubernetes environment.
Build 8.0.0-305 was initially released on 28 Apr 2025, and re-released as 8.0.0-308 on 12 Sept 2025
- Composite Active/Active topology, AND
- Your hostnames contain a dash symbol (-) and/or a mix of UPPER and lower case characters.
Deprecation Notices (1)
The following features/tools have been deprecated from this release and will be removed in future releases. Any self written scripts that utilise these features should be updated.
Command-line Tools (1)
tungsten_health_checkandtungsten_provision_thlhave been deprecated and will be removed in a future release.Issue: CT-2509
Behavior Changes (17)
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 (4)
- Upgraded the JGroup communication library to the v4.2.30Issue: CT-2435
- The
rest-api-admin-userandrest-api-admin-passwordTPM properties are now required during a default installation or when explicitly setting the variousmanager-rest-api=true,connector-rest-api=true,replicator-rest-api=trueorrest-apis=trueproperties.Issue: CT-2409 - Added a TPM check for MySQL 8+ to error out if the application user has
CONNECTION_ADMINprivilege.Issue: CT-2325 - All Tungsten Components now use log4j version 2.Issues: CT-1410, CT-1412
Command-line Tools (9)
- The
tpm cert infocommand now provides better error messages when a specifiedtypeSpecfile does not exist.Issue: CT-2530 The
tpm askcommand now returns the appropriate values for keys:stagingdir,stagingpath,staginghostandstaginguser.Additionally, the
tpm ask stagingcommand will return a JSON structure with all values. All values are the same as the output of thetpm query-stagingcommand, just presented differently for easier machine usage.Issue: CT-2510- A new cli argument has been added (
--apiver 8) to allow thetapicommand to use APIv8. By default,tapiwill continue to use APIv2 against v8 installations, using the--apiver 8option is experimental and should be used with care. Full APIv8 functionality will be included intapiin a future release.Issue: CT-2456 - The
tpmcommand now allows hyphens in dataservice names.Issue: CT-2453 - Removed
sigtrapmodule dependency fromtungsten_find_orphaned.Issue: CT-2451 - The
tungsten_send_diagcommand has been updated with new security keys and the ability to accept security keys on the CLI.Issue: CT-2438 - New shortcut options are availabe with
tprovision--primaryand--create-primaryas an additional alias for-c-C,--mysqlcloneas aliases for-m mysqlclone-D,--mysqldumpas aliases for-m mysqldump-R,--rsyncas aliases for-m rsync-X,--xtrabackupas aliases for-m xtrabackup
Issue: CT-2311 - When provisioning a replica using
mysqldump, the database will be set to offline mode until loading is complete to prevent accidental writes during the load.Issue: CT-2305 - Additional validation has been added to
tprovisionwhen parallel apply is in use.Issue: CT-2275
Connector (1)
- Connector now always reads its dynamic (auto-detect) configuration from primary node by default. Reading from a replica is still possible using the
property=readAutodetectConfigFromPrimary=falsetpmflag.Issue: CT-2527
Security (1)
- As of version 7.2.0 onwards, when providing custom keystores, the alias of the mysql certificate must be provided as
java-mysql-alias=xxxand must have the same name in bothtungsten_keystoreandtungsten_connector_keystore.Issue: CT-2598
Core Clustering (2)
- Added protection against misconfigured applications or loadbalancers connecting repeatably to the Manager<>Connector port (11999). Such uncontrolled traffic would affect manager performance over timeIssue: CT-2411
Manager and Replicator now get higher CPU priority (-9 nice value) through
systemdconfiguration file. When not usingsystemd, we advised to use thesudo renice <pid>command to avoid monitoring and processing pauses during high CPU usage periods.Note that this command has to be run as a privileged user, which is why the command cannot be part of the regular manager and replicator scripts
Issue: CT-2330
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.
Connector (1)
Connector bridge fails to route connections to data source ports other than 13306.
This is fixed in v8.0.1 and it is advised to NOT use v8.0.0 if your MySQL port is configured to anything other than 13306.
Issue: CT-2609
Core Clustering (1)
- If your hostname contains a dash symbol (-) and/or a mix of UPPER and lower case characters, AND you are running a Composite Active/Active topology, then upgrading to or installing this release may cause a misconfiguration of the replication services.Issue: CT-2632
Security (1)
tungsten_mysql_ssl_setupincorrectly generates self-signed CA certificates on RHEL9 Linux flavors.This will be fixed in v7.2.0 and v8.0.1
Issue: CT-2581
Improvements, new features and functionality (25)
Installation and Deployment (1)
- Introduced a new set of
tpmgroup aliases to control the rest api configuration when the same value needs applying to multiple properties, as follows:rest-apiswill setconnector-rest-api,manager-rest-apiandreplicator-rest-apirest-api-addresswill setconnector-rest-api-address,manager-rest-api-addressandreplicator-rest-api-addressrest-api-authenticationwill setconnector-rest-api-authentication,manager-rest-api-authenticationandreplicator-rest-api-authenticationrest-api-sslwill setconnector-rest-api-ssl,manager-rest-api-sslandreplicator-rest-api-ssl
/etc/tungsten/tungsten.inimay look like the following:BEFOREAFTER[defaults]...connector-rest-api=truemanager-rest-api=truereplicator-rest-api=trueconnector-rest-api-adddress=0.0.0.0manager-rest-api-adddress=0.0.0.0replicator-rest-api-adddress=0.0.0.0connector-rest-api-authentication=truemanager-rest-api-authentication=truereplicator-rest-api-authentication=trueconnector-rest-api-ssl=truemanager-rest-api-ssl=truereplicator-rest-api-ssl=true...[defaults]...rest-apis=truerest-api-adddress=0.0.0.0rest-api-authentication=truerest-api-ssl=true...Issue: CT-2459
Command-line Tools (12)
- The
tpm askcommand will now convert values0andfalsetoNoand values1andtruetoYesas human output when given--humanor-ncli args.Issue: CT-2559 - The
tpm inicommand now handles all new tpm options.Issue: CT-2543 - Issue: CT-2500
- Issue: CT-2499
- Issue: CT-2492
- A new
-zoption has been added totprovisionwhich will enable compression when using thersyncmethod.Issue: CT-2489 - The
tpm certcommand will now handle public key files. The commandtpm cert gen publicwill create$CONTINUENT_HOME/generated/tungsten_public.jksfrom the$CONTINUENT_HOME/share/tungsten_keystore.jksfile and thetpm cert list publiccommand will show the contents, etc.Issue: CT-2434 The
tpm askcommand now supports the-s|--serviceoption fordsrole,dsstate,trroleandtrstatekeys.The option alias for
--shortis now-S(capitalized), was previously lower-case.Example:
tpm ask dsrole --service alphaIssue: CT-2400- The new
tpm inicommand allows for easy creation, checking and administration of the/etc/tungsten/tungsten.iniconfiguration file.Issue: CT-2366 - When using the
-m rsyncoption withtprovision, thersynccommand now includes theoStrictHostKeyChecking=nooptions.Issue: CT-2348 - The
tapicommand is now able to provision a Connector database target (both MySQL Server and PostgreSQL) using a JSON payload or command-line arguments. For more information see Command-Line ToolsIssue: CT-2306 The
tpm post-processcommand has a new argument--statemapwhich processesproperty=statemap.*entries in the INI defaults section (only) to update the matching entries in thecluster-home/conf/statemap.properties.defaultsfile.Once done,
tpm post-process --statemapwill exit without invoking the old functionality.Issue: CT-1906
Core Replicator (4)
- The
trepctl perfoutput has been improved when parallel apply is enabled to show granular statistics per channel.Issue: CT-2517 A new
thl applycommand is available which provides the ability to pull/push a range of transactions from source THL to a destination. The command can apply the THL either directly into the destination database (MySQL or PostgreSQL) or it can simply write the THL to the filesystem.The destination does not need to be running Tungsten Replicator services for this to be used and provides a way of applying data outside of normal Tungsten operations and can be used to extend backup/recovery operations in some scenarios.
See "The THL apply Command" for more information.
Issue: CT-2347- A new
applyingfield has been added to the output oftrepctl reset.In the above example, the applier is processing seqno 3 / fragno 0 and already applied 92.86% (this represents a percentage of rows and statements that were already applied). When parallel apply in enabled, there will be one applying field per channel configured, for example the following shows 2 channels:...applying : 3 / 0 (92.86%)......applying.0 :applying.1 : 25 / 0 (92.86%)...Issue: CT-2315 - Replicator now recognizes the new MySQL 8.4
show binary log statussyntax (as well asshow master status) and will execute the configured replacement request appropriately.Issue: CT-2291
Connector (4)
- Connector now recognizes the new MySQL 8.4
show replica statussyntax (As well asshow slave status) and will run replacement configured request appropriately.Issue: CT-2401 - Fixed a bug where connections properly disconnecting with quit command would get an empty database change request.Issue: CT-2395
- Advanced Listeners can now be accessed from the Connector REST API v8.Issue: CT-2329
- Listeners now support the
protocolsetting to switch between mysql and postgres dialects.Issue: CT-2324
Manager (1)
- Upgrade of Drools libraries to v7.74.1.Final.Issue: CT-2206
Documentation (1)
- API documentation has been updated to reflect changes to many of the endpoints, including updated examples of expected inputs and outputs.Issue: CT-2339
API (2)
- The
api/v8/manager/control/service/<service>/datasource/<datasource>/shuncall now checks if the datasource exists before shun. It returns an error if does not exist.Issue: CT-2447 - Added
/api/v8/manager/quorumREST API endpointIssue: CT-2281
Bug Fixes (53)
Installation and Deployment (3)
tpmflagsdatasource-log-directoryandrepl-direct-datasource-log-directorywill now use the value of each other as a default if only one is specifiedIssue: CT-2425- The
tpm updatecommand no longer displays the message"common::diffPasswordsDotStore: No custom source passwords.store file defined - SKIPPING"Issue: CT-2406 - Hyphens are now allowed in service names by
tpm.Issue: CT-2367
Command-line Tools (29)
- The
tpm cert infocommand now properly handles all available typeSpecs.Issue: CT-2532 - The
tpm policycommand now selects the correct service to act upon in Composite clusters.Issue: CT-2525 - The
tpm cert aliases --runningcommand now properly handles thetls_passwordstoreandjmx_passwordstoretypeSpecs.Issue: CT-2512 - Fixes an issue where
dsctl setwith the-resetoption could show warnings when run several times in a row, as shown:WARNING: Could not execute query DROP TABLE `tungsten_alpha`.`heartbeat` : Unknown table 'tungsten_alpha.heartbeat'Issue: CT-2502 routerinvalid completion arguments have been removed.Issue: CT-2501- The
tungsten_send_diagcommand now handles curl andaws s3errors separately and displays the proper message back.Issue: CT-2488 - The
cctrlsystem summarycommand now works correctly to display useful information regarding the host on which the command is executed.Issue: CT-2486 - During a
tpm uninstall, when skipping data services not managed locally,tpmwill now print a notice rather than a warning, since this is the expected behavior.Issue: CT-2479 - The
tpm ask versionandtpm ask versionscommands now display values.Issue: CT-2475 tprovisionwill now correctly handle, and support, SELinux if enabled.Issue: CT-2473- The
cctrl lscommand now correctly displays relative applied latency based on theuse-relative-latencysettings in the INI.Issue: CT-2472 - Fixed an issue where the database could potentially get locked in certain cases when using the
rsyncmethod withtprovisionIssue: CT-2470 executable-prefixis now applied to thedeployallandundeployallscript names. For example, whenexecutable-prefix=mm,deployallwould be namedmm_deployall.Issue: CT-2467- The
tpm keepcommand is now properly called bytpm uninstall, and a regression in a call to the mysql cli has been fixed as well.Issue: CT-2462 - The
tpm updatecommand now properly identifies and removes services with mixed-case service names.Issue: CT-2426 tpmnow properly detects MariaDB default settings.Issue: CT-2424- The
tapicommand now accepts non-standard ports on the command line, and also properly accepts a user/password pair on the CLI.Issue: CT-2420 - The
tungsten_get_statuscommand now passes the correct number of arguments to theprintffunction in various places, preventing"Redundant argument"warnings.Issue: CT-2407 - The
tpm delete-serviceandtpm updatecommands now correctly removeComposite Active/Active cross-site subservices from cctrlIssue: CT-2404 - The
tpm diagcommand now gathers:tungsten-replicator/log/replicator-api.logtungsten-connector/log/connector-api.logtungsten-manager/log/manager-api.log
Issue: CT-2397 - The
tapicommand now creates proper URL's for these standard endpoints when-C,-Mor-Rare specified along with one of the following strings:ping,tungstenVersion,createAdminUser,deleteAdminUser,listAdminUsers,rmiSecurityoruser.Issue: CT-2391 - The
tpm check portsandtpm check ports -ccommands are now able to handle replicator-only nodes. By default, it will automatically try to discover the node type, and you may manually specify the node type with-r|--replicatoror-c|--cluster.Issue: CT-2356 - The
tpm diagcommand no longer displays a NOTICE for missing optional files.Issue: CT-2355 - The
tpm reportcommand now uses the correct API endpoint for Channel 3, Communications from the Connector to the Manager.Issue: CT-2354 tprovisionwas incorrectly setting to the MySQL datadir totungstengroup ownership.Issue: CT-2322- The
tpm diagcommand now properly gathers the uptime command.Issue: CT-2319 tprovisionnow supports provisioning from a cluster to stand-alone replicator hostIssues: CT-2199, CT-2483- In certain instances, when provisioning from a primary using
tprovision, the remote replication service would not get reset.Issue: CT-2138 cctrlnow validates input correctly for theset policycommandIssue: CT-678
Core Replicator (3)
- Fixed an issue where a cluster could display a wrong latency after MySQL and the replicator were stopped and restarted. This would only show under no load conditions.Issue: CT-2485
- The replicator will now properly rollback an XA transaction in case of failure.Issue: CT-2410
- Fixed an issue that would wrongly flag a SQL statement starting with a
#comment as bidi_unsafeIssue: CT-2405
Connector (7)
- Connector bridge mode would fail to route connections to data source ports other than 13306.Issue: CT-2609
- The
trepctl backupcommand would fail using xtrabackup.Issue: CT-2600 - Closed a window where the Connector might let writes go to the old primary during a switch with networking issues.Issue: CT-2556
- The
tpm delete-servicecommand now sets MAINTENANCE mode before operations, then sets back to AUTOMATIC if it wasAUTOMATIC to start with.Issue: CT-2555 - In active/active setups, no longer using global data service for
show slave latencyconnector intercept.Issue: CT-2554 - Fixed an issue with PHP and
caching_sha2_passwordwhen using proxy mode: the protocol part "fast path" was not handled properly by the connector, php would hang after reading an unexpected packet. Workaround for this issue (for earlier tungsten versions) is to setproperty=defaultAuthPlugin=mysql_native_passwordwithin/etc/tungsten/tungsten.ini.Issue: CT-2471 - Fixed an exception when a
user.map@defaultentry would not contain the expected username, password and dataservice parameters.Issue: CT-2368
Manager (7)
- The
cctrlcommands to set routers into the online and offline state were not functioning. This only affected manual execution of these commands fromcctrland did not affect other operations like switch, failover etc. This issue has been resolved.Issue: CT-2526 - Fixed a race condition that aborted if an error happened when setting MySQL to read-only or read-write. Now the command retries until the MySQL is left in the desired state.Issue: CT-2452
- Fixed a manager state machine unhandled case when receiving a view update while joining the cluster.Issue: CT-2449
A datasource can now be removed from the manager configuration (including disk) when in MAINTENANCE mode.
InfoIf the Replicator and Database are still online on the removed host, and the cluster returned to AUTOMATIC mode, the datasource will be recreated. Ensure at least one of the components are also stopped to prevent this.Issue: CT-2372- There were cases where the state of a connector (router) was shown as
UNKNOWN. The issue was resolved by either reporting the reason that the state is unknown i.e. a read timed out etc. or the connector will simply not be shown since it has been disconnected from all managers i.e. either is not running or not reachable due to a network issue.Issue: CT-2338 Under the conditions of a network outage between a primary site and a relay site, where a failover or switch operation was performed on the primary site, the relay replicator on the relay site was not being correctly updated at the time of the failover/switch.
This issue has been resolved by detecting whether or not the relay replicator is correctly configured to replicate from the primary datasource on the primary site and, if not, reconfigures the replicator accordingly.
Issue: CT-2225- Improved performance in manager client connection processing. The fix optimizes queue traversal time when searching for or deleting sessions, enhancing the handling of client (specifically manager or cctrl) connections.Issue: CT-2201
API (4)
- Fixed an issue where a component (replicator/connector) stopped through through the API would wrongly indicate "unable to stop".Issue: CT-2515
- The manager REST API
/api/v8/manager/cluster/statusnow correctly displays the connector active/total number of connections.Issue: CT-2423 - Fixed a bug when the
/manager/cluster/statusREST API call returnedunknownfor the replicator state.Issue: CT-2353 - Fixed REST API ping method in a composite cluster.Issue: CT-2270
Tungsten Replicator 8.0
Tungsten Replicator 8.0.4
Behavior Changes (2)
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)
Upgraded 3rd party libraries to remove critical and high severity CVEs. The full list is as follows:
- zookeeper 3.4.14 → 3.9.4 — CVE-2023-44981 (SASL Quorum auth bypass)
- log4j-api / log4j-core 2.23.1 → 2.25.3 (consolidated) — keeps log4j current; no known critical post-2.17 CVEs but stays ahead
- commons-text 1.9 → 1.12.0 / 1.13.0 — CVE-2022-42889 (Text4Shell)
- commons-compress 1.21 → 1.27.1 — CVE-2024-25710, CVE-2024-26308 (DoS via crafted archives)
- commons-configuration2 (replaced commons-configuration 1.9) → 2.11.0 — CVE-2024-29131, CVE-2024-29133
- commons-io 2.11.0 → 2.18.0 — CVE-2024-47554
- jackson-databind 2.13.0 → 2.17.2 / 2.18.2 — CVE-2022-42003, CVE-2022-42004
- guava 31.0.1-jre → 33.4.0-jre — CVE-2023-2976
- h2 1.4.199 → 2.3.232 — CVE-2021-23463, CVE-2022-23221
- postgresql JDBC 42.5.4 → 42.7.7 — CVE-2024-1597, CVE-2022-31197, CVE-2022-26520
- dom4j 1.6.1 → 2.1.4 — CVE-2018-1000632, CVE-2020-10683
- xstream 1.4.20 → 1.4.21 — CVE-2024-47072
- velocity-engine-core 2.3 → 2.4.1 — CVE-2020-13936 era cleanup
- kafka-clients 0.10.2.2 → 3.9.1 — CVE-2023-25194, CVE-2024-27309
- junit 4.12 → 4.13.2 — CVE-2020-15250 (temp-dir disclosure; test-time only)
- netty / xz xz 1.8 → 1.9 — CVE-2022-26259 era
- protobuf-java 2.6.1 → 4.33.5 — CVE-2024-7254, CVE-2022-3171
The following libraries are no longer required and have been removed entirely:
- bonecp 0.8.0 — abandoned upstream
- derby 10.12.1.1
- postgresql 9.0-801.jdbc3 and 9.3-1102.jdbc4 — many old PG-JDBC CVEs gone
- sqljdbc4 (replaced by mssql-jdbc 12.10.0) — CVE-2022-23270 era
Issues: CT-2752, CT-2677, CT-2681
Core Clustering (1)
- Replicator will now generate a heap dump upon out of memory issues, located in
tungsten-replicator/log/replicator.hprof.Issue: CT-2669
Improvements, new features and functionality (5)
Command-line Tools (2)
- The
tpm diagcommand now captures all MySQL configuration files referenced by any!include/!includedirdirectives, with a sudo fallback so root-owned 0640 configs are captured too.Issue: CT-2745 - A new
thl statscommand has been added that allows you to gather statistics on the THL content, such as number of DML and DDL statements grouped by date, schema and table.Issues: CT-2720, CT-2760
Core Replicator (2)
Improved logging performance of "UPDATE or DELETE statement did not process any row." messages.
While these messages should be rare, performance could decrease when displaying a lot of rows. Also, the message format was changed when policy is set to WARN, previously:
Event seqno=3726720187/fragno=0 : UPDATE or DELETE statement did not process any row.DELETE FROM `someSchema`.`someTable` WHERE `id` = ?Arguments: - ROW# = 0 - KEY(index=1 name=id type=4 [INTEGER] length=8 unsigned=true blob=false desc=BIGINT UNSIGNED) (size = 3) = 123Now, only the first line will be displayed by default:
Event seqno=3726720187/fragno=0 : UPDATE or DELETE statement did not process any row.The detailed view of the statement / values that did not change the database will be logged only if log4j is set in DEBUG
Issue: CT-2733It is now possible to deploy a "cluster-extractor" topology with the standalone Replicator package via Docker.
For more detiails and a step-by-step guide, see "Deploying a Replicator through Docker"
Issue: CT-2591
Documentation (1)
- All documentation URL references in help text output and template files have been updated.Issue: CT-2686
Bug Fixes (5)
Installation and Deployment (1)
tpm validate-updateno longer exits with error when upgrading from 6.x versions and modifications of tungsten.ini are required for SSL setup.Issue: CT-2658
Command-line Tools (3)
tpm purge-thl/tungsten_purge_thl: the "running on a Primary node" warning and the--filesflag now both behave correctly when there is only a single THL file (previously skipped via an early return).Issue: CT-2750- THL and query replicator command-line tools now send log4j output to stderr instead of stdout, so callers piping/parsing their output get clean data even when warnings or errors are logged.Issue: CT-2744
- The
tpm reportcommand no longer issues warnings about "Duplicate specification for option".Issue: CT-2672
Security (1)
- Fixed an issue with
tpmwrongly trying to validate keystores with database SSL off + THL SSL on.Issue: CT-2691
Tungsten Replicator 8.0.3
Improvements, new features and functionality (2)
Core Replicator (1)
- The replicator now includes real-time performance monitoring to track and identify slow database operations during replication. The feature provides visibility into transaction, event, and statement execution times with configurable thresholds for alerting. For more information on configuring and using this feature, see
trepctl perflogIssue: CT-2629
Security (1)
- Updated log4j libraries to mitigate security threats found in earlier versions. Note that these issues do not affect Tungsten installations when configured with the default log4j properties files.Issue: CT-2674
Bug Fixes (4)
Installation and Deployment (1)
- Fixed an installation issue when using MariaDB 10.6 with SSL. Previously, this would have failed to install showing an error message like:Unable to connect to the MySQL server using tungsten@db1:13306 (WITH PASSWORD) (MySQLLoginCheck)Issue: CT-2624
Command-line Tools (1)
- Fixed a bug that would cause
tprovisionto fail if the password contained double-quotes.Issue: CT-2673
Backup and Restore (1)
- Fixes an issue when, in certain cases, a newly provisioned database would be left in the
offline_mode.Issue: CT-2660
Core Replicator (1)
- Recent java versions changed a default that now enable endpoint identification in secured RMI calls. As a quick turnaround, this release restores the default of disabling identification in various Tungsten scripts.Issue: CT-2666
Tungsten Replicator 8.0.2
Behavior Changes (2)
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)
tpm validatenow verifies localhost is defined in/etc/hostsIssue: CT-2564
Command-line Tools (1)
- The
tprovisioncommand now deletes only binary log files listed in the index if the binary log directory is not the same as the mysql data directory.Issue: CT-2631
Improvements, new features and functionality (4)
Installation and Deployment (1)
New feature:
tungsten.inibackup and history.When enabled with the
tpmflagtungsten-ini-backup(false by default), thetpm updatecommand will create a copy of the current INI file (default:/etc/tungsten/tungsten.ini) as$CONTINUENT_ROOT/history/ini/tungsten.ini.YYYYMMDDhhmmssWhen enabled with the
tpmflagtungsten-ini-backup, thetpm installcommand will create the first history file and the history subdir, if needed.A new sub-command,
tpm ini diffhas been added to compare the current INI file (default:/etc/tungsten/tungsten.ini) and a history file (default: latest history file found), and can also accept--stamp [YYMMDDhhmmss]to specify which file to diff by timestamp.A new sub-command,
tpm ini backuphas been added to manually invoke the same copy that thetpm updatecommand does.Added two new
tpmconfiguration flags:tungsten-ini-backup(default: false) : Enable thetungsten.iniautomatic backup feature duringtpm installandtpm update
tungsten-ini-history-dir(default:$CONTINUENT_ROOT/history/ini) : Define the location fortungsten.inibackup/history filesIssue: CT-2635
Command-line Tools (2)
- New feature
tpm copy --examplewill show the manual steps taken bytpm copy --initto copy the cluster certificate files to other nodes.Issue: CT-2636 A new subcommand
tpm ini defaultshas been added to list anytpmoption that actually has a default value defined in thetools/tpm_options_db.txtfile, along with the default value.Additionally, documentation has been updated to show defaults and options for all properties where applicable.
Issue: CT-2634
Platform Specific Deployments (1)
- This release is now certified with the following OS releases:
- RHEL 10
- Rocky Linux 10
- Oracle Linux 10
Issue: CT-2642
Bug Fixes (2)
Installation and Deployment (1)
The use of the - character in datasource service names is now properly handled.
In versions 7.x of tungsten, the - character, internally, was converted to an _. From v8 onwards the - character is maintained, however this led to an issue where
tpmwould fail during an upgrade as it was unable to correctly identify the service names.If you use the - in your servicenames and you are currently running v7.x, you will need to replace the - with an _ in your
/etc/tungsten/tungsten.inifile and upgrade directly to v8.0.2. If you wish to maintain the - please contact Continuent Support who will assist in the upgrade process.Issue: CT-2640
Command-line Tools (1)
- The
tprovisioncommand now correctly honors the mountpoint override flag when not using methodrsync.Issue: CT-2651
Tungsten Replicator 8.0.1
- Your hostnames contain a dash symbol (-) and/or a mix of UPPER and lower case characters.
Behavior Changes (1)
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:
Command-line Tools (1)
The
tprovisioncommand no longer requires the external tooltungsten_get_mysql_datadir.Additionally, the tool has been significantly re-factored for greater stability, performance and functionality.
Issue: CT-2597
Improvements, new features and functionality (3)
Command-line Tools (2)
- New
tpmflag--add-sslnow allows you to force-generate certificates when doing an upgrade. This allows configurations with security disabled to be upgraded to 8.0.1 AND switched to using SSL/TLS communications at the same time. Example:shell> tools/tpm update --replace-release --add-sslIssue: CT-2619 - New Feature:
tpm ini upgrade --ini [fullpath]will display all changes to the specified INI file that would be performed by thetpm updatecommands during a version upgrade. Adding the--writeargument would apply the changes to the specified file as well.Issue: CT-2601
Platform Specific Deployments (1)
- LTS MariaDB 11.4 is now certified.Issue: CT-2337
Bug Fixes (15)
Installation and Deployment (1)
Command-line Tools (7)
- The
tpm cert gencommand now works during version upgrades when a security configuration file may not have existed before (passwords.store)Issue: CT-2618 - The
tpm ini checkcommand now handles a variety of edge cases.Issue: CT-2613 - The
tungsten_send_diagnow uses AWS Signature Version 4 to upload files.Issue: CT-2589 - The
tapicommand no longer issues an error when the quantity of command-line arguments is larger than expected.Issue: CT-2580 - The
tpm purge-thlcommand now works properly when run against environments where there are multiple THL files, but the lowest seqno returned exists in the very first THL file.Issue: CT-2561 - The
tapicommand now handles various payload outputs properly.Issue: CT-2553 - Corrected debug outputs in the Perl tpm framework.Issue: CT-2497
Backup and Restore (2)
- Fixed an edge case issue with xtrabackup running against the primary node and MySQL 8+.InfoGenerally we do not recommend taking backups from primary nodes, and instead backups should be taken from replicas.Issue: CT-2602
- The
trepctl backupcommand would fail using xtrabackup.Issue: CT-2600
Core Replicator (2)
With recent SELinux changes, MySQL might be unable to read from
/tmp.This directory is used when applying a
LOAD DATA INFILEcommand that was logged using Statement Based Replication (warning : this is considered as unsafe by MySQL).In order to avoid any issues, a new setting has been added to indicate a directory to use :
svc-applier-ldi-temp-dir=/tmp/mysqltmpIn this case, mysqltmp is a new subdirectory that should be set with the following permissions and SELinux context
mkdir -p /tmp/mysqltmpsudo chown -R mysql: /tmp/mysqltmpsudo chmod -R g+r /tmp/mysqltmpsudo semanage fcontext -a -t mysqld_db_t '/tmp/mysqltmp(/.*)?'sudo restorecon -Rv /tmp/mysqltmpAnother improvement was also added to force the use of LOCAL when applying a
LOAD DATA INFILEcommand that was logged using SBR. This is useful when applying to a remote MySQL host. To enable, set the value of thesvc-applier-ldi-use-local=true(default : false)Issue: CT-2603- Fixed an issue where timestamp columns would not match between source and target when using the
privileged-slave=falseproperty to replicate from a source database using MIXED binlog mode.Issue: CT-2594
Security (1)
tungsten_mysql_ssl_setupnow properly generates v3 self signed CA certificates for openssl 3 found in RHEL9 Linux flavors.Issue: CT-2581
Monitoring (1)
- Additional prometheus metrics have been added to the Replicator:
tungsten_replicator_service_online_duration_secondsgauge shows duration in seconds since the replicator was put online.tungsten_replicator_task_totalcounter shows statistics by service, stage and task as shown in the following example:In this case, this is the extract time spent by the task #1 of the q-to-dbms stage of the alpha service. This is similar to the newtungsten_replicator_task_total{service="alpha",stage="q-to-dbms",task_id="1",stat="extract_time",} 250.015trepctl perflogoutput.
Issue: CT-2514
API (1)
- Fixed an issue with log4j2 library embedded in tungsten-api jar which could trigger a warning in cctrl and other log files.Issue: CT-2604
Tungsten Replicator 8.0.0
Release 8.0.0 is the first major v8 release and contains a wide range of bug fixes, and improvements.
Build 8.0.0-305 was initially released on 28 Apr 2025, and re-released as 8.0.0-308 on 12 Sept 2025
Deprecation Notices (1)
The following features/tools have been deprecated from this release and will be removed in future releases. Any self written scripts that utilise these features should be updated.
Command-line Tools (1)
tungsten_health_checkandtungsten_provision_thlhave been deprecated and will be removed in a future release.Issue: CT-2509
Behavior Changes (13)
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 (2)
- The
rest-api-admin-userandrest-api-admin-passwordTPM properties are now required during a default installation or when explicitly setting the variousmanager-rest-api=true,connector-rest-api=true,replicator-rest-api=trueorrest-apis=trueproperties.Issue: CT-2409 - All Tungsten Components now use log4j version 2.Issues: CT-1410, CT-1412
Command-line Tools (9)
- The
tpm cert infocommand now provides better error messages when a specifiedtypeSpecfile does not exist.Issue: CT-2530 The
tpm askcommand now returns the appropriate values for keys:stagingdir,stagingpath,staginghostandstaginguser.Additionally, the
tpm ask stagingcommand will return a JSON structure with all values. All values are the same as the output of thetpm query-stagingcommand, just presented differently for easier machine usage.Issue: CT-2510- A new cli argument has been added (
--apiver 8) to allow thetapicommand to use APIv8. By default,tapiwill continue to use APIv2 against v8 installations, using the--apiver 8option is experimental and should be used with care. Full APIv8 functionality will be included intapiin a future release.Issue: CT-2456 - The
tpmcommand now allows hyphens in dataservice names.Issue: CT-2453 - Removed
sigtrapmodule dependency fromtungsten_find_orphaned.Issue: CT-2451 - The
tungsten_send_diagcommand has been updated with new security keys and the ability to accept security keys on the CLI.Issue: CT-2438 - New shortcut options are availabe with
tprovision--primaryand--create-primaryas an additional alias for-c-C,--mysqlcloneas aliases for-m mysqlclone-D,--mysqldumpas aliases for-m mysqldump-R,--rsyncas aliases for-m rsync-X,--xtrabackupas aliases for-m xtrabackup
Issue: CT-2311 - When provisioning a replica using
mysqldump, the database will be set to offline mode until loading is complete to prevent accidental writes during the load.Issue: CT-2305 - Additional validation has been added to
tprovisionwhen parallel apply is in use.Issue: CT-2275
Security (1)
- As of version 7.2.0 onwards, when providing custom keystores, the alias of the mysql certificate must be provided as
java-mysql-alias=xxxand must have the same name in bothtungsten_keystoreandtungsten_connector_keystore.Issue: CT-2598
Core Clustering (1)
Manager and Replicator now get higher CPU priority (-9 nice value) through
systemdconfiguration file. When not usingsystemd, we advised to use thesudo renice <pid>command to avoid monitoring and processing pauses during high CPU usage periods.Note that this command has to be run as a privileged user, which is why the command cannot be part of the regular manager and replicator scripts
Issue: CT-2330
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Security (1)
tungsten_mysql_ssl_setupincorrectly generates self-signed CA certificates on RHEL9 Linux flavors.This will be fixed in v7.2.0 and v8.0.1
Issue: CT-2581
Improvements, new features and functionality (13)
Command-line Tools (7)
- The
tpm askcommand will now convert values0andfalsetoNoand values1andtruetoYesas human output when given--humanor-ncli args.Issue: CT-2559 - The
tpm inicommand now handles all new tpm options.Issue: CT-2543 - Issue: CT-2499
- A new
-zoption has been added totprovisionwhich will enable compression when using thersyncmethod.Issue: CT-2489 - The
tpm certcommand will now handle public key files. The commandtpm cert gen publicwill create$CONTINUENT_HOME/generated/tungsten_public.jksfrom the$CONTINUENT_HOME/share/tungsten_keystore.jksfile and thetpm cert list publiccommand will show the contents, etc.Issue: CT-2434 The
tpm askcommand now supports the-s|--serviceoption fordsrole,dsstate,trroleandtrstatekeys.The option alias for
--shortis now-S(capitalized), was previously lower-case.Example:
tpm ask dsrole --service alphaIssue: CT-2400- When using the
-m rsyncoption withtprovision, thersynccommand now includes theoStrictHostKeyChecking=nooptions.Issue: CT-2348
Core Replicator (5)
- The
trepctl perfoutput has been improved when parallel apply is enabled to show granular statistics per channel.Issue: CT-2517 A new
thl applycommand is available which provides the ability to pull/push a range of transactions from source THL to a destination. The command can apply the THL either directly into the destination database (MySQL or PostgreSQL) or it can simply write the THL to the filesystem.The destination does not need to be running Tungsten Replicator services for this to be used and provides a way of applying data outside of normal Tungsten operations and can be used to extend backup/recovery operations in some scenarios.
See "The THL apply Command" for more information.
Issue: CT-2347- A new
applyingfield has been added to the output oftrepctl reset.In the above example, the applier is processing seqno 3 / fragno 0 and already applied 92.86% (this represents a percentage of rows and statements that were already applied). When parallel apply in enabled, there will be one applying field per channel configured, for example the following shows 2 channels:...applying : 3 / 0 (92.86%)......applying.0 :applying.1 : 25 / 0 (92.86%)...Issue: CT-2315 - Replicator now recognizes the new MySQL 8.4
show binary log statussyntax (as well asshow master status) and will execute the configured replacement request appropriately.Issue: CT-2291 - Introduced a new
cloud-installtpmflag that will skip checks for hostname entry in/etc/hosts, allowing smoother installations against cloud based sources or targets such as Amazon Aurora or Google Cloud SQL.Issue: CT-2317
Documentation (1)
- API documentation has been updated to reflect changes to many of the endpoints, including updated examples of expected inputs and outputs.Issue: CT-2339
Bug Fixes (29)
Installation and Deployment (3)
tpmflagsdatasource-log-directoryandrepl-direct-datasource-log-directorywill now use the value of each other as a default if only one is specifiedIssue: CT-2425- The
tpm updatecommand no longer displays the message"common::diffPasswordsDotStore: No custom source passwords.store file defined - SKIPPING"Issue: CT-2406 - Hyphens are now allowed in service names by
tpm.Issue: CT-2367
Command-line Tools (22)
- The
tpm cert infocommand now properly handles all available typeSpecs.Issue: CT-2532 - The
tpm cert aliases --runningcommand now properly handles thetls_passwordstoreandjmx_passwordstoretypeSpecs.Issue: CT-2512 - Fixes an issue where
dsctl setwith the-resetoption could show warnings when run several times in a row, as shown:WARNING: Could not execute query DROP TABLE `tungsten_alpha`.`heartbeat` : Unknown table 'tungsten_alpha.heartbeat'Issue: CT-2502 - The
tungsten_send_diagcommand now handles curl andaws s3errors separately and displays the proper message back.Issue: CT-2488 - During a
tpm uninstall, when skipping data services not managed locally,tpmwill now print a notice rather than a warning, since this is the expected behavior.Issue: CT-2479 - The
tpm ask versionandtpm ask versionscommands now display values.Issue: CT-2475 tprovisionwill now correctly handle, and support, SELinux if enabled.Issue: CT-2473- Fixed an issue where the database could potentially get locked in certain cases when using the
rsyncmethod withtprovisionIssue: CT-2470 executable-prefixis now applied to thedeployallandundeployallscript names. For example, whenexecutable-prefix=mm,deployallwould be namedmm_deployall.Issue: CT-2467- The
tpm keepcommand is now properly called bytpm uninstall, and a regression in a call to the mysql cli has been fixed as well.Issue: CT-2462 - The
tpm updatecommand now properly identifies and removes services with mixed-case service names.Issue: CT-2426 tpmnow properly detects MariaDB default settings.Issue: CT-2424- The
tapicommand now accepts non-standard ports on the command line, and also properly accepts a user/password pair on the CLI.Issue: CT-2420 - The
tapicommand now creates proper URL's for these standard endpoints when-C,-Mor-Rare specified along with one of the following strings:ping,tungstenVersion,createAdminUser,deleteAdminUser,listAdminUsers,rmiSecurityoruser.Issue: CT-2391 - The
tpm check portsandtpm check ports -ccommands are now able to handle replicator-only nodes. By default, it will automatically try to discover the node type, and you may manually specify the node type with-r|--replicatoror-c|--cluster.Issue: CT-2356 - The
tpm diagcommand no longer displays a NOTICE for missing optional files.Issue: CT-2355 tprovisionwas incorrectly setting to the MySQL datadir totungstengroup ownership.Issue: CT-2322- The
tpm diagcommand now properly gathers the uptime command.Issue: CT-2319 - The
tpm uninstallcommand now properly calls thetpm keepcommand for standalone Tungsten Replicator deployments.Issue: CT-2436 - The
tpm diagcommand now correctly connects to an off-host database when run under standalone Tungsten Replicator.Issue: CT-2402 - The
tpm diagcommand now gathers:tungsten-replicator/log/replicator-api.log
Issue: CT-2397 - The
tpm updatecommand now properly deletes services when run in a standalone Tungsten Replicator deployment.Issue: CT-2383
Core Replicator (2)
- The replicator will now properly rollback an XA transaction in case of failure.Issue: CT-2410
- Fixed an issue that would wrongly flag a SQL statement starting with a
#comment as bidi_unsafeIssue: CT-2405
MongoDB Replication (1)
- The replicator now reads the TLS certificate for Mongo Atlas connectivity from the correct keystore (
tungsten_truststore.ts)Issue: CT-2227
API (1)
- Fixed an issue where a component (replicator/connector) stopped through through the API would wrongly indicate "unable to stop".Issue: CT-2515
Tungsten Dashboard 8.0
Tungsten Dashboard 8.0.4
Improvements, new features and functionality (7)
Installation and Deployment (3)
- Kubernetes installation script now allows user to enter certificate key and file to automatically create Kubernetes secret into dashboard namespace.
- Kubernetes installation no longer requires user to manually enter tls secret and domain details in to the helm values file. They will be automatically filled by the install script.
Issue: TD2-272- Kubernetes installation now prompts user to add Tungsten clusters to the Dashboard. By providing namespace details and selecting the correct Kubernetes service a cluster can be added to the dashboard with the install script if the Tungsten cluster was installed inside the same Kubernetes cluster as the dashboardIssue: TD2-271
- The install script now lets you choose which namespace the dashboard is deployed into, defaulting to
tungsten-dashboard, and detects conflicts when a dashboard already exists in a different namespaceIssue: TD2-266
General usability and Performance (4)
- Updated cluster status icons for topology warnings.
- The "Fetch Certs" action now displays a pending message while the operation is in progress.
- SSL status icon now shows a more specific tooltip indicating whether TCP, API, or both connections are unsecured.
Issue: TD2-287- Added a compact layout mode that reduces cluster row height and spacing for a denser overview; toggle between compact and relaxed layout via the submenu toolbar.
- Replaced the fixed simple/advanced view toggle with a column selector dropdown in the table header, allowing users to show or hide individual columns (replicator state, latencies, sequence numbers, pipeline, etc.).
- Column visibility and layout preferences are persisted in local storage across sessions.
Issue: TD2-284- Added
host:portsyntax support and smart port inference togetcert.plIssue: TD2-279 - Diagnostic tool now collects
dynamic/clusters.edncontent in Docker dashboard diagnostics.Issue: TD2-277
Bug Fixes (10)
Installation and Deployment (6)
- Fixed Kubernetes installer to correctly report deployment failures instead of showing misleading "Installation completed!" messages.
- Added automatic StorageClass detection and configuration to prevent pods from getting stuck in Pending state on clusters without a default StorageClass.
Issue: TD2-288- Feature for fetching certificates automatically now works for hybrid SSL setups. Improved connections handling for clusters with hybrid SSL.Issue: TD2-282
- Kubernetes install did not store repository and registry information correctly into helm
values.yamlfile. New system stores registry and repository into separate fields in the file.Issue: TD2-273 - Kubernetes installation's "wait for available" condition has had its timeout increased from 30 to 60 seconds to reduce timeout errors at the last step of Kubernetes installations.Issue: TD2-269
- Kubernetes & docker install no longer prints invalid https url at the end of the installation process when https was not enabledIssue: TD2-268
- Kubernetes installation no longer modifies
values.yamlfile after user has been prompted to validate itIssue: TD2-267
General usability and Performance (4)
- REST URL construction now validates that a target host is present before making a call, providing a clear error message instead of a cryptic HTTP client failure.Issue: TD2-283
- Improved error handling around cluster actions. System now shows more clear errors if host data is missing or corrupted.Issue: TD2-281
- Fixed a bug where a failed REST status poll could erase service connection options, causing subsequent commands to produce malformed URLs.Issue: TD2-280
- Fixed a bug where a failed initial connection to a node with an unresolvable hostname could corrupt cluster state, causing subsequent commands to fail with a missing host targetIssue: TD2-276
Tungsten Dashboard 8.0.3
Improvements, new features and functionality (6)
General usability and Performance (6)
- Three new ways to fetch certificates from the cluster have been introduced, specifically to assist when certificate rotation has happened within the cluster. These are as follows:
- via “Edit cluster” form with explicit “Fetch Certificates” button in “SSL” sub-form
- via cluster level menu item “Fetch Certificates”
- via warning icon in cluster row when connection error is detected
Issue: TD2-264 - Cluster connections popup improvementsIssue: TD2-262
- Add/edit cluster form UX improvementsIssue: TD2-259
- Dashboard screen Clusters sorting now mirrors sorting settings from the Clusters screenIssue: TD2-256
- Add/edit cluster form now has a 'Reset' button on each section allowing you to clear all fields in the form sectionIssue: TD2-220
- UI elements position and styling fixesIssues: TD2-261, TD2-255, TD2-195
Bug Fixes (2)
General usability and Performance (2)
- Fixed a bug with repeated installations failing when trying to generate new self-signed certificatesIssue: TD2-265
- Composite Active/Active clusters locking mechanism fixed.Issue: TD2-263
Tungsten Dashboard 8.0.2
Behavior Changes (4)
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:
General usability and Performance (4)
- The install script now determines whether to use
docker-composecommand or thedocker composeplugin automatically.docker-composeis not required anymore, when thedocker composeplugin is installed.Issue: TD2-236 - When adding a cluster, you can now progress through the form in steps using both “Next” button or Enter key.Issue: TD2-231
- Light/dark UI theme is now configurable in the Configuration screen.Issue: TD2-216
- Filtering clusters using search box is now case insensitive.Issue: TD2-208
Improvements, new features and functionality (4)
General usability and Performance (4)
- The tool
collect-diag.plhas been included in the installation directory and serves for collecting diagnostic information packages, useful for support cases.Issue: TD2-240 - The
getcertscript can now output the certificated encoded in base64 by specifying the new--base64option.Issue: TD2-224 - The Install script now has a new option
--reset, which resets configuration the files to their default state. Please use this option if your configuration is broken and you want to start with clean (default) configuration files. If updating an environment installed using docker compose from insecure to secure configuration, please use this new flag and start by specifying the configuration again.Issue: TD2-223 - Improvements made to the performance of parallel connection initialization to clustersIssue: TD2-180
Bug Fixes (14)
Installation and Deployment (1)
- Docker Compose installation method now offers to generate self-signed certificate for https connection. However this solution is only for development / testing and not recommended to use for production!Issue: TD2-239
General usability and Performance (13)
- Add cluster button is now visible in Dashboard widgets screen all the time.Issue: TD2-260
- Install script detects existing dashboard docker volume and offers user adequate solution to avoid corrupting existing dataIssue: TD2-248
- The following issues are now fixed:
- Adjusted timeouts to cluster connections so that connections to unresponsive servers timeout faster.
- Discovering the cluster topology no longer requires all clusters to respond or time out before updates are shown in the browser.
- Cluster connection to existing clusters during first status check is now asynchronous. Unresponsive clusters no longer prevent other connections from forming.
- If a cluster is removed while http request is happening, the results of those requests are properly ignored, preventing empty clusters from showing.
Issue: TD2-245 - Namespace label is now shown next to a cluster in Clusters sidebar menuIssue: TD2-244
- Connections per connector node and connection summaries now works properly with Tungsten Clusters version 8.0.1+Issue: TD2-243
- Cluster coordinators aggregation and presentation fixesIssue: TD2-241
- When adding a new cluster and pressing "Test connection" at the end of the form, all connection errors are shown above the button. Additionally, if testing the connection for a Tungsten Cluster running an older release (pre v8.0.0), the relevant error is also shown.Issue: TD2-238
- Namespace label is now visible in the Dashboard main screen cluster widgets, and invalid clusters. Namespace label serves also as a fast filter/link to search all clusters within specific namespaceIssue: TD2-235
- Minor UI graphical changes and fixesIssue: TD2-234
- General design fixes and improvementsIssue: TD2-232
- Standalone cluster now shows current coordinator on a service level view.Issue: TD2-230
- Unreachable clusters do not block healthy clusters anymore, when initializing the applicationIssue: TD2-228
- Search box now properly reflects URL query and filters section stateIssue: TD2-192
Tungsten Dashboard 8.0.1
Improvements, new features and functionality (10)
Behavior Changes (8)
- New fast action "Add cluster" button is available in the submenu of the Clusters screenIssue: TD2-211
values.yamlfile syntax has been unified. All keys are now camelCase, originally cluster definition was kebab-case.Issue: TD2-200- Improved the logic on how the Dashboard displays labels and colours depending on clusters and hosts states and statusesIssue: TD2-194
- Dashboard fronted<>backend communication has been improvedIssue: TD2-141
- All forms across the UI are improved for better and smother usability. Additionally, when adding a new cluster, certification details are automatically fetched upon selecting the SSL config tab.Issue: TD2-117
- Show Cluster List in Dashboard sidebar, for Composite clusters, also shows servicesIssue: TD2-87
- Fixed outdated packages in Dashboard frontend which might represent vulnerabilitiesIssue: TD2-79
- Tungsten Dashboard now supports virtual groups for clusters, to reflect Dynamic Datasource GroupsIssue: TD2-40
Installation and Deployment (2)
- The
install.plnow supports a wider range of CPU architectures. The architecture is automatically detected from the output of theunamecommand, however should this return a value that is unexpected, the user can manually provide the appropriate image.Issue: TD2-221 - The
install.plcan now be used to upgrade the Tungsten Dashboard release, additionally, The environment configuration can also be updated using the same script.Issue: TD2-214
Bug Fixes (1)
General usability and Performance (1)
- Improved websocket responsiveness, clusters are now loaded faster on startup.
- Bad cluster connection details no longer delays broadcasting of healthy cluster data.
Issue: TD2-221
Tungsten Dashboard 8.0.0
Tungsten Operator 8.0
Tungsten Operator 8.0.0
Version 7
Tungsten Clustering 7.2
Tungsten Clustering 7.2.1
Behavior Changes (4)
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)
Command-line Tools (3)
- The
tprovisioncommand now deletes only binary log files listed in the index if the binary log directory is not the same as the mysql data directory.Issue: CT-2631 - The
tpm ini checkcommand now checks for two new rules:There MUST be a
witnessesentry in EVERY stanza ifenable-active-witnesses=trueexists in[defaults]There MUST be a
witnessesentry in a stanza that containsenable-active-witnesses=true
Issue: CT-2625 - The
tprovisioncommand no longer requires the external tooltungsten_get_mysql_datadir. Additionally, the tool has been significantly re-factored for greater stability, performance and functionality.Issue: CT-2597
Improvements, new features and functionality (7)
Installation and Deployment (1)
- New feature:
tungsten.inibackup and history. When enabled with thetpmflagtungsten-ini-backup(false by default), thetpm updatecommand will create a copy of the current INI file (default:/etc/tungsten/tungsten.ini) as$CONTINUENT_ROOT/history/ini/tungsten.ini.YYYYMMDDhhmmssWhen enabled with thetpmflagtungsten-ini-backup, thetpm installcommand will create the first history file and the history subdir, if needed. A new sub-command,tpm ini diffhas been added to compare the current INI file (default:/etc/tungsten/tungsten.ini) and a history file (default: latest history file found), and can also accept--stamp [YYMMDDhhmmss]to specify which file to diff by timestamp. A new sub-command,tpm ini backuphas been added to manually invoke the same copy that thetpm updatecommand does. Added two newtpmconfiguration flags:tungsten-ini-backup(default: false) : Enable thetungsten.iniautomatic backup feature duringtpm installandtpm update
tungsten-ini-history-dir(default:$CONTINUENT_ROOT/history/ini) : Define the location fortungsten.inibackup/history filesIssue: CT-2635
Command-line Tools (5)
- New feature
tpm copy --examplewill show the manual steps taken bytpm copy --initto copy the cluster certificate files to other nodes.Issue: CT-2636 - A new subcommand
tpm ini defaultshas been added to list anytpmoption that actually has a default value defined in thetools/tpm_options_db.txtfile, along with the default value. Additionally, documentation has been updated to show defaults and options for all properties where applicable.Issue: CT-2634 - New tpm flag
--add-sslnow allows to force generate certificates when doing an upgrade. This allows configurations with security disabled to be upgraded to 8.0.1 AND switched to using SSL/TLS communications at the same time. Example:shell> tools/tpm update --replace-release --add-sslIssue: CT-2619 - The
tpm ini checkcommand now validates composite topologies.Issue: CT-2066 - New Feature:
tpm ini upgrade --ini [fullpath]will display all changes to the specified INI file that would be performed by the tpm update commands during a version upgrade. Adding the--writeargument would apply the changes to the specified file as well.Issue: CT-2601
Core Replicator (1)
- The replicator now includes real-time performance monitoring to track and identify slow database operations during replication. The feature provides visibility into transaction, event, and statement execution times with configurable thresholds for alerting. For more information on configuring and using this feature, see "The trepctl perflog Command"Issue: CT-2629
Bug Fixes (16)
Installation and Deployment (1)
- Fixed an installation issue when using MariaDB 10.6 with SSL. Previously, this would have failed to install showing an error message like :Unable to connect to the MySQL server using tungsten@db1:13306 (WITH PASSWORD) (MySQLLoginCheck)Issue: CT-2624
Command-line Tools (3)
- The
tprovisioncommand now correctly honors the mountpoint override flag when not using methodrsync.Issue: CT-2651 - The
tpm cert gencommand now works during version upgrades when a security configuration file may not have existed before (passwords.store).Issue: CT-2618 - The
tungsten_send_diagnow uses AWS Signature Version 4 to upload files.Issue: CT-2589
Backup and Restore (1)
- Fixed an edge case issue with xtrabackup running against the primary node and MySQL 8+.NoteGenerally we do not recommend taking backups from primary nodes, and instead backups should be taken from replicas.Issue: CT-2602
Core Replicator (2)
- With recent SELinux changes, MySQL might be unable to read from
/tmp. This directory is used when applying aLOAD DATA INFILEcommand that was logged using Statement Based Replication (warning : this is considered as unsafe by MySQL). In order to avoid any issues, a new setting has been added to indicate a directory to use :svc-applier-ldi-temp-dir=/tmp/mysqltmpIn this case, mysqltmp is a new subdirectory that should be set with the following permissions and SELinux contextAnother improvement was also added to force the use of LOCAL when applying amkdir -p /tmp/mysqltmpsudo chown -R mysql: /tmp/mysqltmpsudo chmod -R g+r /tmp/mysqltmpsudo semanage fcontext -a -t mysqld_db_t '/tmp/mysqltmp(/.*)?'sudo restorecon -Rv /tmp/mysqltmpLOAD DATA INFILEcommand that was logged using SBR. This is useful when applying to a remote MySQL host. To enable, set the value of thesvc-applier-ldi-use-local=true(default : false)Issue: CT-2603 - Fixed an issue where timestamp columns would not match between source and target when using the
privileged-slave=falseproperty to replicate from a source database using MIXED binlog mode.Issue: CT-2594
Connector (6)
- Fixed a null pointer exception error showing up in rare cases at startup time.Issue: CT-2656
- Fixed issue introduced by CT-2511 (dual certificate support) where the keystore was reloaded at every new connection.Issue: CT-2652
- Connector configuration files to execute Tungsten-specific show slave status request now get the right schema to select from.Issue: CT-2639
- In rare cases, a synchronization issue would prevent the connector from recovering from a site outage.Issue: CT-2633
- Fixed an issue in the Drizzle driver that could cause memory errors when handling large string parameters.Issue: CT-2627
- No longer printing broken pipe errors (typically generated by haproxy or hardware loadbalancer checks) when
printConnectionWarnings=false(the default)Issue: CT-2576
Core Clustering (1)
- Recent Java versions changed a default that now enable endpoint identification in secured RMI calls. As a quick turnaround, this release restores the default of disabling identification in various Tungsten scripts.Issue: CT-2666
Security (1)
- Upgraded jackson libraries to latest version to plug potential security holes.Issue: CT-2655
Manager (1)
- If a cluster was idle for more than 15 minutes and a failure occurred, the failover would fail to completeIssue: CT-2637
Tungsten Clustering 7.2.0
Deprecation Notices (1)
The following features/tools have been deprecated from this release and will be removed in future releases. Any self written scripts that utilise these features should be updated.
Command-line Tools (1)
tungsten_health_checkandtungsten_provision_thlhave been deprecated and will be removed in a future releaseIssue: CT-2506
Behavior Changes (10)
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 (2)
tpm validatenow verifies localhost is defined in/etc/hostsIssue: CT-2564- All Tungsten Components now use log4j version 2.Issues: CT-1410, CT-1412
Command-line Tools (4)
- The
tpm cert infocommand now provides better error messages when a specifiedtypeSpecfile does not exist.Issue: CT-2530 The
tpm askcommand now returns the appropriate values for keys:stagingdir,stagingpath,staginghostandstaginguser.Additionally, the
tpm ask stagingcommand will return a JSON structure with all values. All values are the same as the output of thetpm query-stagingcommand, just presented differently for easier machine usage.Issue: CT-2510- Removed
sigtrapmodule dependency fromtungsten_find_orphaned.Issue: CT-2451 - The
tungsten_send_diagcommand has been updated with new security keys and the ability to accept security keys on the CLI.Issue: CT-2438
Connector (1)
- Connector now always reads its dynamic (auto-detect) configuration from primary node by default. Reading from a replica is still possible using the
property=readAutodetectConfigFromPrimary=falsetpmflag.Issue: CT-2527
Security (2)
- As of version 7.2.0 onwards, when providing custom keystores, the alias of the mysql certificate must be provided as
java-mysql-alias=xxxand must have the same name in bothtungsten_keystoreandtungsten_connector_keystore.Issue: CT-2598 - Now providing adequate error message when TLS certificates differ between connector and managers, or when manager refuses the SSL handshake.Issue: CT-2579
API (1)
- The Manager APIv2 now returns a 404 error instead of 500 when a task status is requested for a TaskID that does not exist inside that Manager process.Issue: CT-2430
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Security (1)
tungsten_mysql_ssl_setupincorrectly generates self-signed CA certificates on RHEL9 Linux flavors.This will be fixed in v7.2.0 and v8.0.1
Issue: CT-2581
Improvements, new features and functionality (13)
Installation and Deployment (1)
- Introduced a new set of
tpmgroup aliases to control the rest api configuration when the same value needs applying to multiple properties, as follows:rest-apiswill setconnector-rest-api,manager-rest-apiandreplicator-rest-apirest-api-addresswill setconnector-rest-api-address,manager-rest-api-addressandreplicator-rest-api-addressrest-api-authenticationwill setconnector-rest-api-authentication,manager-rest-api-authenticationandreplicator-rest-api-authenticationrest-api-sslwill setconnector-rest-api-ssl,manager-rest-api-sslandreplicator-rest-api-ssl
/etc/tungsten/tungsten.inimay look like the following:BEFOREAFTER[defaults]...connector-rest-api=truemanager-rest-api=truereplicator-rest-api=trueconnector-rest-api-adddress=0.0.0.0manager-rest-api-adddress=0.0.0.0replicator-rest-api-adddress=0.0.0.0connector-rest-api-authentication=truemanager-rest-api-authentication=truereplicator-rest-api-authentication=trueconnector-rest-api-ssl=truemanager-rest-api-ssl=truereplicator-rest-api-ssl=true...[defaults]...rest-apis=truerest-api-adddress=0.0.0.0rest-api-authentication=truerest-api-ssl=true...Issue: CT-2459
Command-line Tools (6)
- The
tpm askcommand will now convert values0andfalsetoNoand values1andtruetoYesas human output when given--humanor-ncli args.Issue: CT-2559 - The
tpm inicommand now handles all new tpm options.Issue: CT-2543 - Issue: CT-2499
- The
tpm certcommand will now handle public key files. The commandtpm cert gen publicwill create$CONTINUENT_HOME/generated/tungsten_public.jksfrom the$CONTINUENT_HOME/share/tungsten_keystore.jksfile and thetpm cert list publiccommand will show the contents, etc.Issue: CT-2434 - The
tpm askcommand now supports the-s|--serviceoption fordsrole,dsstate,trroleandtrstatekeys. The option alias for--shortis now-S(capitalized), was previously lower-case. Example:tpm ask dsrole --service alphaIssue: CT-2400 - The new
tpm inicommand allows for easy creation, checking and administration of the &definifile; configuration file.Issue: CT-2366
Core Replicator (2)
- The
trepctl perfoutput has been improved when parallel apply is enabled to show granular statistics per channel.Issue: CT-2517 - Replicator now recognizes the new MySQL 8.4
show binary log statussyntax (as well asshow master status) and will execute the configured replacement request appropriately.Issue: CT-2291
Connector (2)
- Connector now recognizes the new MySQL 8.4
show replica statussyntax (As well asshow slave status) and will run replacement configured request appropriately.Issue: CT-2401 - Fixed a bug where connections properly disconnecting with quit command would get an empty database change request.Issue: CT-2395
Security (1)
- Tungsten can now hold two MySQL database SSL Certificates, allowing rotation of certificates without the need for downtime. A new command line tool,
rotate_certs, is provided to aid in this process.Issue: CT-2511
Monitoring (1)
- Additional prometheus metrics have been added to the Replicator:
tungsten_replicator_service_online_duration_secondsgauge show duration in seconds since the replicator was put online.tungsten_replicator_task_totalcounter shows statistics by service, stage and task as shown in the following example:In this case, this is the extract time spent by the task #1 of the q-to-dbms stage of the alpha service. This is similar to the new trepctl perf output.tungsten_replicator_task_total{service="alpha",stage="q-to-dbms",task_id="1",stat="extract_time",} 250.015
Issue: CT-2514
Bug Fixes (27)
Installation and Deployment (2)
tpmflagsdatasource-log-directoryandrepl-direct-datasource-log-directorywill now use the value of each other as a default if only one is specifiedIssue: CT-2425- The
tpm updatecommand no longer displays the message"common::diffPasswordsDotStore: No custom source passwords.store file defined - SKIPPING"Issue: CT-2406
Command-line Tools (19)
- The
tapicommand no longer issues an error when the quantity of command-line arguments is larger than expected.Issue: CT-2580 - The
tpm purge-thlcommand now works properly when run against environments where there are multiple THL files, but the lowest seqno returned exists in the very first THL file.Issue: CT-2561 - The
tpm cert infocommand now properly handles all available typeSpecs.Issue: CT-2532 - The
tpm cert aliases --runningcommand now properly handles thetls_passwordstoreandjmx_passwordstoretypeSpecs.Issue: CT-2512 - Fixes an issue where
dsctl setwith the-resetoption could show warnings when run several times in a row, as shown:WARNING: Could not execute query DROP TABLE `tungsten_alpha`.`heartbeat` : Unknown table 'tungsten_alpha.heartbeat'Issue: CT-2502 - The
tungsten_send_diagcommand now handles curl andaws s3errors separately and displays the proper message back.Issue: CT-2488 - During a
tpm uninstall, when skipping data services not managed locally,tpmwill now print a notice rather than a warning, since this is the expected behavior.Issue: CT-2479 - The
tpm ask versionandtpm ask versionscommands now display values.Issue: CT-2475 executable-prefixis now applied to thedeployallandundeployallscript names. For example, whenexecutable-prefix=mm,deployallwould be namedmm_deployall.Issue: CT-2467- The
tpm keepcommand is now properly called bytpm uninstall, and a regression in a call to the mysql cli has been fixed as well.Issue: CT-2462 The tpm updatecommand now properly identifies and removes services with mixed-case service names.Issue: CT-2426tpmnow properly detects MariaDB default settings.Issue: CT-2424- The
tapicommand now accepts non-standard ports on the command line, and also properly accepts a user/password pair on the CLI.Issue: CT-2420 - The
tungsten_get_statuscommand now passes the correct number of arguments to theprintffunction in various places, preventing"Redundant argument"warnings.Issue: CT-2407 - The
tpm delete-serviceandtpm updatecommands now correctly remove Composite Active/Active cross-site subservices from cctrlIssue: CT-2404 - The
tpm diagcommand now gathers:tungsten-replicator/log/replicator-api.logtungsten-connector/log/connector-api.logtungsten-manager/log/manager-api.log
Issue: CT-2397 - The
tapicommand now creates proper URL's for these standard endpoints when-C,-Mor-Rare specified along with one of the following strings:ping,tungstenVersion,createAdminUser,deleteAdminUser,listAdminUsers,rmiSecurityoruser.Issue: CT-2391 - The
tpm check portsandtpm check ports -ccommands are now able to handle replicator-only nodes. By default, it will automatically try to discover the node type, and you may manually specify the node type with-r|--replicatoror-c|--cluster.Issue: CT-2356 - The
tpm diagcommand no longer displays a NOTICE for missing optional files.Issue: CT-2355
Core Replicator (3)
- Fixed an issue where a cluster could display a wrong latency after MySQL and the replicator were stopped and restarted. This would only show under no load conditions.Issue: CT-2485
- The replicator will now properly rollback an XA transaction in case of failure.Issue: CT-2410
- Fixed an issue that would wrongly flag a SQL statement starting with a
#comment as bidi_unsafeIssue: CT-2405
Connector (3)
- The
tpm delete-servicecommand now sets MAINTENANCE mode before operations, then sets back to AUTOMATIC if it wasAUTOMATIC to start with.Issue: CT-2555 - In active/active setups, no longer using global data service for
show slave latencyconnector intercept.Issue: CT-2554 - Fixed an issue with PHP and
caching_sha2_passwordwhen using proxy mode: the protocol part "fast path" was not handled properly by the connector, php would hang after reading an unexpected packet. Workaround for this issue (for earlier tungsten versions) is to setproperty=defaultAuthPlugin=mysql_native_passwordwithin/etc/tungsten/tungsten.ini.Issue: CT-2471
Tungsten Clustering 7.1
Tungsten Clustering 7.1.4
Behavior Changes (5)
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:
Command-line Tools (4)
- The
tpm purge-thlcommand is now Composite Cluster-aware.Issue: CT-2343 - Issue: CT-2332
- The
check_tungsten_progresscommand now aborts with exit code 3 and displays the UNKNOWN status when run on Witness nodesIssue: CT-2320 - Global calls to sudo in
tpmare now sensitive to thetpmoption and aliasroot-command-prefix/enable-sudo-accesswhen set to falseIssue: CT-2310
Monitoring (1)
- Tungsten monitoring scripts no longer rely upon the
bccommand, removing the dependency because recent distros do not havebcavailableIssue: CT-2371
Improvements, new features and functionality (7)
Command-line Tools (6)
- The
tpm diagcommand now gathersshow global status;from the MySQL serverIssue: CT-2387 - The
tpm diagcommand now gathersservice_logs/tprovision.logandservice_logs/trestore.log, if they existIssue: CT-2385 - The
tungsten_find_orphanedcommand now accepts the--sqloption when using the--epochoption for Scenario 2. This will output the full SQL statements instead of just the headers. For use with--epochonly. Not available with ROW-based replication, only with STATEMENT or MIXED.Issue: CT-2345 - The
tpm diagcommand now gathers the output ofcrontab -l.Issue: CT-2344 - Issue: CT-2318
- The
tpm diagcommand now gathers the mount and hostname commands.Issue: CT-2314
Filters (1)
- A new
maskDatafilter has been added, allowing basic level data obfuscation capabilities.Issue: CT-849
Bug Fixes (8)
Command-line Tools (5)
- Issue: CT-2373
- The
tpm certcommand now easily imports certificate bundles into various files, and correctly reads a file name as the propertypeSpecin various subcommands.Issue: CT-2369 - The
tpm copy --doinicommand now functions properly from the staging directory before the initial installation of Tungsten.Issue: CT-2362 - The
tungsten_mysql_ssl_setupcommand no longer tries tolsany .p12 file unless--p12has been given on the cli.Issue: CT-2357 - The
tpm check inicommand now properly handlesproperty=INI entries.Issue: CT-2352
Core Replicator (3)
- Fixed a bug in latency calculations that in some circumstances could appear as though the latency on the applier stages was "flapping".Issue: CT-2386
- Fixed an issue where the replicator was not able to build a valid DELETE statement, when
enable-heterogeneous-service=true.Issue: CT-2379 - Fixed a bug preventing the auto-recovery feature to put the service back online if it failed to connect to database during a retryIssue: CT-2377
Tungsten Clustering 7.1.3
Behavior Changes (10)
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:
Command-line Tools (10)
- Improved support for the
--nosudoargument and the sudo command intpm diagIssue: CT-2308 - The default port in
tpm generate-haproxy-for-apihas been updated to 8201Issue: CT-2282 - The
tapicommand option now prints a much easier-to-understand URL when specifying the-UoptionIssue: CT-2279 - The
tapicommand Connector router module support has been removedIssue: CT-2277 - The
tpm certcommand now accepts an absolute path filename as a typeSpecIssue: CT-2268 - The
tpm certcommand now accepts--basedirand--certsdiras aliases for--dirto specify the target directory for generationIssue: CT-2267 - The
tpm diagcommand now checks themy_print_defaultscommand for the MySQL error log value if the direct querySELECT @@GLOBAL.log_error;fails to gather a value for any reason.Issue: CT-2229 - All scripts that call
cctrlhave been updated to usecctrl -no-routerswhen possible to improve performanceIssue: CT-2228 - The
tpm updatecommand now checks for a custompasswords.storefile in the INI and exits with an error if the running file does not match the custom file.Issue: CT-2216 - The
tpm certcommand now properly accepts the full file name as a typeSpec.Issue: CT-2213
Improvements, new features and functionality (7)
Installation and Deployment (2)
- Oracle Linux 9 has been certified for Tungsten products from version 7.1.3.Issue: CT-2370
- Added support for Ruby 3.2.Issue: CT-2296
Command-line Tools (4)
- Added new
tpm check portscommand which will check port connectivity for standard Tungsten ports to a specified hostIssue: CT-2292 tpasswdutility gets a new switch-Cor--compare.toallowing password store file comparison fortpm updatepurpose.Issue: CT-2278- A new command has been added,
tpm check ini, that will validate all options present in atungsten.inifile. This command can be run prior to installation.Issue: CT-2240 - Improved help text in the
tpm certcommand.Issue: CT-2222
Connector (1)
- In proxy mode, kill queries are now intercepted by the connector in order to replace the given thread_id by the underlying database connection thread_id.NoteWhile executing the kill command, you might get an error like "Could not execute query kill query <id>: Unknown thread id:<id>". This can be ignored, the connection will still be properly killed.Issue: CT-2298
Bug Fixes (8)
Installation and Deployment (1)
- The
tpm updatecommand now passes the verbose and debug flags properly totpm delete-service.Issue: CT-2299
Command-line Tools (5)
- The
tpm reportcommand now displays channel 2 output properly when in Bridge modeIssue: CT-2294 - The
tpm certcommand now works correctly with theshare/tungsten.envconfiguration file prior to installationIssue: CT-2255 - Issue: CT-2237
- Issue: CT-2224
- Issue: CT-2181
Monitoring (2)
- The
check_tungsten_progresscommand now behaves properly on witness nodes by exiting with an errorCRITICAL: Replicator is not installed on Witness nodes.Issue: CT-2301 - The
zabbix_tungsten_onlinemonitoring tool now properly supports active witnessesIssue: CT-2300
Tungsten Clustering 7.1.2
Behavior Changes (1)
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)
- The
systemdstartup scripts will now have a dependency on the time-sync service (if available) being started before tungsten components.Issue: CT-2257
Improvements, new features and functionality (4)
Installation and Deployment (1)
- A new INI option has been added
rest-api-admin-passwordwhich acts as an alias for the existingrest-api-admin-passoption.Issue: CT-2246
Command-line Tools (2)
- Issue: CT-2243
- A new command,
tungsten_mysql_ssl_setup, has been introduced to create all needed security files for the MySQL database server.tungsten_mysql_ssl_setupwill act as a direct replacement for themysql_ssl_rsa_setupcommand which is not included with either Percona Server or MariaDB. This command will now be called bytpm cert gen mysqlcertsinstead ofmysql_ssl_rsa_setup.Issue: CT-2188
Filters (1)
- A new filter,
binarystringconversion, was added to provide a way to convert varchar data from one charset into another.Issue: CT-981
Bug Fixes (9)
Installation and Deployment (1)
- The
tpm updatecommand now properly recognizes the INI optiondataservice-composite-datasourcesas an alias forcomposite-datasourcesIssue: CT-2241
Command-line Tools (1)
- The
tpm diagcommand no longer errors out on witness hosts installed with the Staging methodIssue: CT-2262
Core Replicator (3)
- Event extraction can sometimes generate an empty fragment (for a multi fragment transaction). This in turn can lead to bad shard detection. While empty fragment is expected, shard detection will now use the last non-empty fragment.NoteThis bug was detected in v7.1.2 build 42, and fixed in v7.1.2 build 81Issue: CT-2284
- Fixed an issue caused by a MySQL behavior change in how a
DROP TABLEis logged in the binlog, that made the replicator unable to identify correctly if the query had tungsten metadata in it.Issue: CT-2269 - Fixed an issue where the shard name of an event could be badly identified, which could potentially lead to deadlocks when parallel applier was enabledIssue: CT-2266
Connector (2)
- Fixed a bug where any new connection to the connector would trigger a call to hostname, potentially exhausting CPU resources.NoteThis bug was detected in v7.1.2 build 42, and fixed in v7.1.2 build 81Issue: CT-2285
- Fixed an issue where some applications won't be able to connect to the connector under bridge mode and IP filtering in place through authorized_hosts.Issue: CT-2261
Manager (2)
- Fixes a bug that would cause a switch to fail if the cluster had been idle for more than 15 minutes.Issue: CT-2263
- Fixes an issue with data source monitoring when client and server don't share the same default authentication plugins.Issue: CT-2233
Tungsten Clustering 7.1.1
Behavior Changes (2)
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:
Command-line Tools (1)
- Issue: CT-2119
Connector (1)
- Changed default value of
mgr-policy-fence-slavesetting so that a replica data source is put offline 60s after its replicator goes offline. This change will prevent routing traffic to replicas that are stale.Issue: CT-2096
Improvements, new features and functionality (2)
Bug Fixes (7)
Installation and Deployment (1)
- Installations will now succeed on hosts running Ruby 3.xIssue: CT-2196
Command-line Tools (3)
- The
tpm mysqlcommand now properly accepts the-eargument as a shortcut for the--executemysql cli client argument.Issue: CT-2217 - The
tpm updatecommand no longer fails to display foreign-owned dot-files and directories.Issue: CT-2190 - The
tpm reportcommand now correctly displays security info tpm options as blank when none exists.Issue: CT-2176
Manager (3)
- Fixed a bug when upgrading from 6.x to 7.x that prevented switches/failovers from working. Also the change of
datasource-group-idin the INI will now be correctly reflected after atpm update.Issue: CT-2236 - v6 API configuration properties within the INI file, are now also recognised by v7.Issue: CT-2231
- Fixed a thread synchronization issue that can cause memory leaks.Issue: CT-2197
Tungsten Clustering 7.1.0
Behavior Changes (4)
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:
Command-line Tools (3)
- The
tpm copy-keyscommand has been renamed totpm copyand a new command has been createdtpm cert copywith the same functionality.Issue: CT-2186 cctrlnow accepts services names with capital letters, dots and hyphensIssue: CT-2163- No longer using
connector graceful-stoptogether withsystemdfor upgrades. The underlying change of binary confuses systemd scripts.Issue: CT-2113
Backup and Restore (1)
- When performing a provision via
rsync,tprovisionwill now sleep for 2 seconds after locking tables to make sure all transactions have finished writing to disk.Issue: CT-2169
Improvements, new features and functionality (23)
Behavior Changes (1)
- Additional logging will now be added to the replicator logs during switchover/failover operations to enable better debugging in the event of issues.Issue: CT-1448
Installation and Deployment (2)
- Added tpm flag
deploy-systemdas a more meaningful alias toinstallIssue: CT-2152 - Running
tpm uninstallwill now save all of the Tungsten database tracking schemas for later use. There is also a newtpm keepcommand, which allows the tracking schemas to be saved to disk at any time in multiple formats (.json, .dmp and .cmd)Issue: CT-2131
Command-line Tools (7)
- Issue: CT-2155
- The
tungsten_send_diagcommand has a new argument--allwhich will tell thetpm diagcommand to gather all hosts with-a, and this replaces the previous method for gathering all hosts fortungsten_send_diag,--args '--all'Issue: CT-2150 - The
tpm diagcommand now supports the--skipsudoand--nosudoarguments to prevent operations from using the sudo command. Using this option may result intpm diagskipping/failing various gathers due to a lack of access.Issue: CT-2146 tungsten show processlistcould error with a disconnection message listing connections disconnected on the mysql server side.Issue: CT-2112The
tpm reportcommand now displays the security-specific information for each channel shown, including file paths and tpm options. Security information and tpm options for each channel will also be shown when--extrais used with--list.Also added the
tpm ask certscommand with expiry and sha2566 info per alias, along with thetpm ask certtpmandtpm ask certlocationscommands with reference information about thesecurity.propertiesfile.Added help text for
tpm ask --longwhich shows the key/variable name along with the value. Thetmonitor -t testcommand now shows only the actual Tungsten-specific metrics lines.Added
tmonitor -T testto show metrics help and headers along with actual tungsten_* metrics linesIssue: CT-2088A new command
tpm certhas been added to aid in the creation, rotation and management of certificates for all areas of Tungsten.Known limitations: Percona 5.6, and all versions of MariaDB do not provide the
mysql_ssl_rsa_setupcommand required bytpm cert gen mysqlcerts.Issue: CT-2085- Added a new option
--preserve-schemato thetpm uninstallcommand in order to leave the tracking schema in the database.Issue: CT-561
Backup and Restore (4)
- The
tprovisionscript will sleep for 5 seconds by default when using thersyncmethod after issuing a flush logs. The sleep value is configurable as a command line option--flush-after-sleep.Issue: CT-2101 tprovisionwill now add a heartbeat after restore. This will ensure the replicator can be put back online when there is no load on the cluster.Issue: CT-2005tungsten_get_mysql_datadircan now return additional mysql database directories.Issue: CT-1985- MySQL clone can now be used as an option for recovery using
tprovision.Issue: CT-1417
Filters (1)
- A new shardbyrules filter has been added that will allow rule-based sharding of replication based on user configurable rules that would allow sharding at table level, whereas previously sharding would only be handled at schema level.Issue: CT-2164
Connector (2)
Added a flag to avoid generating and sending EOF packets to client applications when
CLIENT_DEPRECATE_EOFis not set on both client and mysql server sides. This fixes an issue with Go-MySQL-Driver and prepared statements.When using Go MySQL Driver, flag
connector-generate-eof=falseshould be specified. Default is set to true for backwards compatibility.Issue: CT-2177- Tungsten Connector now supports dual passwords, mirroring the MySQL v8.0.14+ functionality. When changing a user password, the previous password can be retained as long as needed in order to allow changing account passwords with no downtime.Issue: CT-2127
Core Clustering (2)
- There is a new
datasource-group-idTPM option. In a single cluster the nodes with the samedatasource-group-idwill form a Distributed Datasource Group (DDG).Issue: CT-2051 - Upgraded JGroups library to 4.2.22Issue: CT-2011
Monitoring (4)
- The ability to configure the Java Virtual Machine (JVM) settings for the manager has been made easier, by the use of the
manager_java_settings.conffile. For more information see "Adjusting JVM Settings for the Manager"Issue: CT-2167 - Prometheus libraries have been upgraded from version 0.8.1 to 0.16.0Issue: CT-2166
- Added Prometheus exporter metrics for composite parent and sub-servicesIssue: CT-2121
- Prometheus exporters now provide the ssl cert expiration date as an epoch value in addition to the label.Issue: CT-2099
Bug Fixes (19)
Installation and Deployment (1)
- Fixed RPM package script to run
tpm installinstead oftpm updatewhen installing the rpmIssue: CT-2130
Command-line Tools (5)
- The
tpmcommand now searches more places to locate shell commands that are called, especially useful when$CONTINUENT_ROOT/share/env.shis not sourced.Issue: CT-2182 - The cctrl
cluster topology validatecommand now checks, in a CAA setup, if the relay in the subservice is on the same host as the primary, and reports if there is a mismatchIssue: CT-2114 - The
tungsten_find_orphanedcommand now handles some edge cases more gracefully.Issue: CT-2107 tpm uninstallwould sometimes print"ERROR >> db1 >> undefined method '+' for nil:NilClass"Issue: CT-2104- The
tpmcommand now handles situations when the Manager process is not running.Issue: CT-2103
Backup and Restore (5)
- Using
mysqldumpfortprovisioncould incorrectly create a new SSL key pair/Issue: CT-2142 tprovisionwill now timeout if ssh is blocked from the target to the source host.Issue: CT-2139tprovisionwould accept bogus options and not produce an error. This has now been fixed.Issue: CT-2045tprovisionwill now print an error message and exit if the MySQL datadir does not exist.Issue: CT-1901tprovisionwould produce errors if the local hostname were different from the hostname used in the Tungsten install (short vs long names).Issue: CT-1363
Core Replicator (2)
- Fixed an issue while processing geometry data with SRID 4326 that would swap longitude and latitude. This applies only to MySQL 8, as prior MySQL versions do not allow specifying the order when applying a WKB (Well-known binary) to MySQL.Issue: CT-2172
Improved a query that is run by Tungsten when fetching tables metadata (column names, datatypes, etc). While it is not generally needed, the unoptimized query can run badly (especially) against old mysql versions with a lot of databases / tables. For now, the new optimized query is not used by default, but this could change in some future version.
This can be enabled by using the following property :
property=replicator.datasource.global.connectionSpec.usingOptimizedMetadataQuery=trueIssue: CT-2077
Connector (4)
- Fixed an issue where a failover could hang in rare cases when security and Proxy mode are enabled. SSL connections to a failed data source could enter a deadlock and block failover for up to 15 minutes.NoteThis issue only affects users running Java 11, and is related to [https://bugs.openjdk.org/browse/JDK-8241239](https://bugs.openjdk.org/browse/JDK-8241239)Issues: CT-2183, CT-2187
- Fixed an issue with topology validation when running
tpm promote-connectoron a witness hostIssue: CT-2161 - Fixed a log4j configuration issue where the
connector-audit.logandconnector-api.logfiles that have been rotated will end up incluster-home/bin/directoryinstead oftungsten-connector/log/.Issue: CT-2137 - Fixed NullPointerExceptions when reading packets from disconnected client connections.Issue: CT-2132
Core Clustering (1)
- In a Composite Active/Active topology, issuing SHUN/DRAIN or WELCOME on a node in cctrl would only affect the node in the main cluster service. This action will now also be applied to the same node within the x_from_y sub-service.Issue: CT-2145
Manager (1)
- A set of changes to improve
cctrlresponsivenesscctrlnow properly lists responsive connectors even if some fail to return their status in a timely fashion (for example with slow networks)- Under the above condition,
cctrlwill return in 5-6 seconds rather than in up to 30 seconds when there is network congestion/partition. - Under normal conditions,
cctrlresponds significantly more quickly - up to 3x faster - due to optimized communications betweencctrland remote connectors. cctrlcommands are no longer slowed down/blocked by internal ping traffic to connectors.- Fixed an issue where individual connectors cannot be addressed in 'router' commands.
Issue: CT-1795
Tungsten Clustering 7.0
Tungsten Clustering 7.0.3
Behavior Changes (10)
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)
- Added
LimitNOFILE=infinityinsystemdscripts to workaround an issue with open files limit for clusters installed with systemdIssue: CT-2023
Command-line Tools (8)
- The
tpm reportcommand with with--extranow shows the associated Connector listener ports and mode per port for when the connector mode is "listeners".Issue: CT-2087 - The
tpmcommand now prints a warning when running as the root OS user during operations that make changes.Issue: CT-2064 - The
tungsten_find_seqnocommand is now a wrapper fortpm find-seqno.Issue: CT-2059 - Enabling a custom backup script does not require it to be made the default option anymore, i.e. Setting
backup-methodto the custom backup script is not required anymore.Issue: CT-2039 - The
tungsten_skip_allcommand (along with aliastungsten_skip_seqno) now shows the full pendingExceptionMessage instead of just pendingError, and theMorechoice shows the pendingErrorEventId and the pendingError.Issue: CT-2030 - The
tps.plbackup tool now shows the available command-line arguments when the TAB key is pressed.Issue: CT-1246 - The
tpm ssh-copy-certcommand has been deprecated and removed in this release.Issue: CT-828 - Deprecated
tungsten_get_positionandtungsten_set_positionscripts have been removed.Issue: CT-638
Manager (1)
- Increased the default manager liveness heartbeat interval from 1s to 3s.Issue: CT-2095
Improvements, new features and functionality (11)
Command-line Tools (7)
- The
tungsten_get_portscommand now uses values based on values obtained fromtpm query valueswhen possible for the greatest output accuracy.Issue: CT-2008 - The
tungsten_get_portscommand now supports the/opt/continuent/tungsten/tungsten-connector/conf/interfaces.jsonfile, if found.Issue: CT-2003 - Shell command tab completion for Tungsten-specific commands has been updated to support recent additions and changes.Issue: CT-2057
- When in Connector Proxy mode, the
tpm reportcommand now displays the Direct and SmartScale status via Channel 2: Connector to DatabaseIssue: CT-2037 - The
tpm ask summarycommand has two new keys,isSmartScaleandisDirect, which are also available individually on the command line.Issue: CT-2035 - A new command,
tpm copy-keys, has been added to assist with the distribution of security-related files after an INI-based installation. This tool requires ssh access between the cluster nodes for the copy to work.Issue: CT-1910 - A new
thl tailcommand has been added, allowing you to view the live THL changes as they are generated.Issue: CT-405
Core Replicator (1)
- THL transfer protocol can now be changed dynamically. This can be done using the
trepctlcommand toolThis can also be done through the APIshell> trepctl setdynamic -property replicator.thl.protocol.client.serialization -value DEFLATEProperty replicator.thl.protocol.client.serialization successfully set to DEFLATEcurl --user tungsten:secret --insecure --request POST 'https://127.0.0.1:8097/api/v2/replicator/service/alpha/thl/inflight-protocol' -d'{"payloadType":"StringPayload","payloadVersion":"1","payload":{"value":"legacy"}}'{"payloadType": "StringPayload","payloadVersion": "1","payload":{"value": "THL inflight protocol is now set to legacy"}}Issue: CT-1862
Connector (3)
A new advanced listeners feature has been added to the connector for even greater control of client connectivity.
For more details, see "Advanced Listeners"
Issue: CT-2000Added user-based authentication to existing host-based authentication to restrict connections per host and per user.
For more details, see "Host-based Authentication"
Issue: CT-1978- Improved smart scale handling of session and global changes so they're all played against connected replica or in case of reconnection. As an example,
SET SESSION TRANSACTION READ ONLYwill be sent to both primary and replica connections so that a subsequentSELECT @@SESSION.transaction_isolationwill return the expected value, even if executed on a replica.Issue: CT-1600
Bug Fixes (16)
Command-line Tools (11)
- Fixed a tpm issue trying to restore an empty policy.Issue: CT-2074
- Suppressed wrong tpm errors with autodetect hosts.Issue: CT-2072
- The
tpm diagcommand will now locate and kill any remainingtpm diagchild processes on the calling host.Issue: CT-2068 - Fixes an issue when
tprovisionwould delete the MySQL PEM files in thedatadir.Issue: CT-2067 tpmnow builds affinity the same way in bridge and proxy modes.Issue: CT-2060- The
tungsten_find_eventscommand no longer fails with errorUndefined subroutine &main::infoIssue: CT-2058 - The
tpm validate-updatecommand now performs the delete-service checks properly.Issue: CT-2054 - The
tpm updatecommand no longer aborts with aDataservice was NOT removederror when service names with a hyphen are defined in the configuration. We strongly discourage the use of hyphens (-) in service names and recommend underscores (_) instead.Issue: CT-2052 - The
tpm ask keyscommand now lists all available keys properly.Issue: CT-2041 - The
tungsten_get_statuscommand now handles shunned nodes properly.Issue: CT-2026 - Fixed
rsyncavailability check in TPM to error out early when the executable is not found in the pathIssue: CT-1028
Core Replicator (3)
- Fixed an issue where status would fail if issued while a service was reconfiguring (in the middle of a setrole command for example).Issue: CT-2081
- Fixed an issue where an extracted JSON field could be invalid, with doubled commas in JSON arrays.Issue: CT-2049
- Fixed an issue that was occurring when an
ALTER USERis applied on a mysql instance that uses lower case identifiers.Issue: CT-2024
Connector (2)
- Fixed an issue in Dynamic Active-Active environments where smartScale would always read from the site with write affinity, even if a different site is specified for read-affinity.Issue: CT-2040
- Fixed an issue with
CLIENT_QUERY_ATTRIBUTESand/orCLIENT_DEPRECATE_EOFflags that would prevent fallback bridge mode to handle proxy connections properly.Issue: CT-2020
Tungsten Clustering 7.0.2
Release 7.0.2 contains a number of key bug fixes and improvements.
v7.0.2 was originally released on 9th Dec 2022 as build 145, and re-released on 9th Jan 2023 as build 161
Behavior Changes (7)
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:
Command-line Tools (3)
- Both the
tungsten_get_portsandtpm reportcommands have been updated to use thessOS command when thenetstatOS command is unavailable or deprecated.Issue: CT-2007 - The
check_tungsten.shwas deprecated in release 6.1.18 and has now been removed from this release.Issue: CT-1939 - The various user-xxxx.log files are no longer generatedIssue: CT-1914
Core Replicator (1)
repl-svc-extractor-multi-frag-service-detectionis now turned **ON** by default. Event shards are determined at extraction time. With fragmented events, the shard cannot be determined by only reading the first fragment, but needs to check the last fragment as well. With this setting turned OFF, there is no issue with pipelines that don't need it, i.e. no parallel apply downstream replicas. However, as this is done at extract time, THL contains this information, and adding or changing a replica using parallel apply could introduce issues.NoteIt can be disabled if you see a performance overhead but this should be done with caution. For Aurora<>Aurora Active/Active deployments it is essential that this property be left ON.Issue: CT-1959
Connector (1)
- Improved
tungsten show processlistby running underlying commands in parallel.Issue: CT-1569
Manager (1)
- A failsafe shunned cluster (Caused by a network split) will be auto recovered after the network connection is re-established.Issue: CT-241
Core Clustering (1)
Changed the behavior of the connector and manager upon local site failover:
No longer sending write traffic to the remote site unless the local site is fully offline. In case of local failover, the connector will now pause connections until a new primary is elected. This will avoid risks of out-of-order apply after local failover
Issue: CT-2009
Improvements, new features and functionality (25)
Command-line Tools (16)
- The
tungsten_reset_managercommand now supports the ability to simply print out the path or paths to be cleared, one per line via the-lor--listarguments.Issue: CT-1917 - The
tungsten_generate_haproxy_for_apiandtpm generate-haproxy-for-apicommands no longer call thePerl Data::Dumpermodule.Issue: CT-1915 - The
tungsten_generate_haproxy_for_apiandtpm generate-haproxy-for-apicommands now support using connector hosts in the backend definitions via-c, and extra backend flags to the backend hosts lines using-f.Issue: CT-1909 - Issue: CT-1869
- Issue: CT-2012
- The
tpm reportcommand now prints the hostname and listener ports where available when using the--extra|-xoption or the new--portsoption.Issue: CT-1969 - A new standalone status script has been added called
tungsten_get_statusthat shows the datasources and replicators for all nodes in all services along with seqno and latency.Issue: CT-1962 - The
tpm askcommand has five new variables available:dsrole&dsstatefor the current datasource, andtrrole&trstatefor the current replicator, andnodeinfowhich displays all 4 of the new variables.Issue: CT-1944 - The
tpm ask stagesandtpm ask allstagescommands have been added to display the Replicator stages for the current node (stages) and the stages for each role (allstages).Issue: CT-1943 - The
tpmcommand calls toglobhave been improved to be more strict and compliant.Issue: CT-1940 - The
tmonitorcommand now accepts cli args to specify the ports and will auto-configure the ports if they have been changed via the Tungsten configuration.Issue: CT-1919 The
tpm ask summarycommand now provides the coordinator host and the isCoordinator boolean if the Manager is running on that node.Also,
tpm asknow supports direct calls to coordinator,[isCoordinator|iscoordinator]and[isBridgeMode|isBridge|bridge|isbridge|isbridgemode].Issue: CT-1874- Added a new log file (
tungsten-replicator/log/data-drift.log) for data drift messages, i.e. :- an update statement was logged on primary, but did not update any row on replica
- a delete statement was logged on primary, but did not delete any row on replica
Issue: CT-1873 The
trepctl resetwill now show the last known applied seqno and latency.This information is stored on disk at regular intervals (10s minimum) so as not to overload the replicator, therefore the value can be shown as slightly old dependant on when the status command was issued.
By default, this feature is disabled. It can be enabled by setting the following parameter in the configuration :
svc-applier-last-applied-write-interval=20This will write current position to disk every 20 seconds. This information is also exported by the Prometheus exporter.
If the service is online, it will display the current value (the same as appliedLastSeqno and appliedLatency)
shell> trepctl statusProcessing status command...NAME VALUE---- -----appliedLastEventId : mysql-bin.000017:0000000151329854;70appliedLastSeqno : 999appliedLatency : 347707.0...lastKnownAppliedLatency: 347707.0lastKnownAppliedSeqno : 999...Issue: CT-1823A new
-coption is now available with sometrepctlcommands that can be used in conjunction with the-roption to indicate the number of times to refresh before automatically terminating. For example, the following command:shell> trepctl perf -r 3 -c 10Will refresh the output every 3 seconds, 10 times.
Issue: CT-679rsyncis now an option intprovision, in addition to using xtrabackup and mysqldump. To use rsync, specify-m rsync.Using rsync by default will provision a replica in 2 passes:
- The first pass will live copy (seed) the replica from the source.
- The second pass will quiesce the source and run the rsync again, resulting in shorter down time than a single pass rsync
Issue: CT-338
Core Replicator (4)
Added a new feature that enables pausing a replicator stage for some amount of time.
This will pause the given stage for 100 seconds.:
trepctl pause -stage thl-to-q -time 100This will pause the stage indefinitely (or until restart, etc) Add -y to avoid the prompt message whether you are sure.
trepctl pause -stage thl-to-qFor the previous 2 commands, running a pause command again will override the previous command.
This will resume the suspended stage (Note that if the stage is not paused, this will have no effect):
trepctl resume -stage thl-to-qNotePlease note this pause does not survive a replicator restart or a service offline/online.Issue: CT-1912Added a way to configure the maximum number of rows that can be grouped together when applying row based events for multiple insert or delete statements.
For these properties to be in effect, you must ensure that
optimize-row-events=trueis either explicitly set in your configuration, or not present (since it will be enabled by default)For example, the following settings will limit the number of inserted or deleted rows applied at once to 10:
optimize-row-events-limit-insert-rows=10optimize-row-events-limit-delete-rows=10The default values if not specified will be 50 for inserts and 100 for deletes. Note that for deletes to be optimized, the affected table MUST have a single column PK.
Issue: CT-1980- A new replicator role (thl-applier) has been added to allow a replicator service to apply its locally available THL, without pulling from a remote hostIssue: CT-1936
- Per-service tuning of the replicator thl directory is now possible for multi-service replicator-only installs as well as for clustering. The given value should be the base directory, to which tungsten will add the service name. For example, the following entry in the tungsten.ini:Would result in the THL being placed in /drv1/thl/alpha[alpha]......thl-directory=/drv1/thl...NoteUpdate of thl directory is only available when tpm is called from the staging installation directory, **NOT** from the running directory.Issue: CT-1927
Connector (3)
- Added logging configuration example to print load balancers activityIssue: CT-1966
- Two new commands have been introduced to
cctrlto provide better insight and control of the connectors. These are:- datasource <dsname> connections [-l] This command displays the current number of connections running to the given node through connectors.
- datasource <dsname> drain [optional timeout] This command will prevent new connection to be made to the given data source, while ongoing connection remain untouched.
Issue: CT-1949 - The
connector graceful-stopcommand now supportssystemdservice manager properly. Theconnector stopcommand now takes an optional argument that will make it a graceful stop. Ifconnector stopis run without the parameter, it will stop the connector immediately. If a positive number of seconds is passed, it will wait, at most, this timeout for connections to disconnect (refusing new connections), after which it will force close all connections and shutdown the connector.connector graceful-stopbehavior is unchanged: without the parameter, the connector will wait "forever" for connections to disconnect. A positive timeout in seconds can be passed to sever connections after the given delayIssue: CT-1921
Manager (1)
- Added a new option to TPM
manager-replicator-offline-timeoutthat configures the timeout for the manager to wait until the replicator goes offline. When parallel applier is in use the default timeout was too low, so it’s now user configurable so that it can be adjusted to suit different topologies. If not supplied, the default is 180 (3 minutes). This value should be sufficient in most use cases.Issue: CT-1892
API (1)
- New logs files have been added for the REST API, these are as follows:
- service_logs/connector-api.log
- service_logs/manager-api.log
- service_logs/replicator-api.log
Issue: CT-1983
Bug Fixes (30)
Installation and Deployment (4)
- Fixes issues where fixed properties and filters passed to tpm in service stanzas were not being configured correctlyIssue: CT-1463
- The
tpm installandtpm updatecommands now properly support thethl-portoption for cross-site subservices.Issue: CT-1953 - No longer using Tanuki wrapper functionality to print jvm version, which was creating defunct java processes at startup, now using internal code.Issue: CT-1876
- Issue: CT-813
Command-line Tools (10)
- The
tpm diagcommand now passes when the nodename defined in thetungsten.iniis the shortname, and DNS returns the FQDN.Issue: CT-1908 - Fixes an issue that prevented
ddlscanfrom connecting to MySQL if SSL was enabled.Issue: CT-1808 - TheNoteThis fix was released in Tungsten Clustering and Tungsten Replicator 7.0.2 Build 161.
tpmcommand checks for the existence of themysqlcommand-line client when installing/upgrading. The process will no longer abort with an error on non-MySQL targets such as heterogeneous replicator appliers, or Active-Witness hosts.Issues: CT-1924, CT-2018 - Both TungstenAPI and
tpasswdnow properly update .passwords.store.orig backup file so that proper manipulation of passwords won't triggertpm updatefailureIssue: CT-1981 - The
tpm mysqlcommand no longer aborts with an access denied error on CentOS 6.Issue: CT-1977 - The
tpm mysqlcommand will now gracefully handle being run on a non-database node.Issue: CT-1946 - Fixes an issue that prevented
dsctlreacting to MySQL if SSL was enabled.Issue: CT-1928 - The
tpm diagcommand now gathers themysql.logfile when SSL is enabled in the server.Issue: CT-1920 - The
tpmcommand now allows any case for section entries (i.e. [alpha_FROM_beta]) in the INI files.Issue: CT-1879 - The
tungsten_skip_seqnocommand no longer fails when-iis specified, and now properly filters using--filterwhen there is a long error message.Issue: CT-1877
Backup and Restore (1)
- The
cluster_backupscript will no longer backup a replica if the replicator is in an ERROR state.Issue: CT-1036
Core Replicator (6)
- Fixed an issue where filtered events would trigger a useless update to the service trep_commit_seqno table while it is overwritten anyway once the last statement of the applied event is done, just prior to committing the whole block.Issue: CT-1931
- Fixes an issue that prevented geometry datatypes with SRID from being replicated.Issue: CT-1904
- Fixed a possible issue when recovering an old primary as a replica after failover when parallel apply is enabled, that could lead the replica to be unable to come online and require a reprovisioning of this replica.Issue: CT-1890
- Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) when parallel apply is enabled. This is a rework of CT-1243.Issue: CT-1684 - Fixed a parsing issue that would prevent the replicator from correctly detecting a
CREATE TABLEstatement withSTART TRANSACTIONIssue: CT-1987 - Fixed an issue where the replicator would hang after applying a
DROP TABLEevent, that originally failed on the primary, but got logged into the binlog.Issue: CT-1973
Filters (1)
- Fixed an issue where the
dropsqlmodesfilter would fail to remove invalid sql modes from a multi-statement eventIssue: CT-1993
Connector (3)
- Fixed connector logging configuration to show hostname and class printing logsIssue: CT-1965
- No longer printing warning
"SequenceException: Parents differ"when canceling connections of a composite data serviceIssue: CT-1964 - Connector now auto detects default authentication plugin by retrieving MySQL data source variable
default_authentication_pluginrather than just using MySQL server versionIssue: CT-1926
Manager (2)
- A bug has been fixed that, in a few very rare cases, would allow replicas to continue to pull and apply THL from a failed primary whilst a failover was in the process of electing a new primary. This resulted in failovers being unable to complete fully. Whilst the new primary would be online and functioning, existing replicas in the cluster could experience errors due to THL discrepencies between the old and new primary nodes.Issue: CT-1986
- The
cctrlcommanddatasource slavenow sets the replicator role correctly. Previously, only the datasource role would change.Issue: CT-1882
API (3)
- The REST API call
/api/v2/manager/control/service/<service>/datasource/<datasource>/slavenow sets the role of the replicator correctly.Issue: CT-1975 - Calls to
/api/v2/manager/cluster/statusnow return properly when a peer cluster is fully offline or unreachable.Issue: CT-1945 - Fixed REST API
/api/v2/manager/control/service/<service>/switchcall. It will not switch anymore to a shunned node.Issue: CT-796
Tungsten Clustering 7.0.1
Release 7.0.1 is the first minor release for the v7 release. This release contains a number of new features, minor bug fixes and a few key behavior changes, but importantly contains a critical bug fix for environments that use mixed-case table and database names, that could cause replication failures.
Customers already running v7.0.0 in production environments should upgrade to this release as soon as possible
Behavior Changes (10)
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)
- A better error message is now provided when keystore password and enclosed private key password don't match.Issue: CT-1853
Command-line Tools (7)
- The
tungsten_find_orphanedcommand now places the log file in$CONTINUENT_ROOT/service_logs/, not/tmp/Issue: CT-1866 - The
tpm generate-haproxy-for-apidefault starting port is now 8091.Issue: CT-1865 - The
tmonitorcommand now calls sudo internally as needed, removing the need for thetmonitorcommand to be run with sudo for the install and remove sub-commands.Issue: CT-1846 - The
tpm ask summarycommand is now sorted by key when the PerlTie::IxHashmodule is installed.Issue: CT-1820 - The
cctrloutput now displays the SSL status of the group communication and the connection to the database.$ cctrlTungsten Clustering 7.0.0nyc: session established, encryption=true, authentication=truejgroups: [un]encrypted, database: [un]encryptedIssues: CT-1785, CT-1832 - The
tpm diagcommand now gathers the output of thetpm ask summarycommandIssue: CT-1827 - The following commands which call
cctrlnow support the pass-through-t secondstimeout argument which specifies how longcctrlwill wait for a connection to the Manager process before aborting:- check_tungsten_latency
- check_tungsten_online
- check_tungsten_policy
- check_tungsten_services
- tungsten_show_processlist
- zabbix_tungsten_latency
- zabbix_tungsten_online
- zabbix_tungsten_progress
- zabbix_tungsten_services
Issue: CT-1822
Core Replicator (1)
- The default value for the tpm property
svc-fail-on-zero-row-updatehas been changed fromwarntostopWarningThis is a significant change in behavior and could cause replicators, specifically cross-site replicators, in an Active/Active environment to stop and error more frequently.
To maintain original behavior you will need to add this property with the value of
warnto your configuration, providing you fully understand the inherent risk of ignoring such warnings.Issue: CT-1856
API (1)
- The manager REST API
/api/v2/manager/statuscall now returns information regarding to security.Issue: CT-1830
Known Issue (1)
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
Improvements, new features and functionality (13)
Command-line Tools (8)
- The
tapicommand will now output service names with the new option--includeServiceName, or if there is more than one service name found.Issue: CT-1860 - Added JMX encryption and authentication status to
trepctl -verboseand connector command outputsIssue: CT-1813 - Added connector<->manager link encryption status in the output of
router * statuscommand incctrlIssue: CT-1811 - The
tapicommand now auto-detects the protocol, either http or httpsIssue: CT-1803 - The
tapicommand now supports the creation and modification of multiple APIv2 admin users. Two new cli args have been added:--create-userand--create-pass.Issue: CT-1801 - A new
tpm reportsub-command has been added. By default,tpm reportwill generate a security report for all available communication channels on a per-node basis. The purpose oftpm reportis to provide easy access to all of the settings that pertain to a specific topic. The default (and only) topic at this time is the security stance. More topics will be added over time.Issues: CT-1793, CT-1857 - The new command
tungsten_upgrade_managerwill help clear specific cached SSL values, to be used only when specified by Continuent Support.Issue: CT-1788 Added the ability to turn auto recovery on or off dynamically, removing the need to run
tpm update.This is done by running the following command:
shell> trepctl -service servicename setdynamic -property replicator.autoRecoveryMaxAttempts -value <number>NoteThe service must be offline before changing the propertyIssue: CT-1088
Core Replicator (1)
- The
thl listcommand now displays an approximate field size in bytes for row-based replication.Issue: CT-1847
Connector (1)
- Added a
connector modecommand to print which mode the connector is running in, either "bridge" or "proxy"Issue: CT-1799
Security (1)
- Replaced official log4j library with a secured version in which all vulnerable classes have been removed. This prevents exposing the software following a (user) misconfiguration of the log4j propertiesIssue: CT-1810
API (2)
- Added new top level REST API call to display RMI SSL status, run the following API call :shell> curl https://127.0.0.1:8097/api/v2/rmiSecurityIssue: CT-1812
- Added a way to retrieve service properties through the API, for example, to check a specific service parameter, run the following API call :shell> curl https://127.0.0.1:8097/api/v2/replicator/service/alpha/properties?filter=replicator.global.db.sslEnabled{"payloadType": "PropertiesListPayload","payloadVersion": "1","payload": {"replicator.global.db.sslEnabled": "false"}}Issue: CT-1802
Bug Fixes (27)
Installation and Deployment (3)
tpmwould fail on keystores containing special characters in alias names.Issue: CT-1852- The
tpm updatecommand now properly handles v7 -> v7 upgrades.Issue: CT-1815 deployallscript now properly displays the executable prefix for restarting services, typically mm_treplicator in Multi-Site/Active-Active replicator-only installs, as well as the full path to component binariesIssue: CT-1835
Command-line Tools (13)
undeployallscript would not properly uninstallsystemdservices on some distributions including amazon linux.Issue: CT-1845replicator start offlinewould not properly pass the offline argument tosystemdscripts when installed throughdeployall.Issue: CT-1836- The
tapicommand now auto-switches protocol (http or https) properly.Issue: CT-1829 TPM would fail to validate data sources when using
ssl-capath [directory]rather thanssl-ca [file]inmy.cnf.This fixes only the validation part, automated truststore creation by TPM will not be possible at this point, a full
tungsten-truststore.tswill have to be passed throughjava-truststore-pathIssue: CT-1826- The
tpm updatecommand now properly determines services to be deleted.Issue: CT-1825 - Fixed an `Undefined subroutine` call error in
tapi --createIssue: CT-1798 - The
tpm policycommand now returns the proper policy in a composite cluster. There is also a new cli argument,--all, to show the policy for all cluster services.Issue: CT-1787 - The
tpm updatecommand now returns clusters to the proper mode (i.e.MAINTENANCE or AUTOMATIC) for staging-method upgrades (INI not affected).Issue: CT-1784 - Worked around a ruby issue where DNS name resolution was sometimes preferred to file-based resolution in TPM. The following logic now applies: first trying file-based host name resolution, upon failure try DNS, then through ping commandIssue: CT-1653
tpmnow properly reports errors upon timeout executing commands. Typically, when a host is down, when upgrading or installing,tpmwill now properly report that pinging this host failed.Issue: CT-1819- The
tpm connectorcommand now properly passes the -e arguments to themysqlcommand.Issue: CT-1816 - Improves the
tpm diagcommand so that it waits 2 seconds for replicator thread dump to complete.Issue: CT-1792 - The
tpm updatecommand no longer aborts during a staging deployment when the actual hostname does not match what is configured for the node names intpmIssue: CT-1791
Backup and Restore (4)
- Incremental backups can now be restored more than once.Issue: CT-1850
- Restore will now succeed even if only one incremental backup has been created.Issue: CT-1842
- During the backup/restore process the MySQL certificates are kept intact.Issue: CT-1841
- Fixed an issue with latest xtrabackup 8.0.28Issue: CT-1838
Core Replicator (4)
- Fixed a
NullPointerExceptionthat could happen if a replicator was put offline during startup. This had mostly no consequence except the exception being logged.Issue: CT-1863 - Fixes issues with PrimaryKeyFilter:
- It could fail from correctly fetching primary key columns for tables with mixed upper and lower case letters in table names
- Alter user statements could make it fail
Issue: CT-1861 tpm updatewould fail with message"The host is configured to be '' but it is currently operating as a 'master'"when a dynamic replicator configuration file is foundIssue: CT-1848- Fixed the EnumToString and pkey filters to renew their database connections (every hour by default). This can be changed with the following properties:property=replicator.filter.enumtostring.reconnectTimeout=3600property=replicator.filter.pkey.reconnectTimeout=3600Issue: CT-1786
Connector (2)
- An exception could occur while forcing shutdown of router gateways.Issue: CT-1779
- Fixed the output of
connector cluster statusby adjusting log4 appender.Issue: CT-1778
Manager (1)
- Fixed an issue where the command
system summaryissued incctrlwould hang the managers in the cluster.Issue: CT-1849
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
Tungsten Replicator 7.2
Tungsten Replicator 7.2.1
Behavior Changes (3)
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)
Command-line Tools (2)
- The
tprovisioncommand now deletes only binary log files listed in the index if the binary log directory is not the same as the mysql data directory.Issue: CT-2631 - The
tprovisioncommand no longer requires the external tooltungsten_get_mysql_datadir. Additionally, the tool has been significantly re-factored for greater stability, performance and functionality.Issue: CT-2597
Improvements, new features and functionality (6)
Installation and Deployment (1)
- New feature:
tungsten.inibackup and history. When enabled with thetpmflagtungsten-ini-backup(false by default), thetpm updatecommand will create a copy of the current INI file (default:/etc/tungsten/tungsten.ini) as$CONTINUENT_ROOT/history/ini/tungsten.ini.YYYYMMDDhhmmssWhen enabled with thetpmflagtungsten-ini-backup, thetpm installcommand will create the first history file and the history subdir, if needed. A new sub-command,tpm ini diffhas been added to compare the current INI file (default:/etc/tungsten/tungsten.ini) and a history file (default: latest history file found), and can also accept--stamp [YYMMDDhhmmss]to specify which file to diff by timestamp. A new sub-command,tpm ini backuphas been added to manually invoke the same copy that thetpm updatecommand does. Added two newtpmconfiguration flags:tungsten-ini-backup(default: false) : Enable thetungsten.iniautomatic backup feature duringtpm installandtpm update
tungsten-ini-history-dir(default:$CONTINUENT_ROOT/history/ini) : Define the location fortungsten.inibackup/history filesIssue: CT-2635
Command-line Tools (4)
- New feature
tpm copy --examplewill show the manual steps taken bytpm copy --initto copy the cluster certificate files to other nodes.Issue: CT-2636 - A new subcommand
tpm ini defaultshas been added to list anytpmoption that actually has a default value defined in thetools/tpm_options_db.txtfile, along with the default value. Additionally, documentation has been updated to show defaults and options for all properties where applicable.Issue: CT-2634 - New tpm flag
--add-sslnow allows to force generate certificates when doing an upgrade. This allows configurations with security disabled to be upgraded to 8.0.1 AND switched to using SSL/TLS communications at the same time. Example:shell> tools/tpm update --replace-release --add-sslIssue: CT-2619 - New Feature:
tpm ini upgrade --ini [fullpath]will display all changes to the specified INI file that would be performed by the tpm update commands during a version upgrade. Adding the--writeargument would apply the changes to the specified file as well.Issue: CT-2601
Core Replicator (1)
- The replicator now includes real-time performance monitoring to track and identify slow database operations during replication. The feature provides visibility into transaction, event, and statement execution times with configurable thresholds for alerting. For more information on configuring and using this feature, see "The trepctl perflog Command"Issue: CT-2629
Bug Fixes (9)
Installation and Deployment (1)
- Fixed an installation issue when using MariaDB 10.6 with SSL. Previously, this would have failed to install showing an error message like :Unable to connect to the MySQL server using tungsten@db1:13306 (WITH PASSWORD) (MySQLLoginCheck)Issue: CT-2624
Command-line Tools (3)
- The
tprovisioncommand now correctly honors the mountpoint override flag when not using methodrsync.Issue: CT-2651 - The
tpm cert gencommand now works during version upgrades when a security configuration file may not have existed before (passwords.store).Issue: CT-2618 - The
tungsten_send_diagnow uses AWS Signature Version 4 to upload files.Issue: CT-2589
Backup and Restore (1)
- Fixed an edge case issue with xtrabackup running against the primary node and MySQL 8+.NoteGenerally we do not recommend taking backups from primary nodes, and instead backups should be taken from replicas.Issue: CT-2602
Core Replicator (2)
- With recent SELinux changes, MySQL might be unable to read from
/tmp. This directory is used when applying aLOAD DATA INFILEcommand that was logged using Statement Based Replication (warning : this is considered as unsafe by MySQL). In order to avoid any issues, a new setting has been added to indicate a directory to use :svc-applier-ldi-temp-dir=/tmp/mysqltmpIn this case, mysqltmp is a new subdirectory that should be set with the following permissions and SELinux contextAnother improvement was also added to force the use of LOCAL when applying amkdir -p /tmp/mysqltmpsudo chown -R mysql: /tmp/mysqltmpsudo chmod -R g+r /tmp/mysqltmpsudo semanage fcontext -a -t mysqld_db_t '/tmp/mysqltmp(/.*)?'sudo restorecon -Rv /tmp/mysqltmpLOAD DATA INFILEcommand that was logged using SBR. This is useful when applying to a remote MySQL host. To enable, set the value of thesvc-applier-ldi-use-local=true(default : false)Issue: CT-2603 - Fixed an issue where timestamp columns would not match between source and target when using the
privileged-slave=falseproperty to replicate from a source database using MIXED binlog mode.Issue: CT-2594
Core Clustering (1)
- Recent Java versions changed a default that now enable endpoint identification in secured RMI calls. As a quick turnaround, this release restores the default of disabling identification in various Tungsten scripts.Issue: CT-2666
Security (1)
- Upgraded jackson libraries to latest version to plug potential security holes.Issue: CT-2655
Tungsten Replicator 7.2.0
Deprecation Notices (1)
The following features/tools have been deprecated from this release and will be removed in future releases. Any self written scripts that utilise these features should be updated.
Command-line Tools (1)
tungsten_health_checkandtungsten_provision_thlhave been deprecated and will be removed in a future releaseIssue: CT-2506
Behavior Changes (7)
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 (2)
tpm validatenow verifies localhost is defined in/etc/hostsIssue: CT-2564- All Tungsten Components now use log4j version 2.Issues: CT-1410, CT-1412
Command-line Tools (4)
- The
tpm cert infocommand now provides better error messages when a specifiedtypeSpecfile does not exist.Issue: CT-2530 The
tpm askcommand now returns the appropriate values for keys:stagingdir,stagingpath,staginghostandstaginguser.Additionally, the
tpm ask stagingcommand will return a JSON structure with all values. All values are the same as the output of thetpm query-stagingcommand, just presented differently for easier machine usage.Issue: CT-2510- Removed
sigtrapmodule dependency fromtungsten_find_orphaned.Issue: CT-2451 - The
tungsten_send_diagcommand has been updated with new security keys and the ability to accept security keys on the CLI.Issue: CT-2438
Security (1)
- As of version 7.2.0 onwards, when providing custom keystores, the alias of the mysql certificate must be provided as
java-mysql-alias=xxxand must have the same name in bothtungsten_keystoreandtungsten_connector_keystore.Issue: CT-2598
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Security (1)
tungsten_mysql_ssl_setupincorrectly generates self-signed CA certificates on RHEL9 Linux flavors.This will be fixed in v7.2.0 and v8.0.1
Issue: CT-2581
Improvements, new features and functionality (9)
Command-line Tools (5)
- The
tpm askcommand will now convert values0andfalsetoNoand values1andtruetoYesas human output when given--humanor-ncli args.Issue: CT-2559 - The
tpm inicommand now handles all new tpm options.Issue: CT-2543 - Issue: CT-2499
- The
tpm certcommand will now handle public key files. The commandtpm cert gen publicwill create$CONTINUENT_HOME/generated/tungsten_public.jksfrom the$CONTINUENT_HOME/share/tungsten_keystore.jksfile and thetpm cert list publiccommand will show the contents, etc.Issue: CT-2434 - The
tpm askcommand now supports the-s|--serviceoption fordsrole,dsstate,trroleandtrstatekeys. The option alias for--shortis now-S(capitalized), was previously lower-case. Example:tpm ask dsrole --service alphaIssue: CT-2400
Core Replicator (2)
- The
trepctl perfoutput has been improved when parallel apply is enabled to show granular statistics per channel.Issue: CT-2517 - Replicator now recognizes the new MySQL 8.4
show binary log statussyntax (as well asshow master status) and will execute the configured replacement request appropriately.Issue: CT-2291
Security (1)
- Tungsten can now hold two MySQL database SSL Certificates, allowing rotation of certificates without the need for downtime. A new command line tool,
rotate_certs, is provided to aid in this process.Issue: CT-2511
Monitoring (1)
- Additional prometheus metrics have been added to the Replicator:
tungsten_replicator_service_online_duration_secondsgauge show duration in seconds since the replicator was put online.tungsten_replicator_task_totalcounter shows statistics by service, stage and task as shown in the following example:In this case, this is the extract time spent by the task #1 of the q-to-dbms stage of the alpha service. This is similar to the new trepctl perf output.tungsten_replicator_task_total{service="alpha",stage="q-to-dbms",task_id="1",stat="extract_time",} 250.015
Issue: CT-2514
Bug Fixes (25)
Installation and Deployment (2)
tpmflagsdatasource-log-directoryandrepl-direct-datasource-log-directorywill now use the value of each other as a default if only one is specifiedIssue: CT-2425- The
tpm updatecommand no longer displays the message"common::diffPasswordsDotStore: No custom source passwords.store file defined - SKIPPING"Issue: CT-2406
Command-line Tools (20)
- The
tapicommand no longer issues an error when the quantity of command-line arguments is larger than expected.Issue: CT-2580 - The
tpm purge-thlcommand now works properly when run against environments where there are multiple THL files, but the lowest seqno returned exists in the very first THL file.Issue: CT-2561 - The
tpm cert infocommand now properly handles all available typeSpecs.Issue: CT-2532 - The
tpm cert aliases --runningcommand now properly handles thetls_passwordstoreandjmx_passwordstoretypeSpecs.Issue: CT-2512 - Fixes an issue where
dsctl setwith the-resetoption could show warnings when run several times in a row, as shown:WARNING: Could not execute query DROP TABLE `tungsten_alpha`.`heartbeat` : Unknown table 'tungsten_alpha.heartbeat'Issue: CT-2502 - The
tungsten_send_diagcommand now handles curl andaws s3errors separately and displays the proper message back.Issue: CT-2488 - During a
tpm uninstall, when skipping data services not managed locally,tpmwill now print a notice rather than a warning, since this is the expected behavior.Issue: CT-2479 - The
tpm ask versionandtpm ask versionscommands now display values.Issue: CT-2475 executable-prefixis now applied to thedeployallandundeployallscript names. For example, whenexecutable-prefix=mm,deployallwould be namedmm_deployall.Issue: CT-2467- The
tpm keepcommand is now properly called bytpm uninstall, and a regression in a call to the mysql cli has been fixed as well.Issue: CT-2462 The tpm updatecommand now properly identifies and removes services with mixed-case service names.Issue: CT-2426tpmnow properly detects MariaDB default settings.Issue: CT-2424- The
tapicommand now accepts non-standard ports on the command line, and also properly accepts a user/password pair on the CLI.Issue: CT-2420 - The
tapicommand now creates proper URL's for these standard endpoints when-C,-Mor-Rare specified along with one of the following strings:ping,tungstenVersion,createAdminUser,deleteAdminUser,listAdminUsers,rmiSecurityoruser.Issue: CT-2391 - The
tpm check portsandtpm check ports -ccommands are now able to handle replicator-only nodes. By default, it will automatically try to discover the node type, and you may manually specify the node type with-r|--replicatoror-c|--cluster.Issue: CT-2356 - The
tpm diagcommand no longer displays a NOTICE for missing optional files.Issue: CT-2355 - The
tpm uninstallcommand now properly calls thetpm keepcommand for standalone Tungsten Replicator deployments.Issue: CT-2436 - The
tpm diagcommand now correctly connects to an off-host database when run under standalone Tungsten Replicator.Issue: CT-2402 - The
tpm diagcommand now gathers:tungsten-replicator/log/replicator-api.log
Issue: CT-2397 - The
tpm updatecommand now properly deletes services when run in a standalone Tungsten Replicator deployment.Issue: CT-2383
Core Replicator (2)
- The replicator will now properly rollback an XA transaction in case of failure.Issue: CT-2410
- Fixed an issue that would wrongly flag a SQL statement starting with a
#comment as bidi_unsafeIssue: CT-2405
MongoDB Replication (1)
- The replicator now reads the TLS certificate for Mongo Atlas connectivity from the correct keystore (
tungsten_truststore.ts).Issue: CT-2227
Tungsten Replicator 7.1
Tungsten Replicator 7.1.4
Behavior Changes (3)
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:
Command-line Tools (2)
- Issue: CT-2332
- Global calls to sudo in
tpmare now sensitive to thetpmoption and aliasroot-command-prefix/enable-sudo-accesswhen set to falseIssue: CT-2310
Monitoring (1)
- Tungsten monitoring scripts no longer rely upon the
bccommand, removing the dependency because recent distros do not havebcavailableIssue: CT-2371
Improvements, new features and functionality (6)
Command-line Tools (5)
- The
tpm diagcommand now gathersshow global status;from the MySQL serverIssue: CT-2387 - The
tpm diagcommand now gathersservice_logs/tprovision.logandservice_logs/trestore.log, if they existIssue: CT-2385 - The
tpm diagcommand now gathers the output ofcrontab -l.Issue: CT-2344 - Issue: CT-2318
- The
tpm diagcommand now gathers the mount and hostname commands.Issue: CT-2314
Filters (1)
- A new
maskDatafilter has been added, allowing basic level data obfuscation capabilities.Issue: CT-849
Bug Fixes (8)
Command-line Tools (5)
- Issue: CT-2373
- The
tpm certcommand now easily imports certificate bundles into various files, and correctly reads a file name as the propertypeSpecin various subcommands.Issue: CT-2369 - The
tpm copy --doinicommand now functions properly from the staging directory before the initial installation of Tungsten.Issue: CT-2362 - The
tungsten_mysql_ssl_setupcommand no longer tries tolsany .p12 file unless--p12has been given on the cli.Issue: CT-2357 - The
tpm check inicommand now properly handlesproperty=INI entries.Issue: CT-2352
Core Replicator (3)
- Fixed a bug in latency calculations that in some circumstances could appear as though the latency on the applier stages was "flapping".Issue: CT-2386
- Fixed an issue where the replicator was not able to build a valid DELETE statement, when
enable-heterogeneous-service=true.Issue: CT-2379 - Fixed a bug preventing the auto-recovery feature to put the service back online if it failed to connect to database during a retryIssue: CT-2377
Tungsten Replicator 7.1.3
Behavior Changes (7)
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:
Command-line Tools (7)
- Improved support for the
--nosudoargument and the sudo command intpm diagIssue: CT-2308 - The
tapicommand option now prints a much easier-to-understand URL when specifying the-UoptionIssue: CT-2279 - The
tpm certcommand now accepts an absolute path filename as a typeSpecIssue: CT-2268 - The
tpm certcommand now accepts--basedirand--certsdiras aliases for--dirto specify the target directory for generationIssue: CT-2267 - The
tpm diagcommand now checks themy_print_defaultscommand for the MySQL error log value if the direct querySELECT @@GLOBAL.log_error;fails to gather a value for any reason.Issue: CT-2229 - The
tpm updatecommand now checks for a custompasswords.storefile in the INI and exits with an error if the running file does not match the custom file.Issue: CT-2216 - The
tpm certcommand now properly accepts the full file name as a typeSpec.Issue: CT-2213
Improvements, new features and functionality (6)
Installation and Deployment (2)
- Oracle Linux 9 has been certified for Tungsten products from version 7.1.3.Issue: CT-2370
- Added support for Ruby 3.2.Issue: CT-2296
Command-line Tools (4)
- Added new
tpm check portscommand which will check port connectivity for standard Tungsten ports to a specified hostIssue: CT-2292 tpasswdutility gets a new switch-Cor--compare.toallowing password store file comparison fortpm updatepurpose.Issue: CT-2278- A new command has been added,
tpm check ini, that will validate all options present in atungsten.inifile. This command can be run prior to installation.Issue: CT-2240 - Improved help text in the
tpm certcommand.Issue: CT-2222
Bug Fixes (6)
Installation and Deployment (1)
- The
tpm updatecommand now passes the verbose and debug flags properly totpm delete-service.Issue: CT-2299
Command-line Tools (4)
- The
tpm certcommand now works correctly with theshare/tungsten.envconfiguration file prior to installationIssue: CT-2255 - Issue: CT-2237
- Issue: CT-2224
- Issue: CT-2181
Vertica Replication (1)
- Fixed an issue with Vertica batch applier failing to correctly handle blob data containing the '\' (backslash) characterIssue: CT-2316
Tungsten Replicator 7.1.2
Behavior Changes (1)
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)
- The
systemdstartup scripts will now have a dependency on the time-sync service (if available) being started before tungsten components.Issue: CT-2257
Improvements, new features and functionality (4)
Installation and Deployment (1)
- A new INI option has been added
rest-api-admin-passwordwhich acts as an alias for the existingrest-api-admin-passoption.Issue: CT-2246
Command-line Tools (2)
- Issue: CT-2243
- A new command,
tungsten_mysql_ssl_setup, has been introduced to create all needed security files for the MySQL database server.tungsten_mysql_ssl_setupwill act as a direct replacement for themysql_ssl_rsa_setupcommand which is not included with either Percona Server or MariaDB. This command will now be called bytpm cert gen mysqlcertsinstead ofmysql_ssl_rsa_setup.Issue: CT-2188
Filters (1)
- A new filter,
binarystringconversion, was added to provide a way to convert varchar data from one charset into another.Issue: CT-981
Bug Fixes (5)
Core Replicator (3)
- Event extraction can sometimes generate an empty fragment (for a multi fragment transaction). This in turn can lead to bad shard detection. While empty fragment is expected, shard detection will now use the last non-empty fragment.NoteThis bug was detected in v7.1.2 build 42, and fixed in v7.1.2 build 81Issue: CT-2284
- Fixed an issue caused by a MySQL behavior change in how a
DROP TABLEis logged in the binlog, that made the replicator unable to identify correctly if the query had tungsten metadata in it.Issue: CT-2269 - Fixed an issue where the shard name of an event could be badly identified, which could potentially lead to deadlocks when parallel applier was enabledIssue: CT-2266
Heterogeneous Replication (2)
- Fixed an issue when using the convertstringfrommysql Filter in heterogeneous deployments, that could show an error while processing an INSERT event after the PrimaryKey Filter added key specifications to it.Issue: CT-2260
- Fixes a bug in heterogeneous deployments that prevented CHAR and BINARY data types replicating correctlyIssue: CT-2258
Tungsten Replicator 7.1.1
Behavior Changes (1)
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:
Command-line Tools (1)
- Issue: CT-2119
Bug Fixes (4)
Installation and Deployment (1)
- Installations will now succeed on hosts running Ruby 3.xIssue: CT-2196
Command-line Tools (3)
- The
tpm mysqlcommand now properly accepts the-eargument as a shortcut for the--executemysql cli client argument.Issue: CT-2217 - The
tpm updatecommand no longer fails to display foreign-owned dot-files and directories.Issue: CT-2190 - The
tpm reportcommand now correctly displays security info tpm options as blank when none exists.Issue: CT-2176
Tungsten Replicator 7.1.0
Behavior Changes (2)
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:
Command-line Tools (1)
- The
tpm copy-keyscommand has been renamed totpm copyand a new command has been createdtpm cert copywith the same functionality.Issue: CT-2186
Backup and Restore (1)
- When performing a provision via
rsync,tprovisionwill now sleep for 2 seconds after locking tables to make sure all transactions have finished writing to disk.Issue: CT-2169
Improvements, new features and functionality (16)
Installation and Deployment (2)
- Added tpm flag
deploy-systemdas a more meaningful alias toinstallIssue: CT-2152 - Running
tpm uninstallwill now save all of the Tungsten database tracking schemas for later use. There is also a newtpm keepcommand, which allows the tracking schemas to be saved to disk at any time in multiple formats (.json, .dmp and .cmd)Issue: CT-2131
Command-line Tools (5)
- The
tungsten_send_diagcommand has a new argument--allwhich will tell thetpm diagcommand to gather all hosts with-a, and this replaces the previous method for gathering all hosts fortungsten_send_diag,--args '--all'Issue: CT-2150 - The
tpm diagcommand now supports the--skipsudoand--nosudoarguments to prevent operations from using the sudo command. Using this option may result intpm diagskipping/failing various gathers due to a lack of access.Issue: CT-2146 The
tpm reportcommand now displays the security-specific information for each channel shown, including file paths and tpm options. Security information and tpm options for each channel will also be shown when--extrais used with--list.Also added the
tpm ask certscommand with expiry and sha2566 info per alias, along with thetpm ask certtpmandtpm ask certlocationscommands with reference information about thesecurity.propertiesfile.Added help text for
tpm ask --longwhich shows the key/variable name along with the value. Thetmonitor -t testcommand now shows only the actual Tungsten-specific metrics lines.Added
tmonitor -T testto show metrics help and headers along with actual tungsten_* metrics linesIssue: CT-2088A new command
tpm certhas been added to aid in the creation, rotation and management of certificates for all areas of Tungsten.Known limitations: Percona 5.6, and all versions of MariaDB do not provide the
mysql_ssl_rsa_setupcommand required bytpm cert gen mysqlcerts.Issue: CT-2085- Added a new option
--preserve-schemato thetpm uninstallcommand in order to leave the tracking schema in the database.Issue: CT-561
Backup and Restore (3)
- The
tprovisionscript will sleep for 5 seconds by default when using thersyncmethod after issuing a flush logs. The sleep value is configurable as a command line option--flush-after-sleep.Issue: CT-2101 tungsten_get_mysql_datadircan now return additional mysql database directories.Issue: CT-1985- MySQL clone can now be used as an option for recovery using
tprovision.Issue: CT-1417
PostgreSQL Replication (2)
- Added a new
ddlscantemplate,ddl-mysql-postgres-staging.vm, to allow generation of staging table DDL for the PostgreSQL batch applier.Issue: CT-2136 - It is now possible to configure the PostgreSQL applier in Batch mode.Issue: CT-2031
Amazon S3 Replication (1)
- A new applier is now available that replicates to csv files on S3 storage. For more information, see "Deploying the Amazon S3 Applier"Issue: CT-606
Filters (1)
- A new shardbyrules filter has been added that will allow rule-based sharding of replication based on user configurable rules that would allow sharding at table level, whereas previously sharding would only be handled at schema level.Issue: CT-2164
Monitoring (2)
- Prometheus libraries have been upgraded from version 0.8.1 to 0.16.0Issue: CT-2166
- Prometheus exporters now provide the ssl cert expiration date as an epoch value in addition to the label.Issue: CT-2099
Bug Fixes (12)
Installation and Deployment (1)
- Fixed RPM package script to run
tpm installinstead oftpm updatewhen installing the rpmIssue: CT-2130
Command-line Tools (2)
- The
tpmcommand now searches more places to locate shell commands that are called, especially useful when$CONTINUENT_ROOT/share/env.shis not sourced.Issue: CT-2182 tpm uninstallwould sometimes print"ERROR >> db1 >> undefined method '+' for nil:NilClass"Issue: CT-2104
Backup and Restore (5)
- Using
mysqldumpfortprovisioncould incorrectly create a new SSL key pair/Issue: CT-2142 tprovisionwill now timeout if ssh is blocked from the target to the source host.Issue: CT-2139tprovisionwould accept bogus options and not produce an error. This has now been fixed.Issue: CT-2045tprovisionwill now print an error message and exit if the MySQL datadir does not exist.Issue: CT-1901tprovisionwould produce errors if the local hostname were different from the hostname used in the Tungsten install (short vs long names).Issue: CT-1363
Core Replicator (2)
- Fixed an issue while processing geometry data with SRID 4326 that would swap longitude and latitude. This applies only to MySQL 8, as prior MySQL versions do not allow specifying the order when applying a WKB (Well-known binary) to MySQL.Issue: CT-2172
Improved a query that is run by Tungsten when fetching tables metadata (column names, datatypes, etc). While it is not generally needed, the unoptimized query can run badly (especially) against old mysql versions with a lot of databases / tables. For now, the new optimized query is not used by default, but this could change in some future version.
This can be enabled by using the following property :
property=replicator.datasource.global.connectionSpec.usingOptimizedMetadataQuery=trueIssue: CT-2077
PostgreSQL Replication (2)
- Fixed a
NullPointerExceptionerror occurring at startup when applying to PostgreSQL.Issue: CT-2021 - Fixes an issue with the
ddl-mysql-postgres.vmddlscan template that caused varchar datatype lengths to be parsed incorrectly.Issue: CT-2019
Tungsten Replicator 7.0
Tungsten Replicator 7.0.3
Behavior Changes (6)
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 (2)
- Added
LimitNOFILE=infinityinsystemdscripts to workaround an issue with open files limit for clusters installed with systemdIssue: CT-2023 enable-sudo-accessis now enabled by default in Replicator only installations.Issue: CT-1780
Command-line Tools (4)
- The
tpmcommand now prints a warning when running as the root OS user during operations that make changes.Issue: CT-2064 - The
tungsten_skip_allcommand (along with aliastungsten_skip_seqno) now shows the full pendingExceptionMessage instead of just pendingError, and theMorechoice shows the pendingErrorEventId and the pendingError.Issue: CT-2030 - The
tps.plbackup tool now shows the available command-line arguments when the TAB key is pressed.Issue: CT-1246 - Deprecated
tungsten_get_positionandtungsten_set_positionscripts have been removed.Issue: CT-638
Improvements, new features and functionality (6)
Command-line Tools (4)
- The
tungsten_get_portscommand now uses values based on values obtained fromtpm query valueswhen possible for the greatest output accuracy.Issue: CT-2008 - Shell command tab completion for Tungsten-specific commands has been updated to support recent additions and changes.Issue: CT-2057
- The
tpm ask summarycommand has two new keys,isSmartScaleandisDirect, which are also available individually on the command line.Issue: CT-2035 - A new
thl tailcommand has been added, allowing you to view the live THL changes as they are generated.Issue: CT-405
Core Replicator (1)
- THL transfer protocol can now be changed dynamically. This can be done using the
trepctlcommand toolThis can also be done through the APIshell> trepctl setdynamic -property replicator.thl.protocol.client.serialization -value DEFLATEProperty replicator.thl.protocol.client.serialization successfully set to DEFLATEcurl --user tungsten:secret --insecure --request POST 'https://127.0.0.1:8097/api/v2/replicator/service/alpha/thl/inflight-protocol' -d'{"payloadType":"StringPayload","payloadVersion":"1","payload":{"value":"legacy"}}'{"payloadType": "StringPayload","payloadVersion": "1","payload":{"value": "THL inflight protocol is now set to legacy"}}Issue: CT-1862
Amazon Redshift Replication (1)
- Updated the Redshift JDBC driver to version 2.1.0.12.Issue: CT-1806
Bug Fixes (12)
Command-line Tools (8)
- Suppressed wrong tpm errors with autodetect hosts.Issue: CT-2072
- The
tpm diagcommand will now locate and kill any remainingtpm diagchild processes on the calling host.Issue: CT-2068 - The
tungsten_find_eventscommand no longer fails with errorUndefined subroutine &main::infoIssue: CT-2058 - The
tpm validate-updatecommand now performs the delete-service checks properly.Issue: CT-2054 - The
tpm updatecommand no longer aborts with aDataservice was NOT removederror when service names with a hyphen are defined in the configuration. We strongly discourage the use of hyphens (-) in service names and recommend underscores (_) instead.Issue: CT-2052 - Fixed
rsyncavailability check in TPM to error out early when the executable is not found in the pathIssue: CT-1028 - The
trepctl restorecommand now works correctly against MongoDB targets.Issue: CT-1233 - The
dsctlcommand now works correctly against MongoDB targetsIssue: CT-580
Core Replicator (3)
- Fixed an issue where status would fail if issued while a service was reconfiguring (in the middle of a setrole command for example).Issue: CT-2081
- Fixed an issue where an extracted JSON field could be invalid, with doubled commas in JSON arrays.Issue: CT-2049
- Fixed an issue that was occurring when an
ALTER USERis applied on a mysql instance that uses lower case identifiers.Issue: CT-2024
PostgreSQL Replication (1)
- Improved some data type mappings for MySQL to PostgreSQL replication.Issue: CT-2069
Tungsten Replicator 7.0.2
Release 7.0.2 contains a number of key bug fixes and improvements.
v7.0.2 was originally released on 9th Dec 2022 as build 145, and re-released on 9th Jan 2023 as build 161
Behavior Changes (4)
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:
Command-line Tools (3)
- Both the
tungsten_get_portsandtpm reportcommands have been updated to use thessOS command when thenetstatOS command is unavailable or deprecated.Issue: CT-2007 - The
check_tungsten.shwas deprecated in release 6.1.18 and has now been removed from this release.Issue: CT-1939 - The various user-xxxx.log files are no longer generatedIssue: CT-1914
Core Replicator (1)
repl-svc-extractor-multi-frag-service-detectionis now turned **ON** by default. Event shards are determined at extraction time. With fragmented events, the shard cannot be determined by only reading the first fragment, but needs to check the last fragment as well. With this setting turned OFF, there is no issue with pipelines that don't need it, i.e. no parallel apply downstream replicas. However, as this is done at extract time, THL contains this information, and adding or changing a replica using parallel apply could introduce issues.NoteIt can be disabled if you see a performance overhead but this should be done with caution. For Aurora<>Aurora Active/Active deployments it is essential that this property be left ON.Issue: CT-1959
Improvements, new features and functionality (16)
Command-line Tools (11)
- Issue: CT-1869
- Issue: CT-2012
- The
tpm reportcommand now prints the hostname and listener ports where available when using the--extra|-xoption or the new--portsoption.Issue: CT-1969 - The
tpm askcommand has five new variables available:dsrole&dsstatefor the current datasource, andtrrole&trstatefor the current replicator, andnodeinfowhich displays all 4 of the new variables.Issue: CT-1944 - The
tpm ask stagesandtpm ask allstagescommands have been added to display the Replicator stages for the current node (stages) and the stages for each role (allstages).Issue: CT-1943 - The
tpmcommand calls toglobhave been improved to be more strict and compliant.Issue: CT-1940 - The
tmonitorcommand now accepts cli args to specify the ports and will auto-configure the ports if they have been changed via the Tungsten configuration.Issue: CT-1919 - Added a new log file (
tungsten-replicator/log/data-drift.log) for data drift messages, i.e. :- an update statement was logged on primary, but did not update any row on replica
- a delete statement was logged on primary, but did not delete any row on replica
Issue: CT-1873 The
trepctl resetwill now show the last known applied seqno and latency.This information is stored on disk at regular intervals (10s minimum) so as not to overload the replicator, therefore the value can be shown as slightly old dependant on when the status command was issued.
By default, this feature is disabled. It can be enabled by setting the following parameter in the configuration :
svc-applier-last-applied-write-interval=20This will write current position to disk every 20 seconds. This information is also exported by the Prometheus exporter.
If the service is online, it will display the current value (the same as appliedLastSeqno and appliedLatency)
shell> trepctl statusProcessing status command...NAME VALUE---- -----appliedLastEventId : mysql-bin.000017:0000000151329854;70appliedLastSeqno : 999appliedLatency : 347707.0...lastKnownAppliedLatency: 347707.0lastKnownAppliedSeqno : 999...Issue: CT-1823A new
-coption is now available with sometrepctlcommands that can be used in conjunction with the-roption to indicate the number of times to refresh before automatically terminating. For example, the following command:shell> trepctl perf -r 3 -c 10Will refresh the output every 3 seconds, 10 times.
Issue: CT-679rsyncis now an option intprovision, in addition to using xtrabackup and mysqldump. To use rsync, specify-m rsync.Using rsync by default will provision a replica in 2 passes:
- The first pass will live copy (seed) the replica from the source.
- The second pass will quiesce the source and run the rsync again, resulting in shorter down time than a single pass rsync
Issue: CT-338
Core Replicator (4)
Added a new feature that enables pausing a replicator stage for some amount of time.
This will pause the given stage for 100 seconds.:
trepctl pause -stage thl-to-q -time 100This will pause the stage indefinitely (or until restart, etc) Add -y to avoid the prompt message whether you are sure.
trepctl pause -stage thl-to-qFor the previous 2 commands, running a pause command again will override the previous command.
This will resume the suspended stage (Note that if the stage is not paused, this will have no effect):
trepctl resume -stage thl-to-qNotePlease note this pause does not survive a replicator restart or a service offline/online.Issue: CT-1912Added a way to configure the maximum number of rows that can be grouped together when applying row based events for multiple insert or delete statements.
For these properties to be in effect, you must ensure that
optimize-row-events=trueis either explicitly set in your configuration, or not present (since it will be enabled by default)For example, the following settings will limit the number of inserted or deleted rows applied at once to 10:
optimize-row-events-limit-insert-rows=10optimize-row-events-limit-delete-rows=10The default values if not specified will be 50 for inserts and 100 for deletes. Note that for deletes to be optimized, the affected table MUST have a single column PK.
Issue: CT-1980- A new replicator role (thl-applier) has been added to allow a replicator service to apply its locally available THL, without pulling from a remote hostIssue: CT-1936
- Per-service tuning of the replicator thl directory is now possible for multi-service replicator-only installs as well as for clustering. The given value should be the base directory, to which tungsten will add the service name. For example, the following entry in the tungsten.ini:Would result in the THL being placed in /drv1/thl/alpha[alpha]......thl-directory=/drv1/thl...NoteUpdate of thl directory is only available when tpm is called from the staging installation directory, **NOT** from the running directory.Issue: CT-1927
API (1)
- A new log file has been added for the REST API, it is as follows:
- service_logs/replicator-api.log
Issue: CT-1983
Bug Fixes (24)
Installation and Deployment (4)
- Fixes issues where fixed properties and filters passed to tpm in service stanzas were not being configured correctlyIssue: CT-1463
- The
tpm installandtpm updatecommands now properly support thethl-portoption for cross-site subservices.Issue: CT-1953 - No longer using Tanuki wrapper functionality to print jvm version, which was creating defunct java processes at startup, now using internal code.Issue: CT-1876
- Issue: CT-813
Command-line Tools (11)
- The
tpm diagcommand now passes when the nodename defined in thetungsten.iniis the shortname, and DNS returns the FQDN.Issue: CT-1908 - Fixes an issue that prevented
ddlscanfrom connecting to MySQL if SSL was enabled.Issue: CT-1808 - TheNoteThis fix was released in Tungsten Clustering and Tungsten Replicator 7.0.2 Build 161.
tpmcommand checks for the existence of themysqlcommand-line client when installing/upgrading. The process will no longer abort with an error on non-MySQL targets such as heterogeneous replicator appliers, or Active-Witness hosts.Issues: CT-1924, CT-2018 - Both TungstenAPI and
tpasswdnow properly update .passwords.store.orig backup file so that proper manipulation of passwords won't triggertpm updatefailureIssue: CT-1981 - The
tpm mysqlcommand no longer aborts with an access denied error on CentOS 6.Issue: CT-1977 - The
tpm mysqlcommand will now gracefully handle being run on a non-database node.Issue: CT-1946 - Fixes an issue that prevented
dsctlreacting to MySQL if SSL was enabled.Issue: CT-1928 - The
tpm diagcommand now gathers themysql.logfile when SSL is enabled in the server.Issue: CT-1920 - The
tpmcommand now allows any case for section entries (i.e. [alpha_FROM_beta]) in the INI files.Issue: CT-1879 - The
tungsten_skip_seqnocommand no longer fails when-iis specified, and now properly filters using--filterwhen there is a long error message.Issue: CT-1877 - Running
tpm updateon a standalone Replicator deployment no longer prints an uninitialized value error.Issue: CT-1807
Core Replicator (7)
- Fixed an issue where filtered events would trigger a useless update to the service trep_commit_seqno table while it is overwritten anyway once the last statement of the applied event is done, just prior to committing the whole block.Issue: CT-1931
- Fixes an issue that prevented geometry datatypes with SRID from being replicated.Issue: CT-1904
- Fixed a possible issue when recovering an old primary as a replica after failover when parallel apply is enabled, that could lead the replica to be unable to come online and require a reprovisioning of this replica.Issue: CT-1890
- Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) when parallel apply is enabled. This is a rework of CT-1243.Issue: CT-1684 - Fixed a parsing issue that would prevent the replicator from correctly detecting a
CREATE TABLEstatement withSTART TRANSACTIONIssue: CT-1987 - Fixed an issue where the replicator would hang after applying a
DROP TABLEevent, that originally failed on the primary, but got logged into the binlog.Issue: CT-1973 - Fixed an issue in the applier to ensure it is not committing too often with a multi-service replicator (active/active for example, more specifically with AWS Aurora, or an unprivileged MySQL, backend).Issue: CT-2004
Filters (1)
- Fixed an issue where the
dropsqlmodesfilter would fail to remove invalid sql modes from a multi-statement eventIssue: CT-1993
Manager (1)
- A bug has been fixed that, in a few very rare cases, would allow replicas to continue to pull and apply THL from a failed primary whilst a failover was in the process of electing a new primary. This resulted in failovers being unable to complete fully. Whilst the new primary would be online and functioning, existing replicas in the cluster could experience errors due to THL discrepencies between the old and new primary nodes.Issue: CT-1986
Tungsten Replicator 7.0.1
Release 7.0.1 is the first minor release for the v7 release. This release contains a number of new features, minor bug fixes and a few key behavior changes, but importantly contains a critical bug fix for environments that use mixed-case table and database names, that could cause replication failures.
Customers already running v7.0.0 in production environments should upgrade to this release as soon as possible
Behavior Changes (6)
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)
- A better error message is now provided when keystore password and enclosed private key password don't match.Issue: CT-1853
Command-line Tools (4)
- The
tungsten_find_orphanedcommand now places the log file in$CONTINUENT_ROOT/service_logs/, not/tmp/Issue: CT-1866 - The
tmonitorcommand now calls sudo internally as needed, removing the need for thetmonitorcommand to be run with sudo for the install and remove sub-commands.Issue: CT-1846 - The
tpm ask summarycommand is now sorted by key when the PerlTie::IxHashmodule is installed.Issue: CT-1820 - The
tpm diagcommand now gathers the output of thetpm ask summarycommandIssue: CT-1827
Core Replicator (1)
- The default value for the tpm property
svc-fail-on-zero-row-updatehas been changed fromwarntostopWarningThis is a significant change in behavior and could cause replicators, specifically cross-site replicators, in an Active/Active environment to stop and error more frequently.
To maintain original behavior you will need to add this property with the value of
warnto your configuration, providing you fully understand the inherent risk of ignoring such warnings.Issue: CT-1856
Known Issue (1)
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
Improvements, new features and functionality (10)
Command-line Tools (6)
- The
tapicommand will now output service names with the new option--includeServiceName, or if there is more than one service name found.Issue: CT-1860 - Added JMX encryption and authentication status to
trepctl -verboseand connector command outputsIssue: CT-1813 - The
tapicommand now auto-detects the protocol, either http or httpsIssue: CT-1803 - The
tapicommand now supports the creation and modification of multiple APIv2 admin users. Two new cli args have been added:--create-userand--create-pass.Issue: CT-1801 - A new
tpm reportsub-command has been added. By default,tpm reportwill generate a security report for all available communication channels on a per-node basis. The purpose oftpm reportis to provide easy access to all of the settings that pertain to a specific topic. The default (and only) topic at this time is the security stance. More topics will be added over time.Issues: CT-1793, CT-1857 Added the ability to turn auto recovery on or off dynamically, removing the need to run
tpm update.This is done by running the following command:
shell> trepctl -service servicename setdynamic -property replicator.autoRecoveryMaxAttempts -value <number>NoteThe service must be offline before changing the propertyIssue: CT-1088
Core Replicator (1)
- The
thl listcommand now displays an approximate field size in bytes for row-based replication.Issue: CT-1847
Security (1)
- Replaced official log4j library with a secured version in which all vulnerable classes have been removed. This prevents exposing the software following a (user) misconfiguration of the log4j propertiesIssue: CT-1810
API (2)
- Added new top level REST API call to display RMI SSL status, run the following API call :shell> curl https://127.0.0.1:8097/api/v2/rmiSecurityIssue: CT-1812
- Added a way to retrieve service properties through the API, for example, to check a specific service parameter, run the following API call :shell> curl https://127.0.0.1:8097/api/v2/replicator/service/alpha/properties?filter=replicator.global.db.sslEnabled{"payloadType": "PropertiesListPayload","payloadVersion": "1","payload": {"replicator.global.db.sslEnabled": "false"}}Issue: CT-1802
Bug Fixes (20)
Installation and Deployment (3)
tpmwould fail on keystores containing special characters in alias names.Issue: CT-1852- The
tpm updatecommand now properly handles v7 -> v7 upgrades.Issue: CT-1815 deployallscript now properly displays the executable prefix for restarting services, typically mm_treplicator in Multi-Site/Active-Active replicator-only installs, as well as the full path to component binariesIssue: CT-1835
Command-line Tools (10)
undeployallscript would not properly uninstallsystemdservices on some distributions including amazon linux.Issue: CT-1845replicator start offlinewould not properly pass the offline argument tosystemdscripts when installed throughdeployall.Issue: CT-1836- The
tapicommand now auto-switches protocol (http or https) properly.Issue: CT-1829 TPM would fail to validate data sources when using
ssl-capath [directory]rather thanssl-ca [file]inmy.cnf.This fixes only the validation part, automated truststore creation by TPM will not be possible at this point, a full
tungsten-truststore.tswill have to be passed throughjava-truststore-pathIssue: CT-1826- The
tpm updatecommand now properly determines services to be deleted.Issue: CT-1825 - Fixed an `Undefined subroutine` call error in
tapi --createIssue: CT-1798 - Worked around a ruby issue where DNS name resolution was sometimes preferred to file-based resolution in TPM. The following logic now applies: first trying file-based host name resolution, upon failure try DNS, then through ping commandIssue: CT-1653
tpmnow properly reports errors upon timeout executing commands. Typically, when a host is down, when upgrading or installing,tpmwill now properly report that pinging this host failed.Issue: CT-1819- Improves the
tpm diagcommand so that it waits 2 seconds for replicator thread dump to complete.Issue: CT-1792 - The
tpm updatecommand no longer aborts during a staging deployment when the actual hostname does not match what is configured for the node names intpmIssue: CT-1791
Backup and Restore (1)
- Fixed an issue with latest xtrabackup 8.0.28Issue: CT-1838
Core Replicator (5)
- Fixed a
NullPointerExceptionthat could happen if a replicator was put offline during startup. This had mostly no consequence except the exception being logged.Issue: CT-1863 - Fixes issues with PrimaryKeyFilter:
- It could fail from correctly fetching primary key columns for tables with mixed upper and lower case letters in table names
- Alter user statements could make it fail
Issue: CT-1861 tpm updatewould fail with message"The host is configured to be '' but it is currently operating as a 'master'"when a dynamic replicator configuration file is foundIssue: CT-1848- Fixed the EnumToString and pkey filters to renew their database connections (every hour by default). This can be changed with the following properties:property=replicator.filter.enumtostring.reconnectTimeout=3600property=replicator.filter.pkey.reconnectTimeout=3600Issue: CT-1786
- Due to a change in binlogging behavior from MySQL 5.7 onwards (Including Aurora) when using the standalone Tungsten Replicator to configure bi-directional replication with unprivileged access (ie unable to control binlogging behavior), certain DDL statements failed to be tagged correctly causing them to be re-applied to the originating source database, resulting in replicator errors.Issue: CT-1083
Amazon Redshift Replication (1)
- If the optional
RedshiftCopyOptionsoption was omitted from the s3-config.json file, the replicator would fail to start with anundefinederror.Issue: CT-1814
Tungsten Replicator 7.0.0
Behavior Changes (15)
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 (3)
- 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
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
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 (1)
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
Improvements, new features and functionality (32)
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 (11)
- 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
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-1454tungsten_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-1360tpm 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 (7)
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
Added a new property to allow configuration of character set used during batch loading into MySQL targets.
Default is utf8mb4. Override using the following:
property=replicator.applier.dbms.loadCharset=utf8Issue: CT-1647Added ability to the Batch Applier, to apply to a remote MySQL instance using
LOAD DATA LOCAL INFILE.This is disabled by default, and can be enabled by the following property:
property=replicator.applier.dbms.useLoadDataLocalInfile=trueIssue: CT-1622When using the MySQL Batch Applier, you can now choose to log rows into an error table that would otherwise have generated a duplicate key error.
This is disabled by default, but can be enabled and configured by using the following two new properties:
property=replicator.applier.dbms.errorTablePrefix=error_xxx_property=replicator.applier.dbms.batchLogDuplicateRows=trueIn addition, if your tables contain Foreign Keys, you can choose to disable them during the data loading process using the following property:
property=replicator.applier.dbms.disableForeignKeys=trueIssue: CT-1589When using the MySQL Batch Applier, you can now choose to drop all deletes by specifying the following
tpmproperty:property=replicator.applier.dbms.skipDeletes=trueThis is disabled (false) by default.
Issue: CT-1588
PostgreSQL Replication (1)
- Templates have been included for
ddlscanto enable MySQL to Postgres Schema translationIssue: CT-1736
Amazon Redshift Replication (1)
- Adds a new option
redshiftCopyOptionsthat can be supplied in the s3.json file to include valid options that can be included in the Redshift COPY command when loading csv data from S3 into Redshift staging tables. See example below.{"awsS3Path" : "s3://your-bucket-for-redshift/redshift-test","awsIAMRole" : "arn:iam-role","redshiftCopyOptions" : "ACCEPTANYDATE ACCEPTINVCHARS TRUNCATECOLUMNS","cleanUpS3Files" : "true"}Issue: CT-1298
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
connector (1)
Added 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-1367
Bug Fixes (44)
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 (24)
- 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
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 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 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- Fixes a security issue within the
tpm diagcommand.Issue: CT-1295 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- 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 The
tpmcommand now checks the local host’s shortname in addition to the FQDN returned by the hostname command upon initialization.This fixes a bug that prevented
tpm mysqlfrom working on applier hosts running MySQL.Issue: CT-1414
Backup and Restore (1)
- Fixed an issue where an xtrabackup generated by the replicator would fail to be restored using
trepctl restorecommand.Issue: CT-1575
Core Replicator (10)
- 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 - Fixed an issue with the batch loader where
DATETIMEandTIMEdatatypes with milliseconds would be replicated as .000 instead of the real millisecond value.Issue: CT-1739
Heterogeneous Replication (1)
- Fixes an issue where a heterogeneous (non-MySQL) applier would try to run MySQL syntax to set the timezone in use.Issue: CT-1324
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
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
oracle (2)
- Fixes a bug in the MySQL to Oracle ddlscan templates that prevented them from executingIssues: CT-1735, CT-1756
- Fixes an issue causing an error when using the
ddl-mysql-oracle.vmtemplate withddlscanto convert MySQL schema DDL into Oracle DDLIssue: CT-1326
cmdlie (1)
- Issuing
dsctl set [--reset]against Aurora source and targets would fail with Access Denied errors. This is due to the inability to disable Binary Logging for specific transactions which dsctl issues. The errors did not prevent dsctl from working, however they were misleading.Issue: CT-1040
Version 6
Tungsten Clustering 6.1
Tungsten Clustering 6.1.25
This release is past End of Life.
Improvements, new features and functionality (1)
Connector (1)
- In proxy mode, kill queries are now intercepted by the connector in order to replace the given thread_id by the underlying database connection thread_id.NoteWhile executing the kill command, you might get an error like "Could not execute query kill query <id>: Unknown thread id: <id>". This can be ignored, the connection will still be properly killed.Issue: CT-2298
Bug Fixes (1)
Core Replicator (1)
- Fix for an issue in the ColumnName Filter, EnumToString Filter and
TableMetadataCachewhere anALTER USERstatement could trigger a NullPointerException.Issue: CT-2321
Tungsten Clustering 6.1.24
This release is past End of Life.
Bug Fixes (1)
Manager (1)
- Fixes an issue when the manager would wait longer than the timeout for replicator purge on a failover.Issue: CT-1733
Tungsten Clustering 6.1.23
This release is past End of Life.
Bug Fixes (1)
Connector (1)
- Fixed an issue where a failover could hang in rare cases when security and Proxy mode are enabled. SSL connections to a failed data source could enter a deadlock and block failover for up to 15 minutes.NoteThis issue only affects users running Java 11, and is related to [https://bugs.openjdk.org/browse/JDK-8241239](https://bugs.openjdk.org/browse/JDK-8241239)Issues: CT-2183, CT-2187
Tungsten Clustering 6.1.22
This release is past End of Life.
Behavior Changes (1)
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:
Command-line Tools (1)
cctrlnow accepts services names with capital letters, dots and hyphensIssue: CT-2163
Bug Fixes (5)
Installation and Deployment (1)
- Fixed RPM package script to run
tpm installinstead oftpm updatewhen installing the rpmIssue: CT-2130
Core Replicator (3)
- 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 - Fixed an issue where an extracted JSON field could be invalid, with doubled commas in JSON arrays.Issue: CT-2049
Improved a query that is run by Tungsten when fetching tables metadata (column names, datatypes, etc). While it is not generally needed, the unoptimized query can run badly (especially) against old mysql versions with a lot of databases / tables. For now, the new optimized query is not used by default, but this could change in some future version.
This can be enabled by using the following property :
property=replicator.datasource.global.connectionSpec.usingOptimizedMetadataQuery=trueIssue: CT-2077
Connector (1)
- Removed extra logging for eachNoteThis bug only affects v6.1.21
"SET xxx"statement when in proxy mode. On top of polluting the logs, this extra logging can overwhelm the connector, making it slow to respond and have client threads pile up, up to the point where that could exhaust memoryIssue: CT-2165
Tungsten Clustering 6.1.21
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (3)
- Enabling a custom backup script does not require it to be made the default option anymore, i.e. Setting
backup-methodto the custom backup script is not required anymore.Issue: CT-2039 - The
tungsten_skip_allcommand (along with aliastungsten_skip_seqno) now shows the full pendingExceptionMessage instead of just pendingError, and theMorechoice shows the pendingErrorEventId and the pendingError.Issue: CT-2030 - No longer using
connector graceful-stoptogether withsystemdfor upgrades. The underlying change of binary confusessystemdscripts.Issue: CT-2113
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Connector (1)
- Note, this bug only affects this release, v6.1.21 Each
"SET xxx"statement issued when in proxy mode is being logged. On top of polluting the logs, this extra logging can overwhelm the connector, making it slow to respond and have client threads pile up, up to the point where that could exhaust memory If using Proxy mode, it is advised to NOT install this release, and instead use either version 6.1.20 or 6.1.22Issue: CT-2165(ki)
Improvements, new features and functionality (4)
Command-line Tools (2)
- The
tpm diagcommand now captures the output ofcluster topology validateIssue: CT-2115 tungsten show processlistcould error with a disconnection message listing connections disconnected on the mysql server side.Issue: CT-2112
Connector (1)
- Improved smart scale handling of session and global changes so they're all played against connected replica or in case of reconnection. As an example,
SET SESSION TRANSACTION READ ONLYwill be sent to both primary and replica connections so that a subsequentSELECT @@SESSION.transaction_isolationwill return the expected value, even if executed on a replica.Issue: CT-1600
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
Bug Fixes (2)
Command-line Tools (2)
- The
tpm ask keyscommand now lists all available keys properly.Issue: CT-2041 - The
tungsten_get_statuscommand now handles shunned nodes properly.Issue: CT-2026
Tungsten Clustering 6.1.20
This release is past End of Life.
Behavior Changes (2)
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:
Command-line Tools (1)
- Both the
tungsten_get_portsandtpm reportcommands have been updated to use thessOS command when thenetstatOS command is unavailable or deprecated.Issue: CT-2007
Core Clustering (1)
- Changed the behavior of the connector and manager upon local site failover: No longer sending write traffic to the remote site unless the local site is fully offline. In case of local failover, the connector will now pause connections until a new primary is elected. This will avoid risks of out-of-order apply after local failoverIssue: CT-2009
Improvements, new features and functionality (3)
Command-line Tools (3)
- The
tungsten_get_portscommand now uses values based on values obtained fromtpm query valueswhen possible for the greatest output accuracy.Issue: CT-2008 - The
tungsten_get_portscommand now supports the/opt/continuent/tungsten/tungsten-connector/conf/interfaces.jsonfile, if found.Issue: CT-2003 - A new command has been added called
tungsten_get_ports, which will display the running Tungsten processes and the associated TCP ports that those processes are listening on.Issue: CT-1970
Bug Fixes (5)
Command-line Tools (1)
- Worked around a ruby issue where DNS name resolution was sometimes preferred to file-based resolution in TPM. The following logic now applies: first trying file-based host name resolution, upon failure try DNS, then through ping commandIssue: CT-1653
Backup and Restore (1)
- 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
Filters (1)
- Fixed an issue where the
dropsqlmodesfilter would fail to remove invalid sql modes from a multi-statement eventIssue: CT-1993
Manager (2)
- The
cctrlcommanddatasource slavenow sets the replicator role correctly. Previously, only the datasource role would change.Issue: CT-1882 - A bug has been fixed that, in a few very rare cases, would allow replicas to continue to pull and apply THL from a failed primary whilst a failover was in the process of electing a new primary. This resulted in failovers being unable to complete fully. Whilst the new primary would be online and functioning, existing replicas in the cluster could experience errors due to THL discrepencies between the old and new primary nodes.Issue: CT-1986
Tungsten Clustering 6.1.19
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (1)
- The
check_tungsten.shwas deprecated in release 6.1.18 and has now been removed from this release.Issue: CT-1939
Core Replicator (1)
repl-svc-extractor-multi-frag-service-detectionis now turned **ON** by default. Event shards are determined at extraction time. With fragmented events, the shard cannot be determined by only reading the first fragment, but needs to check the last fragment as well. With this setting turned OFF, there is no issue with pipelines that don't need it, i.e. no parallel apply downstream replicas. However, as this is done at extract time, THL contains this information, and adding or changing a replica using parallel apply could introduce issues.NoteIt can be disabled if you see a performance overhead but this should be done with caution. For Aurora<>Aurora Active/Active deployments it is essential that this property be left ON.Issue: CT-1959
Connector (1)
- Improved
tungsten show processlistby running underlying commands in parallel.Issue: CT-1569
Improvements, new features and functionality (6)
Command-line Tools (4)
- A new standalone status script has been added called
tungsten_get_statusthat shows the datasources and replicators for all nodes in all services along with seqno and latency.Issue: CT-1962 - The
tpm askcommand has five new variables available:dsrole&dsstatefor the current datasource, andtrrole&trstatefor the current replicator, andnodeinfowhich displays all 4 of the new variables.Issue: CT-1944 - The
tpm ask stagesandtpm ask allstagescommands have been added to display the Replicator stages for the current node (stages) and the stages for each role (allstages).Issue: CT-1943 - The
tpmcommand calls toglobhave been improved to be more strict and compliant.Issue: CT-1940
Connector (2)
- Added a
connector modecommand to print which mode the connector is running in, either "bridge" or "proxy"Issue: CT-1799 - The
connector graceful-stopcommand now supportssystemdservice manager properly. Theconnector stopcommand now takes an optional argument that will make it a graceful stop. Ifconnector stopis run without the parameter, it will stop the connector immediately. If a positive number of seconds is passed, it will wait, at most, this timeout for connections to disconnect (refusing new connections), after which it will force close all connections and shutdown the connector.connector graceful-stopbehavior is unchanged: without the parameter, the connector will wait "forever" for connections to disconnect. A positive timeout in seconds can be passed to sever connections after the given delayIssue: CT-1921
Bug Fixes (8)
Installation and Deployment (1)
- The
tpm installandtpm updatecommands now properly support thethl-portoption for cross-site subservices.Issue: CT-1953
Command-line Tools (2)
- The
tpm mysqlcommand will now gracefully handle being run on a non-database node.Issue: CT-1946 - Fixes an issue where the pause state would be badly displayed under no load, when the pause reaches the defined time. Note this is only a display issue : once an event is received, the pause state and displayed remaining time will be reset correctly.Issue: CT-1942
Core Replicator (3)
- Fixed an issue where the replicator would hang after applying a
DROP TABLEevent, that originally failed on the primary, but got logged into the binlog.Issue: CT-1973 - Fixed an issue where the
shard_idstored in the trep_commit_seqno table would show an incorrect shard after processing a skipped event (an event from another channel)Issue: CT-1967 - Fixes an issue that would leave a transaction uncommitted longer than necessary.Issue: CT-1958
Filters (1)
- 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
Connector (1)
- Connector now auto detects default authentication plugin by retrieving MySQL data source variable
default_authentication_pluginrather than just using MySQL server versionIssue: CT-1926
Tungsten Clustering 6.1.18
This release is past End of Life.
Behavior Changes (4)
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:
Command-line Tools (2)
- The
tungsten_find_orphanedcommand now places the log file in$CONTINUENT_ROOT/service_logs/, not/tmp/Issue: CT-1866 - The
check_tungsten.shscript has been deprecated and no longer maintained. It will be removed in the next patch release and users should use the newertmonitorcommands.Issue: CT-1038
Backup and Restore (1)
From 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
Manager (1)
- A failsafe shunned cluster (Caused by a network split) will be auto recovered after the network connection is re-established.Issue: CT-241
Improvements, new features and functionality (8)
Command-line Tools (5)
- The
tungsten_reset_managercommand now supports the ability to simply print out the path or paths to be cleared, one per line via the-lor--listarguments.Issue: CT-1917 - The
tpm ask isBridgeandtpm ask isCoordinatorcommands have been back-ported to v6.Issue: CT-1916 - The
tungsten_generate_haproxy_for_apiandtpm generate-haproxy-for-apicommands no longer call thePerl Data::Dumpermodule.Issue: CT-1915 - The
tungsten_generate_haproxy_for_apiandtpm generate-haproxy-for-apicommands now support using connector hosts in the backend definitions via-c, and extra backend flags to the backend hosts lines using-f.Issue: CT-1909 - Issue: CT-1869
Core Replicator (2)
- The
thl listcommand now displays an approximate field size in bytes for row-based replication.Issue: CT-1847 Added a new feature that enables pausing a replicator stage for some amount of time.
This will pause the given stage for 100 seconds:
trepctl pause -stage thl-to-q -time 100This will pause the stage indefinitely (or until restart, etc) Add -y to avoid the prompt message whether you are sure.
trepctl pause -stage thl-to-qFor the previous 2 commands, running a pause command again will override the previous command.
This will resume the suspended stage (Note that if the stage is not paused, this will have no effect):
trepctl resume -stage thl-to-qNotePlease note this pause does not survive a replicator restart or a service offline/online.Issue: CT-1912
Manager (1)
- Added a new option to TPM
manager-replicator-offline-timeout=[timeout_in_sec]that configures the timeout for the manager to wait until the replicator goes offline. When parallel applier is in use the default timeout was too low, so it’s now user configurable so that it can be adjusted to suit different topologies. If not supplied, the default is 180 (3 minutes). This value should be sufficent in most use cases.Issue: CT-1892
Bug Fixes (14)
Installation and Deployment (1)
- Fixes issues where fixed properties and filters passed to tpm in service stanzas were not being configured correctlyIssue: CT-1463
Command-line Tools (5)
undeployallscript would not properly uninstallsystemdservices on some distributions including amazon linux.Issue: CT-1845replicator start offlinewould not properly pass the offline argument to systemd scripts when installed throughdeployall.Issue: CT-1836- The
tpm diagcommand now behaves properly when the MySQL server is logging to STDERR.Issue: CT-1935 - The
tpm diagcommand now gathers the mysql.log file when SSL is enabled in the serverIssue: CT-1933 - The
tpm diagcommand now passes when the nodename defined in thetungsten.iniis the shortname, and DNS returns the FQDN.Issue: CT-1908
Backup and Restore (4)
- Incremental backups can now be restored more than once.Issue: CT-1850
- Restore will now succeed even if only one incremental backup has been created.Issue: CT-1842
- During the backup/restore process the MySQL certificates are kept intact.Issue: CT-1841
- Fixed an issue where an xtrabackup generated by the replicator would fail to be restored using
trepctl restorecommand.Issue: CT-1575
Core Replicator (4)
- Fixed an issue where filtered events would trigger a useless update to the service trep_commit_seqno table while it is overwritten anyway once the last statement of the applied event is done, just prior to committing the whole block.Issue: CT-1931
- Fixes an issue that prevented geometry datatypes with SRID from being replicated.Issue: CT-1904
- Fixed a possible issue when recovering an old primary as a replica after failover when parallel apply is enabled, that could lead the replica to be unable to come online and require a reprovisioning of this replica.Issue: CT-1890
- Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) when parallel apply is enabled. This is a rework of CT-1243.Issue: CT-1684
Tungsten Clustering 6.1.17
This release is past End of Life.
Behavior Changes (4)
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:
Command-line Tools (3)
- 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 output of thetpm ask summarycommandIssue: CT-1827 - The following commands which call
cctrlnow support the pass-through-t secondstimeout argument which specifies how longcctrlwill wait for a connection to the Manager process before aborting:- check_tungsten_latency
- check_tungsten_online
- check_tungsten_policy
- check_tungsten_services
- tungsten_show_processlist
- zabbix_tungsten_latency
- zabbix_tungsten_online
- zabbix_tungsten_progress
- zabbix_tungsten_services
Issue: CT-1822
Backup and Restore (1)
- Additional messaging has been added to the output displayed when running
tprovision.Issue: CT-1689
Improvements, new features and functionality (5)
Command-line Tools (2)
- The
cctrl.logfile is now accessible from the$CONTINUENT_ROOT/service_logsdirectoryIssue: CT-1727 - Added the ability to turn auto recovery on or off dynamically, removing the need to run
tpm update. This is done by running the following command:shell> trepctl -service servicename setdynamic -property replicator.autoRecoveryMaxAttempts -value <number>NoteThe service must be offline before changing the propertyIssue: CT-1088
Connector (1)
connector-reset-when-affinity-backis now available with proxy mode.Issue: CT-1763
Security (1)
- Replaced official log4j library with a secured version in which all vulnerable classes have been removed. This prevents exposing the software following a (user) misconfiguration of the log4j propertiesIssue: CT-1810
Other Issues (1)
- IPv6 host addresses are now fully supported. Can be enabled with the following configuration property:By default, IPv4 is enabled, which equates to the value of "4" in the above property.prefer-ip-stack="6"Issue: CT-1537
Bug Fixes (18)
Installation and Deployment (2)
- When services are deployed with systemd and MySQL could not start due to an error,
tpmwould not be able to later start MySQLIssue: CT-1734 deployallscript now properly displays the executable prefix for restarting services, typically mm_treplicator in Multi-Site/Active-Active replicator-only installs, as well as the full path to component binariesIssue: CT-1835
Command-line Tools (8)
- 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 - When MySQL services were badly installed, some distribution could show a
“not-found”status within systemctl, confusingtpmIssue: CT-1677 - tungsten_monitor.rb script no longer uses sudo to send emails if the configuration doesn't allow it.Issue: CT-1737
tpmnow properly reports errors upon timeout executing commands. Typically, when a host is down, when upgrading or installing,tpmwill now properly report that pinging this host failed.Issue: CT-1819- The
tpm connectorcommand now properly passes the -e arguments to themysqlcommand.Issue: CT-1816 - Improves the
tpm diagcommand so that it waits 2 seconds for replicator thread dump to complete.Issue: CT-1792 - The
tpm updatecommand no longer aborts during a staging deployment when the actual hostname does not match what is configured for the node names intpmIssue: CT-1791
Backup and Restore (1)
- Fixed an issue with latest xtrabackup 8.0.28Issue: CT-1838
Core Replicator (5)
- 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
- 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 - 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 the EnumToString and pkey filters to renew their database connections (every hour by default). This can be changed with the following properties:property=replicator.filter.enumtostring.reconnectTimeout=3600property=replicator.filter.pkey.reconnectTimeout=3600Issue: CT-1786
Connector (2)
- 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 tpm propertyIf VALUE set to autodetect, this value will mirror the MySQLproperty=connectTimeout=VALUEconnect_timeoutsystem variable. Set to 0 for infinite timeout.Issue: CT-1726 - 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 bothconnector-allow-cross-site-reconnects-for-writes=trueandconnector-allow-cross-site-reconnects-for-reads=true, at your own riskIssue: CT-1265
Tungsten Clustering 6.1.16
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (2)
- The
tungsten show processlistcommand has been re-located to the cluster-home/bin from tools/.Issue: CT-1695 - The Perl-based command-line tools now include the latest version of
JSON::PPIssue: CT-1679
Documentation (1)
- Updated the
open_source_licenses.txtfile to include most up-to-date information for the included Perl modules.Issue: CT-1675
Improvements, new features and functionality (2)
Command-line Tools (2)
- A new command
tungsten_get_mysql_datadirhas been added which will gather and display the actual running value for the mysql data directory (datadir) with any sym-links to the physical destination resolved.Issue: CT-1690 - A new command,
tungsten_merge_logshas been added which will gather Manager, Replicator and Connector logs into one file sorted by timestamp for easier troubleshooting.Issue: CT-1667
Bug Fixes (9)
Command-line Tools (5)
- The
tpm --helptext now includes the--iniargument.Issue: CT-1693 - The
tpm diagcommand now uses sudo to read themysqld.logfile.Issue: CT-1685 - The
tpm asktool now works properly on all supported Linux distros.Issue: CT-1682 - The cluster-specific
check_tungsten_onlinetool now properly checks the Replicator and validates the service name if provided.Issue: CT-1674 - Now properly adds executable-prefix (when specified) to systemd boot scripts for the replicator.Issue: CT-1663
Core Replicator (2)
- Fixes a replication issue with some JSON fields that would contain a single quote within the JSON textIssue: CT-1691
- Fixes an issue where the replicator would loop forever if a wrong startup option was provided, e.g
replicator start wrongNow, the replicator will stop with a fatal error message loggedUnrecognized option: wrong - Shutting downIssue: CT-1672
Connector (1)
connector reconfigure, which allows seamless reconfiguration of the Tungsten Connector duringtpm update, now properly reloads load balancers.Issue: CT-1655
Tungsten Clustering 6.1.15
This release is past End of Life.
Behavior Changes (1)
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:
Backup and Restore (1)
- Cluster backup now uses
--source-dataasmysqldumpparameter from MySQL 8.0.26+Issue: CT-1635
Bug Fixes (7)
Command-line Tools (3)
- Improved Perl-based command-line tools to use routines with no external dependencies in place of
Data::DumperIssue: CT-1630 - Added missing connector capability flag
CLIENT_PS_MULTI_RESULTSallowing multiple result sets to be retrieved when executing multiple select prepared statements.Issue: CT-1624 - The
tpm updatecommand now handles the--replace-releaseargument properly when--iniis also specified.Issue: CT-1623
Backup and Restore (1)
tungsten_provision_slavewould fail using mysqldump with MySQL version 8.0.26+ due to a warning about using--master-data=2Issue: CT-1612
Core Replicator (1)
- Improved error reporting when the replicator is not able to open a file. This was causing a
NullPointerExceptionto be raised.Issue: CT-1618
Filters (1)
Fixed an issue with the ColumnNameFilter that was not resetting its internal connection to the database.
This would then fail if the database connection would time out (e.g. MySQL wait_timeout reached). The connection is now renewed every 1 hour by default.
This can be reconfigured to a different value by adding the following
tpmproperty:property=replicator.filter.colnames.reconnectTimeout=<time in seconds>Issue: CT-1646
Connector (1)
- The
show slave statushook could use the wrong tracking schema in Composite Active/Passive clusters.Issue: CT-1625
Tungsten Clustering 6.1.14
This release is past End of Life.
systemd integration, additionally XA transaction support is now available.Improvements, new features and functionality (10)
Command-line Tools (7)
- Improved the
check_tungsten_onlinecommand:- determine the cluster name by default if none is provided via
-s - always check
ls resourceseven if a dataservice name is provided - add an option to be node-specific, ignoring any status from other nodes
Issue: CT-1578 - determine the cluster name by default if none is provided via
- Issue: CT-1573
- New
ddlscantemplate (ddl-mysql-staging.vm) available to generate ddl required for staging tables when deploying the batch applier on a MySQL target.Issue: CT-1587 - 3 new
tpmflags have been added:These flags can be used to provide a custom systemd configuration that will be used in place of the default, generated one. This is typically useful when ExecStartPre or ExecStartPost commands are neededIssue: CT-1555 - A new command-line tool
tungsten show processlisthas been added. This is a read-only script which will show the output fromtungsten show processliston all available Connectors.Issue: CT-1542 - Added
tpmsupport for tuningmaxDelayInterval, used to tune parallel apply. Usage example:This sets the max delay interval to 2 minutesproperty=replicator.store.parallel-queue.maxDelayInterval=120Issue: CT-1541 - Tungsten Connector upgrades are now performed with minimal downtime thanks to graceful-shutdown which is now also used when systemd services are installed.
systemddefinition file has been updated to prevent unwanted systemd-driven control of Tungsten components. 2 new settings have been added to definition files:RemainAfterExit=yesso that systemd won't interfere when the binary is restarted after upgradeGuessMainPID=noso that the PID can change without confusion inside systemd status
NoteAfter upgrade, the systemd status output might show"Active: active (exited)". This is expected since systemd doesn't know the new process to monitor after upgradeIssue: CT-1538
Backup and Restore (1)
A new
tpmoption has been added--backup-optionsThis property can be used to pass options directly to the backup binary (Xtrabackup, mariabackup etc). This can be especially useful when the xtrabackup and MySQL versions differ. Generally, MySQL is always ahead of xtrabackup and in some situations xtrabackup will fail if the underlying MySQL patch release does not match the xtrabackup patch release. In this scenario, you could utilise the new option to force xtrabackup to not check the versions, for example:
backup-options=--no-server-version-checkMultiple options can be passed as a space-separated list, for example.
backup-options=--option1 --option2 --option3NoteOptions passed are specific to the underlying binary and are not validated by Tungsten, therefore you must ensure you only use options that are valid, and check syntax accurately.Issue: CT-1595
Core Replicator (1)
- Support for XA transactions has been added.Issue: CT-925
Manager (1)
- A new
tpmoption has been addedreplica-tx-commit-levelValid values of either 1 (default) or 2. Setting this value to 2 will change the underlying database propertyinnodb_flush_log_at_trx_commitwhen the node becomes a replica, resetting it back to 1 if the node is promoted to a primary. This can improve performance on the apply rates for replicas.Issue: CT-1241
Bug Fixes (9)
Command-line Tools (7)
- The
check_tungsten_services -rcommand no longer takes an extended time to complete when the manager is not running.Issue: CT-1599 - The
tpm connectorcommand now works when the application user's password contains double quotes.Issue: CT-1596 - The
tpm connector --samplescommand no longer displays the password in any example.Issue: CT-1593 - The
tungsten_generate_haproxy_for_apiandtpm generate-haproxy-for-apicommand now properly skips sub-services inComposite Active/Active clusters.Issue: CT-1552 - The
tpm updatecommand now properly parses the--iniargument.Issue: CT-1551 - The
--hostargument totpm connectornow works properly. Support for the legacy--hostsis also included. Only one hostname may be specified totpm connector.Issue: CT-1543 tpmwas failing to check application password when single quoted.Issue: CT-1257
Connector (2)
- When an
RO_RELAXEDconnection is requested and no replica is available to serve the request, we will now properly reuse the current connection to the primary for executing the request.Issue: CT-1564 - With smartscale enabled, when no writes have been issued to the connection, the user session will remain uninitialized. In that situation, we now send reads to replicas.Issue: CT-1560
Tungsten Clustering 6.1.13
This release is past End of Life.
Behavior Changes (4)
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:
Command-line Tools (3)
Connector (1)
- In a Composite Active/Active topology, connectors within both sites have read and write affinity set to the local site by default.Issues: CT-1502, CT-1505
Improvements, new features and functionality (3)
Command-line Tools (2)
- 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 - A new utility,
tungsten_skip_seqnohas been added which allows events to be skipped based on filters, allowing the Tungsten Replicator to come back online with less manual intervention.Issues: CT-1511, CT-1453, CT-1087, CT-42
Connector (1)
Full support for proxy-protocol v1 has been added to Tungsten Connector.
Proxy protocol specifications can be found [here](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)
Enabling proxy-protocol:
- You first need a compatible server, like MariaDB 10.3+ or Percona-5.6.25-73.0+, with the proxy protocol functionality enabled, for example in
my.cnf:proxy-protocol-networks=* - Then install or update Tungsten with
connector-enable-proxy-protocol=true
You should now see the origin IP of the connecting application in place of the connector IP in
show processlistandtungsten show processlistcommands.Issue: CT-1533- You first need a compatible server, like MariaDB 10.3+ or Percona-5.6.25-73.0+, with the proxy protocol functionality enabled, for example in
Bug Fixes (7)
Command-line Tools (4)
- Issue: CT-1528
- Fixed a
tpmcall tosystemdservices listing which was makingtpmwrongly fall back toinit.d. This issue was found when testing MariaDB 10.0.Issue: CT-1524 - Fixes an issue where the
undeployallcommand would create a root ownedwrapper.login the ./tools directory.Issue: CT-1516 - This release includes a wide range of improvements and bug fixes for
tpmand other command-line tools.Issue: CT-1509
Core Replicator (1)
- Fixes an issue where
nullvalues in JSON structures were incorrectly quoted once replicated. For example :would be replicated as[{"example":null}][{"example":"null"}]Issue: CT-1523
Connector (1)
- Now properly supporting negative write affinity in Composite Active/Active clusters. For example you can now specify
affinity=localSite,-remoteSite:localSiteThis allows access only to local sites for writes but still allows reads from remote sites if the local one goes down.Issue: CT-1507
Manager (1)
- Fixes an issue in Composite Active/Active environments that would occasionally cause the primary node to be set to read only.Issue: CT-1424
Tungsten Clustering 6.1.12
This release is past End of Life.
Improvements, new features and functionality (4)
Command-line Tools (1)
A new
--no-routerscli option has been added to thecctrlcommand.Using
cctrl --no-routerswill suppress the collection and display of connectors when issuing thelscommand. This is especially useful when there are a lot of connectors installed and gathering the information from them could take a lot of time, causing unexpected timeouts.Issue: CT-1437
Connector (1)
A new affinity feature has been added in this release that will allow you to define a dedicated datasource for writes within a Composite Active/Active deployment.
This feature can be particularly useful to direct all writes for a specific user/application to a dedicated Write endpoint, where you need to remove any chance of writes in multiple clusters conflicting.
This feature can be enabled in a number of ways :- Via edits to the
user.mapfile for Proxy configurations, via calls during connection, or via theconnector-affinitytpm option if using Bridge mode.Issues: CT-1369, CT-1457
Manager (1)
- Minor improvements to rule handling in the managers.Issue: CT-1464
Monitoring (1)
- Support has now been added to allow monitoring via the New Relic Insights API, using a new script
tungsten_newrelic_eventIssue: CT-892
Bug Fixes (8)
Command-line Tools (6)
- If using
tungsten_provision_slaveto restore a previously failed Primary node, the provision could fail to recover the node.Issue: CT-1468 - Fixed an issue where, in Composite Active/Active environments, tpm would ignore the affinity passed with the tpm flag
connector-affinity.Issue: CT-1465 - When provisioning from a Primary node, in a Composite Active/Active environment, using
tungsten_provision_slave, the replicator would fail to reset due to the incorrect service name being used.Issue: CT-1458 - Replaced md5 hashing to sha256 within
tpmto fix issues wheretpm installwould fail on FIPS enabled environments.Issue: CT-1451 - In a Composite Active/Active environment, the
tungsten_post_processcommand now intelligently handles cross-site filter properties in the INI so that any defined filters are appended to the default values for any option that resolves to propertyreplicator.stage.q-to-dbms.filtersIssues: CT-1372, CT-1449 - If using
mysqldumpas your preferred choice of backup method, Stored Procedures and Functions would not be included in the generated dump file when usingtungsten_provision_slave.Issue: CT-1339
Core Replicator (2)
If SSL is enabled between replicators for THL Transfer, and a source node fails and becomes unresponsive, or is slow/overloaded, the replicator on the replica can fail to go offline due to a timeout, remaining in a GOING-ONLINE:SYNCHRONIZING state.
In a clustering environment, this can prevent failovers occurring due to the manager waiting for the replicator which is stuck in a timeout loop.
Issue: CT-1459A new mapcharset filter is included, which fixes collation incompatibilities when replicating from MySQL 8 to an older release (5.7 or 5.6)
This new filter should be enabled within any MySQL applier where the source is generated from a MySQL 8 database and the target is MySQL 5.7 or lower.
Issue: CT-1404
Tungsten Clustering 6.1.11
This release is past End of Life.
Bug Fixes (1)
Manager (1)
- Fixed a bug in the Hedera library that prevented Managers from pass through the init state.Issue: CT-1415
Tungsten Clustering 6.1.10
This release is past End of Life.
Improvements, new features and functionality (2)
Command-line Tools (1)
tpm diagoutputting 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-1399
Filters (1)
A number of
sql_modeshave been removed in MySQL 8.0, meaning that when replicating from an earlier version (e.g. 5.7) the applier could error when applying session variables.A new
dropsqlmodefilter is now available that should be configured against appliers where the source is version 5.7 or earlier and the target is version 8.0 or later.Issue: CT-1361
Bug Fixes (1)
Manager (1)
- If parallel apply has been enabled, automatic failovers could hang indefinitely if one or more channels are inactive.ImportantAll customers using parallel apply are urged to apply this release to avoid production outages due to this known issue.Issue: CT-1407
Tungsten Clustering 6.1.9
This release is past End of Life.
Improvements, new features and functionality (1)
Command-line Tools (1)
- A new script is available,
tungsten_generate_haproxy_for_api. This script 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. This script will be embedded as atpmcommand in a future release.Issue: CT-1385
Bug Fixes (3)
Command-line Tools (2)
tungsten_find_orphanedno longer hangs when the password keyword exists by itself under[client]inmy.cnf, which causedmysqlbinlogto issue a password prompt.Issue: CT-1387tpm updateno longer fails when using the staging method to upgrade to a new version.Issue: CT-1381
Core Replicator (1)
- In some edge case scenarios, the replicator was not setting the session time_zone correctly when preceding sessions had a different time_zone applied, this could lead to situations where TIMESTAMP values could be applied into replica nodes with an incorrect time_zone offset applied.Issue: CT-1390
Tungsten Clustering 6.1.8
This release is past End of Life.
Bug Fixes (6)
Command-line Tools (1)
tungsten_post_processnow handles whitespace properly onproperty=lines in INI files.Issue: CT-1364
Core Replicator (2)
- In MySQL releases using old row events format (MySQL 5.6 or earlier),
Delete_rows_v1were badly handled, leading to an extraction error when handling such an event type.Issue: CT-1358 - Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) or at a specific seqno (trepctl online -until-seqno) when parallel apply is enabled.Issue: CT-1243
Manager (3)
- Fixes a memory leak when unrecognized connections to manager port 11999 were made.Issue: CT-1357
- A network partition between primary and relay sites with port 11999 still functioning was leading to full connectivity outage. Managers now send data services configuration with every node update (one per node every 3s) so that connectors remain up-to-date even in that corner case.Issue: CT-1356
- Managers now accept both unencrypted and TLS connections from connectors. This allows migrations when security is enabled from earlier versions to 6.1.2+, as well as seamless switch to encrypted connector-manager communications.Note that non-secured connectors connections will trigger a warning in the manager logs:ImportantWhen upgrading to this release from an earlier release, and SSL is either already enabled, or being enabled as part of the upgrade, it is important that managers are upgraded **before** the connectors.WARN [RouterGatewayServer] - Un-encrypted connection request from <connector address> while this manageris configured to use SSL. This is expected ONLY when migrating manager<>connector communication to SSL.Otherwise it might be a misconfiguration of this connector.Issue: CT-1320
Tungsten Clustering 6.1.7
This release is past End of Life.
Bug Fixes (4)
Connector (4)
- Disables the Naggle algorithm (TcpNoDelay=true) on SSL Sockets which causes performance degradation on SSL communications within the connector.Issue: CT-1331
Allows configuration of the protocols and cipher suites to use within the drizzle driver for SSL communications to the database server.
New TPM parameters can be used to control this. New parameters are as follows:
connector-server-ssl-protocols=protocol1[,protocol2,...]connector-server-ssl-ciphers=cipher1[,cipher2,...]For example:
connector-server-ssl-protocols=TLSv1.2connector-server-ssl-ciphers=TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA512Default values for
connector-server-ssl-protocolswill beTLSv1,TLSv1.1,TLSv1.2.Default values for
connector-server-ssl-cipherswill be to allow all cipher suites supported by the running JVM.Issue: CT-1335- When the Primary node is not available (for example during switch/failover), the connector would pause incoming
RO_RELAXEDconnection requests even if a Replica is available for reads.NoteThis only applies to connectors configured in Bridge Mode.Issue: CT-1337 - c3p0 libraries upgraded to version 0.9.5.5 and adjusted recommended pool configuration.Issue: CT-1343
Tungsten Clustering 6.1.6
This release is past End of Life.
Bug Fixes (2)
Command-line Tools (1)
tpm installandtpm updatewill now calltungsten_post_processautomatically to ensure cross-site specific configurations are applied at the right time during the install and update process within Composite Active/Active installations.Issue: CT-761
Core Replicator (1)
- Allows multiple service names to be supplied to
property=local.service.namewhen configuring bi-directional replication between a Composite Active/Passive cluster topology and a MySQL target to prevent loopback of transactions.Issue: CT-1308
Tungsten Clustering 6.1.5
This release is past End of Life.
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Core Replicator (1)
In MySQL release 8.0.21 the behavior of
CREATE TABLE ... AS SELECT ...has changed, resulting in the transactions being logged differently in the binary log. This change in behavior will cause the replicators to fail.Until a fix is implemented within the replicator, the workaround for this will be to split the action into separate
CREATE TABLE ...followed byINSERT INTO ... SELECT FROM...statements.If this is not possible, then you will need to manually create the table on all nodes, and then skip the resulting error in the replicator, allowing the subsequent loading of the data to continue.
Issue: CT-1301
Bug Fixes (4)
Core Replicator (3)
- Fixes a bug in the Drizzle Driver whereby a failing prepared statement that exceeds 1000 characters would report a
String index out of range: 999error rather than the actual error.Issue: CT-1303 If filtering is in use, and a space appeared on either side of the delimiter in a "schema.table" definition in your SQL, the replicator would fail to parse the statement correctly.
For example, all of the examples below are valid SQL but would cause a failure in the replicator:
sql> CREATE TABLE myschema. mytable (....sql> CREATE TABLE myschema .mytable (....sql> CREATE TABLE myschema . mytable (....Issue: CT-1278When replicating data that included timestamps, the replicator would update the timestamp value to the time within the commit from the incoming THL. When using statement based replication times would be correctly replicated, but if using a mixture of statement and row based replication, the timestamp value would not be set back to the default time when switching between statement and row based events. This would not cause problems in the applied host, except when
log-slave-updateswas enabled. In this case, all row-based events after a statement based event would have the same timestamp value applied.This was most commonly seen when using the standalone replicator to replicate into a Cluster, either from a standlone source, or a cluster source.
Issue: CT-1255
Connector (1)
- Connector would fail to properly find appropriate data service for its auto-configuration. Now using the service provided in the user map when present.NoteThis fix is also available in build 51 of the 6.1.4 release.Issue: CT-1277
Tungsten Clustering 6.1.4
This release is past End of Life.
Improvements, new features and functionality (11)
Command-line Tools (5)
- Improves
tpmperformance by using more efficient routines to calculate paths.Issue: CT-1168 - Added the ability for
tpm diagto skip both individual gather subroutines along with entire groups of gather subroutines. Also added ability to list all gather groups and subroutines using--listfor use with the--skipand--skipgroupscli arguments.Issue: CT-1176 tungsten_provision_slavehas been rewritten fixing a number of issues in the previous release. This version was previously released as the Beta scriptprov-sl.sh.Issue: CT-1208- A number of performance improvements and fixes have been incorporated into the Drizzle Driver used for communication between components and MySQL, these include:
- Better handling of large queries close to max network packet size.
- Batch Support. Instead of sending statements one by one, the driver will be able to send multiple statements at once, avoiding round trips between the driver and MySQL server.
- Fixes issues with interpreting useSSL on connect string URLs.
Issues: CT-1215, CT-1216, CT-1217, CT-1228 - The
tungsten_send_diagcommand now accepts arguments for thetpm diagcommand using--argsor-afor short. You must enclose the arguments in quotes, for example:shell> tungsten_send_diag -c 9999 -d --args ‘--all -v’Issue: CT-1220
Core Replicator (4)
- A new replicator role
thl-clienthas been added. This new role allows the replicator to download THL from a Primary, but not apply to the target database.Issue: CT-1123 - A new
delayInMsfilter has been added which allows the applying of THL to a Replica to be delayed. The filter allows millisecond precision. This filter works in the same way as theTimeDelayFilter, however that filter only allows second precision.Issue: CT-1191 - A new
droprowJavaScript filter has been added. The filter works at ROW level and allows the filtering out of rows based on one or more column/value matchesIssue: CT-1213 - Tungsten Replicator can now correctly extract and parse Binary Log entries when the MySQL option
binlog-transaction-compressionhas been enabled.binlog-transaction-compressionis a new parameter introduced from MySQL 8.0.20.Issue: CT-1223
Manager (2)
- When a Primary is
OFFLINEorSHUNNED, we no longer mark the whole data service asOFFLINE.NoteThis will allow reading from Replicas to continue even if the Primary is offline.Issue: CT-1152 - In a Composite Active/Active topology, the relay hosts, by default, will pull THL from the remote Primaries. This can be changed to pull from remote Replica(s) by use of the following setting
policy.slave.promotion.latency.threshold=trueNoteThis is a change in behaviour. From version 6.0.4 up to and including 6.1.3, the default behaviour was configured to pull from the remote Replica(s).Issue: CT-1211
Bug Fixes (30)
Command-line Tools (19)
- In certain edge cases,
tungsten_provision_slavewould fail to detect if mysql was shutdown.Issue: CT-1096 - Issue: CT-1153
- Fixes the
tpm updatecommand, which would exit with the error:Argument " (error code 1)" isn't numericIssue: CT-1165 tpm diagnow collects any files specified by!includedirectives in the/etc/my.cnfand/etc/mysql/my.cnffiles.tpm diagalso looks in/etc/mysql/my.cnffor!includedirdirectivesIssue: CT-1169- Fixes a bug which prevented
tungsten_send_diagfrom uploading a self-generated diagnostic zip file.Issue: CT-1170 tpm diagnow properly derives the correct target path to the releases directory if the home directory in the configuration points to a sym-link.Issue: CT-1172- Issue: CT-1175
tpm updatewould fail and report errors ifdeployallhad been executed.Issue: CT-1179tpm diagno longer requires the mysql command-line client when running on non-MySQL Applier nodes, and no longer attempts to gather any MySQL diagnostic information.Issue: CT-1188- Removes the requirement to execute component start/stop commands with sudo when called through systemd. This is specific to start/stop actions following the use of the
deployallscripts.Issue: CT-1193 - Fixes cases where
tpmfails when the OShostnamecommand returns a different string than what is used in the configuration (i.e.hostnamereturns a FQDN, yet the configuration contains shortnames like db1, db2, etc.).Issue: CT-1206 - In certain cases, after a reprovision,
tungsten_provision_slavedidn’t always run the steps to reset the local replicator service. This made the replicator go into an error state after provision had completed.Issue: CT-1210 - The
tpm diagcommand now handles the cluster-slave topology more gracefully, and properly handles cluster nodes without the Connector installed. Improved output text clarity by converting multiple verbose-level outputs to debug, and warnings to notice-level.Issue: CT-1222 tpm diagnow gathers sym-linked files correctly.Issue: CT-1232- Fixes a situation where
tpm updateexits with aData::Dumpererror.Issue: CT-1249 - Issue: CT-1139
- Fixes an issue where affinity specified in the configuration (
connector-affinity) was ignored since it was not written touser.map(this affects proxy configurations only).Issue: CT-1146 - Fixed a bug where
tpm diagwould fail to gather some MySQL information on a Composite Active/Active node.Issue: CT-1167 - Fixed a bug in
tungsten_post_processwhere the/etc/tungsten/tungsten.inifile would not be read properly. Also adds two warnings for skipped entries and corrects a typo in the property definitions.Issue: CT-1198
Core Replicator (4)
- Tungsten Replicator could wrongly think it is already in
DEGRADEDmode when trying to put it intoDEGRADEDstate.Issue: CT-1131 - When host server time (and thus MySQL time) is **not** configured as UTC, issuing
cluster heartbeatortrepctl heartbeatin the first hours around daylight savings time would create an invalid time in MySQL.Issue: CT-1174 - Due to a change in the Binary log structure introduced in MySQL 8.0.16, the replicator would fail to extract transactions for Partitioned tables.Issue: CT-1201
- The replicator would fail to correctly parse statements with leading comment blocks in excess of 200 characters.Issue: CT-1236
Connector (3)
- Fixed an issue where
connector client-listand the Proxy-mode command,tungsten show processlist, would reportNullPointerExceptionerrors when listing disconnected client applications.Issue: CT-1177 - When in proxy mode and fetching data source configuration at startup, the Connector will now properly parse, and use, affinity (and other URL options if any) to establish the connection.Issue: CT-1212
- Fixes an issue where connections with multiple affinity would not keep the current channel and reconnect to the database server while the connection could be reused.Issue: CT-1250
Manager (4)
- In certain edge case situations, the manager could choose a manually shunned node as a viable node during failover.Issue: CT-1115
- Issuing
cluster topology validatewithincctrlwould fail if the cluster contained an Active Witness host.Issue: CT-1180 - Piping multiple commands to
cctrlthat would affect components in a remote cluster would fail, for example:shell> echo "use east; replicator db5 offline" | cctrlIssue: CT-1209 - Resolves an edge case in a Composite Active/Passive topology, with 2 or more Composite Passive dataservices, where a switch of a relay node in a single Replica service would incorrectly reconfigure all relays in the other Replica services.Issue: CT-1214
Tungsten Clustering 6.1.3
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (3)
tpm diaghas been updated to provide additional feedback detailing the hosts that were gathered during the execution, and also provides examples of how to handle failures When running on a single host configured via the ini method:When running on a staging host, or with theshell> tpm diagCollecting localhost diagnostics.Note: to gather for all hosts please use the "-a" switch and ensure that you have paswordless »ssh access set between the hosts.Collecting diag information on db1.....Diagnostic information written to /home/tungsten/tungsten-diag-2020-02-06-19-34-25.zip-aflag:shell> tpm diag [-a|--allhosts]Collecting full cluster diagnosticsNote: if ssh access to any of the cluster hosts is denied, use "--local" or "--hosts=<host1,host2,...>"Collecting diag information on db1.....Collecting diag information on db2.....Collecting diag information on db3.....Diagnostic information written to /home/tungsten/tungsten-diag-2020-02-06-19-34-25.zipIssue: CT-1137- Improved the
tungsten_find_positionscript to add the ability to specify the low and high sequence numbers which limits the amount of THL the script needs to parse. This allows for better performance and lower system overhead. Also allows the use of the--fileoption.[-f|--file] Pass specified file to the thl command as -file {file}[--low|--from] Pass specified seqno to the thl command as -low {seqno}[--high|--to] Pass specified seqno to the thl command as -high {seqno}Issue: CT-1143 tpm diag: make the output from remote host diagnostic gathering visible in addition to alerting when a host is not reachable.Issue: CT-1158
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Backup and Restore (1)
- The backup process, when configured to use Xtrabackup, uses the
--stream=taroption as one of the options passed to the backup process. This option is no longer available in Xtrabackup 8.0 If you use Xtrabackup 8.0 in combination with MySQL 8, generating backups using the procedures available in Tungsten Clustering will fail. Until a fix is available and to allow backups to continue you will need to make the following edit to the configuration After installation, open thestatic-servicename.propertiesfile located in INSTALL_PATH/tungsten/tungsten_replicator/conf Locate the following entryreplicator.backup.agent.xtrabackup.optionsand within the string value, change the value oftar=truetotar=falseIf the replicator is already running, then you will need to issuereplicator restartfor the change to take effectWarningChanging the properties file directly will cause futuretpm updatecommands to fail, therefore you should run this with the--forceoption, and then re-edit the file as per the above instructions to reset the tar optionIssue: CT-1157
Bug Fixes (14)
Command-line Tools (12)
tpmwould fail to run on some Operating Systems due to missingrealpathtpmhas been changed to usereadlinkwhich is commonly installed by default on most operating systems, however if it is not available, you may be required to install GNU coreutils to satisfy this dependencyIssue: CT-1124- Removed dependency on perl module Time::HiRes from
tpmIssue: CT-1126 - Added support for handling missing dependency (Data::Dumper) within various
tpmsubcommandsIssue: CT-1130 tpmwill now work on MacOS/X systems, provided greadlink is installed.Issue: CT-1147tpm installwill no longer report that the linux distribution cannot be determined on SUSE platforms.Issue: CT-1148- Fixes a condition where
tpm diagwould fail to set the working path correctly, especially on Debian 8 hosts.Issue: CT-1150 tpm diagnow checks for OS commands in additional paths (/bin, /sbin, /usr/bin and /usr/sbin)Issue: CT-1160- Fixes an issue introduced in v6.1.2 where the use of the
undeployallscript would stop services as it removed them from systemctl controlIssue: CT-1166 tpm diagwould fail to collect diagnostics for relay nodes within a Composite Active/Passive TopologyIssue: CT-1140- Fixes an edge case whereby
tpm mysqlwould fail on a node within a Composite Active/Active topology.Issue: CT-1151 tpm diagnow gathers all hosts in a staging deployment when run from a non-staging node.Issue: CT-1155tpm diag: fix ensures collection of diagnostics from standalone connector hosts.Issue: CT-1159
Core Replicator (1)
- The replicator would fail with
Unknown column '' in 'where clausewhen replicating between MySQL 8 hosts where the client application would write data into the source database host using a different collation to that of the default on the target database. The replicator would fail due to a mismatch in these collations when querying theinformation_schema.columnsview to gather metadata ahead of applying to the targetIssue: CT-1145
Manager (1)
- During a local Primary switch within a Composite Active/Active Topology, where there is a high latency link between clusters, the switch could intermittently fail due to an incorrect rule triggering as the remote cluster sees an incorrect state in the opposing clusterIssue: CT-1141
Tungsten Clustering 6.1.2
This release is past End of Life.
Behavior Changes (3)
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:
Behavior Changes (2)
- The Passive Witness functionality is now officially DEPRECATED and will be REMOVED in version 6.2Issue: CT-653
- Certified the Tungsten product suite with Java 11. A small set of minor issues have been found and fixed (CT-1091, CT-1076) along with this certification. The code is now compiled with Java compiler v11 while keeping Java 8 compatibility. Java 9 and 10 have been tested and validated but certification and support will only cover Long Term releases.Issue: CT-1052
Installation and Deployment (1)
- In cluster deployments with witness nodes, if the MySQL servers had been configured to listen on any port other than the standard 3306, the
tpmcommand would default to the wrong port number. When witness hosts are in use, thetpmcommand will no longer "guess" the data source port automatically by runningmy_print_defaults. It is now mandatory to specify the MySQL data server port explicitly usingdatasource-port=[mysql_listen_port]or one of its aliasesIssue: CT-1071
Improvements, new features and functionality (7)
Command-line Tools (4)
- The
tpmcommand was originally written in Ruby. This improvement convertstpmto Perl over time, starting with thetpmshell wrapper and refactoring each sub-command one-by-one. For this release, we have redone thediag,mysqlandconnectorsub-commands. This also wraps theupdatesub-command to provide the CT-1093 clustering fix.Issue: CT-1048 - This version includes an update to the new BETA tool to provision Replicas, and Primaries in a Composite Active/Active topology. This release fully supports provisioning of nodes in a Composite Active/Active Topology. It can be invoked by running
prov-sl.shortps.pl. This tool will replacetungsten_provision_slavein a future release.Issue: CT-1070 - Added the
tpm policysubcommand to allow easy get and set cluster policy operations instead of using cctrl. For more information, please see "The tpm policy Command"Issue: CT-1106 - The new changes made to the
tpmcommand, require that thezippackage be installed on all DB hostsIssue: CT-1111
Core Replicator (2)
- A new JavaScript filter
dropddl.jshas been added to allow selective removal of specific object DDL from THL.Issue: CT-1092 - A new Replicator role,
thl-server, has been added. This new feature allows your Replica replicators to still pull generated THL from a Primary even when the Primary replicator has stopped extracting from the binlogs. If used in Tungsten Cluster, this feature must only be enabled when the cluster is in MAINTENANCE mode.Issue: CT-58
Manager (1)
- The new default datasources sort order is alphabetical when using the
cctrl lscommand. Additionally, the sort order of the datasources list is now configurable. The behavior is controlled by the tpm configuration propertycctrl.sort.datasources.alphabeticallywhich has a default value oftrue(meaning alpha sort). If set tofalse, the sort is ordered by datasource role, so the Primary or relay will appear first, followed by the Replicas. For example, use the following in the INI file for role-based sorting:property=cctrl.sort.datasources.alphabetically=falseIssue: CT-1018
Bug Fixes (22)
Behavior Changes (1)
- Corrected resource leak when loading Java keystoresIssue: CT-1091
Installation and Deployment (1)
- Ensure that all Connector-Manager communications are SSL-encrypted when
disable-security-controls=falseIssue: CT-1060
Command-line Tools (6)
- When performing an update of a cluster with
tpm, the cluster would be switched toMAINTENANCE but would remain in this policy after the update. The original policy is now retained during the update.Issues: CT-595, CT-1093 - The
deployallscript was only able to install init.d system startup scripts. In this release, the script will now detect the initialization system in use (systemd or initd) and prefer systemd when both are available. **For systemd configurations only:** For continuity of service reasons, thedeployallscript does NOT restart individual components when called, it will only install systemd scripts. This implies that, right after a call todeployalland before host restart, the system will stay in a mixed mode where systemd scripts are in place but components were started without systemd, so won’t be controllable by it. In order to align the configuration, you will need to runFor example:shell> component stop sysdshell> sudo systemctl start tcomponentshell> connector stop sysdshell> sudo systemctl start tconnectorIssue: CT-853 - When issuing
tpm connector --samples, the output displayed clear text passwords. In this release the passwords are obfuscated.Issue: CT-1021 - Continuent Tungsten Clustering now uses the
xtrabackupcommand instead of the deprecatedinnobackupexto create and restore backups. A new check was added to TPM for validating different xtrabackup versions along with MySQL version compatibility. The oldest supported version ofxtrabackupis v2.3Issue: CT-1074 - Fixed error message to indicate the need to specify a service on Composite Active/Active clusters for the
tungsten_find_positionandtungsten_find_seqnocommands.Issue: CT-1098 - The
tpmcommand no longer reports warnings about existing system triggers with MySQL 8+Issue: CT-1099
Core Replicator (4)
- When configuring SSL for the Connector only, the Replicator would fail to start due to the Replicator also looking for the SSL configuration.Issue: CT-956
- The following warnings would appear in the replicator log due to GTID events not being handled.The WARN message will no longer appear, however GTID Events are still not handled in this release, but will be fully extracted in a future release.WARN extractor.mysql.LogEvent Skipping unrecognized binlog event type 33, 34 or 35)Issue: CT-1114
- If a JSON field contained a single quote, the replicator would break during the apply stage whilst running the generated SQL into MySQL. Single quotes will now be properly escaped to solve this issueIssue: CT-983
- Under rare circumstances (network packet loss or MySQL Server hang), the replicator would also hang until restarted. This issue has been fixed by using specific network timeouts in both the replicator and in the Drizzle jdbc driver connection logicIssue: CT-1034
Connector (2)
- Fixed an issue where some applications might fail to connect to the Connector with MariaDB 10+ Previously, when using MariaDB 10+, the Connector would 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 would fail with a message similar to the following:The previous work-around was to specify the authentication plugin using theThe server requested authentication method unknown to the client [caching_sha2_password]tpmcommand:--property=defaultAuthPlugin=mysql_native_passwordIssue: CT-1033 - Improved Tungsten Connector bridge mode performance when transferring small amounts of data.Issue: CT-1081
Manager (8)
- When using the
cctrlcommand interactively, thecluster topologyTAB completion was showing invalid options. Invalid options have been removed.Issue: CT-979 - Fixed an issue where long-duration operations like failover and switch would create false positives about network partitioning after completion.Issue: CT-1023
- Fixed the
cctrlcommand so that the '[SSL]' indicator in the `ls` output is displayed. This is a Version 5 feature that was lost in v6.0.0, now restored.Issue: CT-1061 - Fixed the
cctrlcommanddatasource restorewhich was failing inComposite Active/Active cluster deployments with: <errortext>ERROR: MORE THAN ONE PRIMARY DATA SOURCE FOUND</errortext>.Issue: CT-1062 - Continuent Tungsten Clustering now only checks for a running MySQL server when the backup method is 'mysqldump' in
cctrl. Background: Runningdatasource restoreinsidecctrlwould fail when the MySQL server was not running. Only the 'mysqldump' method requires a running MySQL server. The 'xtrabackup-full' and 'xtrabackup-incremental' methods will work even if MySQL is stopped.Issue: CT-1077 tungsten_find_orphanedwas displaying an incorrect error message if a service name wasn't supplied correctly.Issue: CT-1079tungsten_find_orphanedwould error with 'Argument "" isn't numeric in addition'.Issue: CT-1080- Fixed an issue where Composite clusters with only a single site would come up as SHUNNED after install.Issue: CT-1101
Tungsten Clustering 6.1.1
This release is past End of Life.
Improvements, new features and functionality (4)
Manager (4)
Improved the ability of the manager to detect un-extracted, desirable binary log events when recovering the old Primary via
cctrlafter a failover.The
recovercommand will now fail if:- any unextracted binlog events exist on the old Primary that we are trying to recover
- the old Primary THL contains more events than the Replicas
In this case, the
recovercommand will display text similar to the following:Recovery failed because the failed Primary has unextracted events inthe binlog. Please run the tungsten_find_orphaned script to inspectthis events. Provided you have a recent backup available, you cantry to restore the data source by issuing the following command:datasource {hostname} restorePlease consult the user manual at:https://docs.continuent.com/tungsten-clustering-6.1/operations-restore.htmlThe
tungsten_find_orphanedscript is designed to locate orphaned MySQL binary logs that were not extracted into THL before a failover. For more information, please see "The tungsten_find_orphaned Command".Issue: CT-996Improved how the Manager and Replicator behave when MySQL dies on the Primary node.
**This improvement will induce a change of behavior in the product during failover by default, possibly causing a delay in failover as a way to protect data integrity.**
The new default setting for 6.1.1 is:
replicator.store.thl.stopOnDBError=falseThis means that the Manager will wait until the Replicator reads all remaining binlog events on the failing Primary node.
Failover will only continue once:
- all available events are completely read from the binary logs on the Primary node
- all events have reached the Replicas
WarningThe new default means that the failover time could take longer than it used to.When
property=replicator.store.thl.stopOnDBError=true, then the Replicator will stop extracting once it is unable to update the trep_commit_seqno table in MySQL, and the Manager will perform the failover without waiting, at the risk of possible data loss due to leaving binlog events behind. All such situations are logged.For use cases where failover speed is more important than data accuracy, those NOT willing to wait for long failover can set
property=replicator.store.thl.stopOnDBError=trueand still usetungsten_find_orphanedto manually analyze and perform the data recovery. For more information, please see "The tungsten_find_orphaned Command".Issue: CT-583Improved the ability to configure the manager's behavior upon failover.
During a failover, the manager will now wait until the selected Replica has applied all stored THL events before promoting that node to Primary.
This wait time can be configured via the
property=manager.failover.thl.apply.wait.timeout=0property.The default value is 0, which means "wait indefinitely until all stored THL events are applied".
Any value other than zero invites data loss due to the fact that once the Replica is promoted to Primary, any unapplied stored events in the THL will be ignored, and therefore lost.
Whenever a failover occurs, the Replica with most events stored in the local THL is selected so that when the events are eventually applied, the data is as close to the original Primary as possible with the least number of events missed.
That is usually, but not always, the most up-to-date Replica, which is the one with the most events applied.
There should be a good balance between the value for
property=manager.failover.thl.apply.wait.timeoutand the value forproperty=policy-relay-from-slave=900, which is the number of seconds to which a Replica must be current with the Primary in order to qualify as a candidate for failover. The default is 15 minutes (900 seconds).Issue: CT-1022A new feature called "Cluster State Savepoints" has been implemented.
This new functionality was created to support clean, consistent rollbacks during aborted switch and failover operations. This functionality works for both physical clusters as well as for composite clusters.
To support this new feature, a new
clustersub-command has been added to thecctrlcommand -cluster topology validate, which will check and validate a cluster topology and, in the process, will report any issues that it finds. The purpose of this command is to provide a fast way to see, immediately, if there are any issues with any components of a cluster.Savepoints are created automatically with every switch and failover command. The savepoint is only used if there is an exception during switch or failover that is actually able to be rolled-back.
ImportantNot all exceptions during switch and failover will cause a rollback. In particular, if an exception happens during switch or failover AFTER a new primary datasource has been put online (relay or Primary) then the switch or failover operation cannot be rolled back.The Manager is configured, by default, to hold a maximum of 50 savepoints. When that limit is hit, the Manager resets the current-savepoint-id to 0 and starts to overwrite existing savepoints, starting at 0.
Issue: CT-951
Bug Fixes (13)
Command-line Tools (8)
- Fixed an issue where the command
trepctl -all-services status -name watchesfails.Issue: CT-977 - Fixed an issue that would prevent reading remote binary logs when using SSL.Issue: CT-958
- Improve the ability to find needed binaries for commands:
tungsten_find_position,tungsten_find_seqnoandtungsten_get_rttIssue: CT-1054 - Restored previously-removed log file symbolic links under \$CONTINUENT_ROOT/service_logs/Issue: CT-1026
- Fixed a bug where
tpm diagwould generate an empty zip file if the hostnames contain hyphens (-) or periods (.)Issue: CT-1032 - Updated the
check_tungsten_servicesandzabbix_tungsten_servicescommands to auto-detect active witnesses.Issue: CT-1043 - Updated the
check_tungsten.shcommand to have the executable bit set.Issue: CT-1037 Installing with
disable-security-controls=falseor when updating using:tools/tpm update --replace-jgroups-certificate --replace-tls-certificatewould generate self-signed security certs that have a 1-year expiration which will cause installs to break eventually.This expiration time value is controlled by the
tpmcommand optionjava-tls-key-lifetime, which is now set to 10 years or 3,650 days by default.Issue: CT-937
Manager (5)
- If the pipeline source replicator goes OFFLINE, the relay will reconnect to a different Replica.Issue: CT-871
- Improve the ability to find needed binaries, both locally and over SSH, for commands:
tungsten_find_orphanedandtungsten_is_recoverableIssue: CT-1053 - Fixed use case where xtrabackup would timeout during backup via cctrlIssue: CT-1045
- Fixed an issue where the
ls resourcescommand run inside ofcctrlwould fail to list the MANAGER entry on a Replica node.Issue: CT-599 - Fixed an issue where the Manager would show an exception when the MySQL check script did not get expected results.Issue: CT-912
Tungsten Clustering 6.1.0
This release is past End of Life.
Release 6.1.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
The Drizzle driver has been updated to support these new authentication methods, and the MySQL Connector/J 8 is also supported.
Behavior Changes (1)
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:
Connector (1)
The Connector
passThroughModeconfiguration option is now deprecated.The following
passThroughModeentry will be removed fromtungsten-connector/conf/connector.properties.There is currently no
tpmoption 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=trueIssue: CT-897
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Connector (1)
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
tpmcommand option:--property=defaultAuthPlugin=mysql_native_passwordIssue: CT-1033
Improvements, new features and functionality (6)
Command-line Tools (2)
- 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.Issue: CT-761 - Two new utility scripts have been added to the release to help with setting the Replicator position:
tungsten_find_position, which assists with locating information in the THL based on the provided MySQL binary log event position and outputs adsctl setcommand as output.tungsten_find_seqno, which assists with locating information in the THL based on the provided sequence number and outputs adsctl setcommand as output.
Issue: CT-934
Core Replicator (2)
- Upgraded the Drizzle driver to support MySQL 8 authentication protocols (SHA256, caching_sha2).Issues: CT-931, CT-914, CT-966
A new, beta-quality command has been included called
prov-sl.shwhich is intended to eventually replace the currenttungsten_provision_slavescript.Currently,
prov-sl.shsupports provisioning Replicas usingmysqldumpandxtrabackuptools, and is MySQL 8-compatible.The
prov-sl.shcommand is written in Bash, has less dependencies compared to the current version and is meant to fix a number of issues with the current version.Backups are streamed from source to target so that an intermediate write to disk is not performed, resulting in faster provisioning times.
Logs are written to
$CONTINUENT_ROOT/service_logs/prov-sl.log(i.e./opt/continuent/service_logs/prov-sl.log).For example, provision a Replica from [source db] using mysqldump (default):
shell> prov-sl.sh -s {source db}As another example, use xtrabackup for the backup method, with 10 parallel threads (default is 4), and ssh is listening on port 2222:
shell> prov-sl.sh -s {source db} -n xtrabackup -t 10 -p 2222WarningAt the moment,prov-sl.shdoes not support Composite Active/Active topologies when used with Tungsten Clustering, however it will be included in a future release.Issues: CT-809, CT-963, CT-855, CT-723, CT-614
Connector (2)
The Tungsten Stack now supports the new MySQL 8.0 authentication plugins. Both
sha256_passwordandcaching_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](https://dev.mysql.com/downloads/connector/j/) 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_passwordas the default plugin.With earlier versions of MySQL (pre-8.0), the previous default
mysql_native_passwordis 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 toautodetectby default.Note that if
property=defaultAuthPluginis set tocaching_sha2_password, thesha256_passwordauthentication is automatically also supported.WarningPlease 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](https://dev.mysql.com/doc/refman/5.7/en/session-state-tracking.html))Issue: CT-771When logging is set to
debugortrace, 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
debugortracelogging modes. This is handled by a new Connector property option fortpm,property=statement.display.size.in.kb=NNN, which is defined as the maximum query length to display in Kbytes, and now defaults to 1KB.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.WarningWarning: 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!Issue: CT-990
Bug Fixes (5)
Command-line Tools (1)
- When executing
mysqldump, all Tungsten tools no longer use the--add-drop-databaseflag as it will prevent MySQL 8+ from restoring the dump.Issue: CT-935
Core Replicator (2)
- Now properly extracting the Geometry datatype.Issue: CT-997
- Added support for missing charset GB18030 to correct
WARN extractor.mysql.MysqlBinlog Unknown charseterrors.Issues: CT-932, CT-915
Connector (2)
Introduced a new
tpmflag 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
tpmoptionconnector-thread-stack-size=[value in kb]will override this value.NotePlease 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 instanceIssue: CT-973OLD 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_timeoutandserver_versioninstead 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.
Issue: CT-930
Tungsten Replicator 6.1
Tungsten Replicator 6.1.25
This release is past End of Life.
Bug Fixes (1)
Core Replicator (1)
- Fix for an issue in the ColumnName Filter, EnumToString Filter and
TableMetadataCachewhere anALTER USERstatement could trigger a NullPointerException.Issue: CT-2321
Tungsten Replicator 6.1.24
This release is past End of Life.
Tungsten Replicator 6.1.23
This release is past End of Life.
Tungsten Replicator 6.1.22
This release is past End of Life.
Bug Fixes (5)
Installation and Deployment (1)
- Fixed RPM package script to run
tpm installinstead oftpm updatewhen installing the rpmIssue: CT-2130
Core Replicator (3)
- 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 - Fixed an issue where an extracted JSON field could be invalid, with doubled commas in JSON arrays.Issue: CT-2049
Improved a query that is run by Tungsten when fetching tables metadata (column names, datatypes, etc). While it is not generally needed, the unoptimized query can run badly (especially) against old mysql versions with a lot of databases / tables. For now, the new optimized query is not used by default, but this could change in some future version.
This can be enabled by using the following property :
property=replicator.datasource.global.connectionSpec.usingOptimizedMetadataQuery=trueIssue: CT-2077
PostgreSQL Replication (1)
- Fixed a
NullPointerExceptionerror occurring at startup when applying to PostgreSQL.Issue: CT-2021
Tungsten Replicator 6.1.21
This release is past End of Life.
Behavior Changes (2)
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:
Command-line Tools (2)
- Enabling a custom backup script does not require it to be made the default option anymore, i.e. Setting
backup-methodto the custom backup script is not required anymore.Issue: CT-2039 - The
tungsten_skip_allcommand (along with aliastungsten_skip_seqno) now shows the full pendingExceptionMessage instead of just pendingError, and theMorechoice shows the pendingErrorEventId and the pendingError.Issue: CT-2030
Improvements, new features and functionality (1)
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
Bug Fixes (1)
Command-line Tools (1)
- The
tpm ask keyscommand now lists all available keys properly.Issue: CT-2041
Tungsten Replicator 6.1.20
This release is past End of Life.
Behavior Changes (1)
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:
Command-line Tools (1)
- Both the
tungsten_get_portsandtpm reportcommands have been updated to use thessOS command when thenetstatOS command is unavailable or deprecated.Issue: CT-2007
Improvements, new features and functionality (2)
Command-line Tools (2)
- The
tungsten_get_portscommand now uses values based on values obtained fromtpm query valueswhen possible for the greatest output accuracy.Issue: CT-2008 - A new command has been added called
tungsten_get_ports, which will display the running Tungsten processes and the associated TCP ports that those processes are listening on.Issue: CT-1970
Bug Fixes (3)
Command-line Tools (1)
- Worked around a ruby issue where DNS name resolution was sometimes preferred to file-based resolution in TPM. The following logic now applies: first trying file-based host name resolution, upon failure try DNS, then through ping commandIssue: CT-1653
Core Replicator (1)
- Fixed an issue in the applier to ensure it is not committing too often with a multi-service replicator (active/active for example, more specifically with AWS Aurora, or an unprivileged MySQL, backend).Issue: CT-2004
Filters (1)
- Fixed an issue where the
dropsqlmodesfilter would fail to remove invalid sql modes from a multi-statement eventIssue: CT-1993
Tungsten Replicator 6.1.19
This release is past End of Life.
Behavior Changes (2)
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:
Command-line Tools (1)
- The
check_tungsten.shwas deprecated in release 6.1.18 and has now been removed from this release.Issue: CT-1939
Core Replicator (1)
repl-svc-extractor-multi-frag-service-detectionis now turned **ON** by default. Event shards are determined at extraction time. With fragmented events, the shard cannot be determined by only reading the first fragment, but needs to check the last fragment as well. With this setting turned OFF, there is no issue with pipelines that don't need it, i.e. no parallel apply downstream replicas. However, as this is done at extract time, THL contains this information, and adding or changing a replica using parallel apply could introduce issues.NoteIt can be disabled if you see a performance overhead but this should be done with caution. For Aurora<>Aurora Active/Active deployments it is essential that this property be left ON.Issue: CT-1959
Improvements, new features and functionality (3)
Command-line Tools (3)
- The
tpm askcommand has five new variables available:dsrole&dsstatefor the current datasource, andtrrole&trstatefor the current replicator, andnodeinfowhich displays all 4 of the new variables.Issue: CT-1944 - The
tpm ask stagesandtpm ask allstagescommands have been added to display the Replicator stages for the current node (stages) and the stages for each role (allstages).Issue: CT-1943 - The
tpmcommand calls toglobhave been improved to be more strict and compliant.Issue: CT-1940
Bug Fixes (7)
Installation and Deployment (1)
- The
tpm installandtpm updatecommands now properly support thethl-portoption for cross-site subservices.Issue: CT-1953
Command-line Tools (2)
- The
tpm mysqlcommand will now gracefully handle being run on a non-database node.Issue: CT-1946 - Fixes an issue where the pause state would be badly displayed under no load, when the pause reaches the defined time. Note this is only a display issue : once an event is received, the pause state and displayed remaining time will be reset correctly.Issue: CT-1942
Core Replicator (3)
- Fixed an issue where the replicator would hang after applying a
DROP TABLEevent, that originally failed on the primary, but got logged into the binlog.Issue: CT-1973 - Fixed an issue where the
shard_idstored in the trep_commit_seqno table would show an incorrect shard after processing a skipped event (an event from another channel)Issue: CT-1967 - Fixes an issue that would leave a transaction uncommitted longer than necessary.Issue: CT-1958
Filters (1)
- 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
Tungsten Replicator 6.1.18
This release is past End of Life.
Behavior Changes (2)
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:
Command-line Tools (2)
- The
tungsten_find_orphanedcommand now places the log file in$CONTINUENT_ROOT/service_logs/, not/tmp/Issue: CT-1866 - The
check_tungsten.shscript has been deprecated and no longer maintained. It will be removed in the next patch release and users should use the newertmonitorcommands.Issue: CT-1038
Improvements, new features and functionality (4)
Command-line Tools (2)
- The
tungsten_reset_managercommand now supports the ability to simply print out the path or paths to be cleared, one per line via the-lor--listarguments.Issue: CT-1917 - Issue: CT-1869
Core Replicator (2)
- The
thl listcommand now displays an approximate field size in bytes for row-based replication.Issue: CT-1847 Added a new feature that enables pausing a replicator stage for some amount of time.
This will pause the given stage for 100 seconds:
trepctl pause -stage thl-to-q -time 100This will pause the stage indefinitely (or until restart, etc) Add -y to avoid the prompt message whether you are sure.
trepctl pause -stage thl-to-qFor the previous 2 commands, running a pause command again will override the previous command.
This will resume the suspended stage (Note that if the stage is not paused, this will have no effect):
trepctl resume -stage thl-to-qNotePlease note this pause does not survive a replicator restart or a service offline/online.Issue: CT-1912
Bug Fixes (10)
Installation and Deployment (1)
- Fixes issues where fixed properties and filters passed to tpm in service stanzas were not being configured correctlyIssue: CT-1463
Command-line Tools (5)
undeployallscript would not properly uninstallsystemdservices on some distributions including amazon linux.Issue: CT-1845replicator start offlinewould not properly pass the offline argument to systemd scripts when installed throughdeployall.Issue: CT-1836- The
tpm diagcommand now behaves properly when the MySQL server is logging to STDERR.Issue: CT-1935 - The
tpm diagcommand now gathers the mysql.log file when SSL is enabled in the serverIssue: CT-1933 - The
tpm diagcommand now passes when the nodename defined in thetungsten.iniis the shortname, and DNS returns the FQDN.Issue: CT-1908
Backup and Restore (1)
- During the backup/restore process the MySQL certificates are kept intact.Issue: CT-1841
Core Replicator (3)
- Fixed an issue where filtered events would trigger a useless update to the service trep_commit_seqno table while it is overwritten anyway once the last statement of the applied event is done, just prior to committing the whole block.Issue: CT-1931
- Fixes an issue that prevented geometry datatypes with SRID from being replicated.Issue: CT-1904
- Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) when parallel apply is enabled. This is a rework of CT-1243.Issue: CT-1684
Tungsten Replicator 6.1.17
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (2)
- 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 output of thetpm ask summarycommandIssue: CT-1827
Backup and Restore (1)
- Additional messaging has been added to the output displayed when running
tprovision.Issue: CT-1689
Improvements, new features and functionality (4)
Command-line Tools (1)
- Added the ability to turn auto recovery on or off dynamically, removing the need to run
tpm update. This is done by running the following command:shell> trepctl -service servicename setdynamic -property replicator.autoRecoveryMaxAttempts -value <number>NoteThe service must be offline before changing the propertyIssue: CT-1088
Core Replicator (1)
Added a new property to allow configuration of character set used during batch loading into MySQL targets.
Default is utf8mb4. Override using the following:
property=replicator.applier.dbms.loadCharset=utf8Issue: CT-1647
Security (1)
- Replaced official log4j library with a secured version in which all vulnerable classes have been removed. This prevents exposing the software following a (user) misconfiguration of the log4j propertiesIssue: CT-1810
Other Issues (1)
- IPv6 host addresses are now fully supported. Can be enabled with the following configuration property:By default, IPv4 is enabled, which equates to the value of "4" in the above property.prefer-ip-stack="6"Issue: CT-1537
Bug Fixes (16)
Installation and Deployment (2)
- When services are deployed with systemd and MySQL could not start due to an error,
tpmwould not be able to later start MySQLIssue: CT-1734 deployallscript now properly displays the executable prefix for restarting services, typically mm_treplicator in Multi-Site/Active-Active replicator-only installs, as well as the full path to component binariesIssue: CT-1835
Command-line Tools (6)
- The
tpmcommand now communicates properly when there is no INI configuration file or staging-methoddeploy.cfgconfiguration defined.Issue: CT-1712 - When MySQL services were badly installed, some distribution could show a
“not-found”status within systemctl, confusingtpmIssue: CT-1677 - tungsten_monitor.rb script no longer uses sudo to send emails if the configuration doesn't allow it.Issue: CT-1737
tpmnow properly reports errors upon timeout executing commands. Typically, when a host is down, when upgrading or installing,tpmwill now properly report that pinging this host failed.Issue: CT-1819- Improves the
tpm diagcommand so that it waits 2 seconds for replicator thread dump to complete.Issue: CT-1792 - The
tpm updatecommand no longer aborts during a staging deployment when the actual hostname does not match what is configured for the node names intpmIssue: CT-1791
Backup and Restore (1)
- Fixed an issue with latest xtrabackup 8.0.28Issue: CT-1838
Core Replicator (7)
- 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
- 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 - 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 the EnumToString and pkey filters to renew their database connections (every hour by default). This can be changed with the following properties:property=replicator.filter.enumtostring.reconnectTimeout=3600property=replicator.filter.pkey.reconnectTimeout=3600Issue: CT-1786
- Fixed an issue with the batch loader where
DATETIMEandTIMEdatatypes with milliseconds would be replicated as .000 instead of the real millisecond value.Issue: CT-1739 - Due to a change in binlogging behavior from MySQL 5.7 onwards (Including Aurora) when using the standalone Tungsten Replicator to configure bi-directional replication with unprivileged access (ie unable to control binlogging behavior), certain DDL statements failed to be tagged correctly causing them to be re-applied to the originating source database, resulting in replicator errors.Issue: CT-1083
Tungsten Replicator 6.1.16
This release is past End of Life.
Behavior Changes (3)
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:
Command-line Tools (2)
- The
tungsten show processlistcommand has been re-located to the cluster-home/bin from tools/.Issue: CT-1695 - The Perl-based command-line tools now include the latest version of
JSON::PPIssue: CT-1679
Documentation (1)
- Updated the
open_source_licenses.txtfile to include most up-to-date information for the included Perl modules.Issue: CT-1675
Improvements, new features and functionality (2)
Command-line Tools (2)
- A new command
tungsten_get_mysql_datadirhas been added which will gather and display the actual running value for the mysql data directory (datadir) with any sym-links to the physical destination resolved.Issue: CT-1690 - A new command,
tungsten_merge_logshas been added which will gather Manager, Replicator and Connector logs into one file sorted by timestamp for easier troubleshooting.Issue: CT-1667
Bug Fixes (7)
Command-line Tools (4)
- The
tpm --helptext now includes the--iniargument.Issue: CT-1693 - The
tpm diagcommand now uses sudo to read themysqld.logfile.Issue: CT-1685 - The
tpm asktool now works properly on all supported Linux distros.Issue: CT-1682 - Now properly adds executable-prefix (when specified) to systemd boot scripts for the replicator.Issue: CT-1663
Core Replicator (2)
- Fixes a replication issue with some JSON fields that would contain a single quote within the JSON textIssue: CT-1691
- Fixes an issue where the replicator would loop forever if a wrong startup option was provided, e.g
replicator start wrongNow, the replicator will stop with a fatal error message loggedUnrecognized option: wrong - Shutting downIssue: CT-1672
Tungsten Replicator 6.1.15
This release is past End of Life.
Behavior Changes (1)
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:
Backup and Restore (1)
- Cluster backup now uses
--source-dataasmysqldumpparameter from MySQL 8.0.26+Issue: CT-1635
Improvements, new features and functionality (1)
Core Replicator (1)
Added ability to the Batch Applier, to apply to a remote MySQL instance using
LOAD DATA LOCAL INFILE.This is disabled by default, and can be enabled by the following property:
property=replicator.applier.dbms.useLoadDataLocalInfile=trueIssue: CT-1622
Bug Fixes (5)
Command-line Tools (2)
- Improved Perl-based command-line tools to use routines with no external dependencies in place of
Data::DumperIssue: CT-1630 - The
tpm updatecommand now handles the--replace-releaseargument properly when--iniis also specified.Issue: CT-1623
Backup and Restore (1)
tungsten_provision_slavewould fail using mysqldump with MySQL version 8.0.26+ due to a warning about using--master-data=2Issue: CT-1612
Core Replicator (1)
- Improved error reporting when the replicator is not able to open a file. This was causing a
NullPointerExceptionto be raised.Issue: CT-1618
Filters (1)
Fixed an issue with the ColumnNameFilter that was not resetting its internal connection to the database.
This would then fail if the database connection would time out (e.g. MySQL wait_timeout reached). The connection is now renewed every 1 hour by default.
This can be reconfigured to a different value by adding the following
tpmproperty:property=replicator.filter.colnames.reconnectTimeout=<time in seconds>Issue: CT-1646
Tungsten Replicator 6.1.14
This release is past End of Life.
systemd integration, additionally XA transaction support is now available.Improvements, new features and functionality (8)
Command-line Tools (4)
- Issue: CT-1573
- New
ddlscantemplate (ddl-mysql-staging.vm) available to generate ddl required for staging tables when deploying the batch applier on a MySQL target.Issue: CT-1587 - 3 new
tpmflags have been added:These flags can be used to provide a custom systemd configuration that will be used in place of the default, generated one. This is typically useful when ExecStartPre or ExecStartPost commands are neededIssue: CT-1555 - Added
tpmsupport for tuningmaxDelayInterval, used to tune parallel apply. Usage example:This sets the max delay interval to 2 minutesproperty=replicator.store.parallel-queue.maxDelayInterval=120Issue: CT-1541
Backup and Restore (1)
A new
tpmoption has been added--backup-optionsThis property can be used to pass options directly to the backup binary (Xtrabackup, mariabackup etc). This can be especially useful when the xtrabackup and MySQL versions differ. Generally, MySQL is always ahead of xtrabackup and in some situations xtrabackup will fail if the underlying MySQL patch release does not match the xtrabackup patch release. In this scenario, you could utilise the new option to force xtrabackup to not check the versions, for example:
backup-options=--no-server-version-checkMultiple options can be passed as a space-separated list, for example.
backup-options=--option1 --option2 --option3NoteOptions passed are specific to the underlying binary and are not validated by Tungsten, therefore you must ensure you only use options that are valid, and check syntax accurately.Issue: CT-1595
Core Replicator (3)
- Support for XA transactions has been added.Issue: CT-925
When using the MySQL Batch Applier, you can now choose to log rows into an error table that would otherwise have either generated a duplicate key error.
This is disabled by default, but can be enabled and configured by using the following two new properties:
property=replicator.applier.dbms.errorTablePrefix=error_xxx_property=replicator.applier.dbms.batchLogDuplicateRows=trueIn addition, if your tables contain Foreign Keys, you can choose to disable them during the data loading process using the following property:
property=replicator.applier.dbms.disableForeignKeys=trueIssue: CT-1589When using the MySQL Batch Applier, you can now choose to drop all deletes by specifying the following
tpmproperty:property=replicator.applier.dbms.skipDeletes=trueThis is disabled (false) by default.
Issue: CT-1588
Bug Fixes (1)
Command-line Tools (1)
- The
tpm updatecommand now properly parses the--iniargument.Issue: CT-1551
Tungsten Replicator 6.1.13
This release is past End of Life.
Behavior Changes (1)
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:
Command-line Tools (1)
- Ensure that all tools are available in the appropriate software packages.Issue: CT-1518
Improvements, new features and functionality (3)
Command-line Tools (2)
- 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 - A new utility,
tungsten_skip_seqnohas been added which allows events to be skipped based on filters, allowing the Tungsten Replicator to come back online with less manual intervention.Issues: CT-1511, CT-1453, CT-1087, CT-42
Heterogeneous Replication (1)
- Upgraded PostgreSQL JDBC driver to the latest release to allow compatibility with PostgreSQL 12Issue: CT-1521
Bug Fixes (5)
Command-line Tools (4)
- Issue: CT-1528
- Fixed a
tpmcall tosystemdservices listing which was makingtpmwrongly fall back toinit.d. This issue was found when testing MariaDB 10.0.Issue: CT-1524 - Fixes an issue where the
undeployallcommand would create a root ownedwrapper.login the ./tools directory.Issue: CT-1516 - This release includes a wide range of improvements and bug fixes for
tpmand other command-line tools.Issue: CT-1509
Core Replicator (1)
- Fixes an issue where
nullvalues in JSON structures were incorrectly quoted once replicated. For example :would be replicated as[{"example":null}][{"example":"null"}]Issue: CT-1523
Tungsten Replicator 6.1.12
This release is past End of Life.
Improvements, new features and functionality (1)
Monitoring (1)
- Support has now been added to allow monitoring via the New Relic Insights API, using a new script
tungsten_newrelic_eventIssue: CT-892
Bug Fixes (5)
Command-line Tools (3)
- If using
tungsten_provision_slaveto restore a previously failed Primary node, the provision could fail to recover the node.Issue: CT-1468 - Replaced md5 hashing to sha256 within
tpmto fix issues wheretpm installwould fail on FIPS enabled environments.Issue: CT-1451 - If using
mysqldumpas your preferred choice of backup method, Stored Procedures and Functions would not be included in the generated dump file when usingtungsten_provision_slave.Issue: CT-1339
Core Replicator (2)
If SSL is enabled between replicators for THL Transfer, and a source node fails and becomes unresponsive, or is slow/overloaded, the replicator on the replica can fail to go offline due to a timeout, remaining in a GOING-ONLINE:SYNCHRONIZING state.
In a clustering environment, this can prevent failovers occurring due to the manager waiting for the replicator which is stuck in a timeout loop.
Issue: CT-1459A new mapcharset filter is included, which fixes collation incompatibilities when replicating from MySQL 8 to an older release (5.7 or 5.6)
This new filter should be enabled within any MySQL applier where the source is generated from a MySQL 8 database and the target is MySQL 5.7 or lower.
Issue: CT-1404
Tungsten Replicator 6.1.11
This release is past End of Life.
Tungsten Replicator 6.1.10
This release is past End of Life.
Improvements, new features and functionality (2)
Command-line Tools (1)
tpm diagoutputting 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-1399
Filters (1)
A number of
sql_modeshave been removed in MySQL 8.0, meaning that when replicating from an earlier version (e.g. 5.7) the applier could error when applying session variables.A new
dropsqlmodefilter is now available that should be configured against appliers where the source is version 5.7 or earlier and the target is version 8.0 or later.Issue: CT-1361
Tungsten Replicator 6.1.9
This release is past End of Life.
Bug Fixes (2)
Command-line Tools (1)
tpm updateno longer fails when using the staging method to upgrade to a new version.Issue: CT-1381
Core Replicator (1)
- In some edge case scenarios, the replicator was not setting the session time_zone correctly when preceding sessions had a different time_zone applied, this could lead to situations where TIMESTAMP values could be applied into replica nodes with an incorrect time_zone offset applied.Issue: CT-1390
Tungsten Replicator 6.1.8
This release is past End of Life.
Bug Fixes (3)
Command-line Tools (1)
tungsten_post_processnow handles whitespace properly onproperty=lines in INI files.Issue: CT-1364
Core Replicator (2)
- In MySQL releases using old row events format (MySQL 5.6 or earlier),
Delete_rows_v1were badly handled, leading to an extraction error when handling such an event type.Issue: CT-1358 - Fixes an issue that would prevent a service from going offline at a specified time (
trepctl online -until-time) or at a specific seqno (trepctl online -until-seqno) when parallel apply is enabled.Issue: CT-1243
Tungsten Replicator 6.1.7
This release is past End of Life.
Tungsten Replicator 6.1.6
This release is past End of Life.
Bug Fixes (1)
Core Replicator (1)
- Allows multiple service names to be supplied to
property=local.service.namewhen configuring bi-directional replication between a Composite Active/Passive cluster topology and a MySQL target to prevent loopback of transactions.Issue: CT-1308
Tungsten Replicator 6.1.5
This release is past End of Life.
Behavior Changes (1)
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:
Heterogeneous Replication (1)
When using the batch applier in Heterogeneous pipelines (Redshift, Vertica, Hadoop) the batch applier removes DDL statements.
There may be occasions when you intentionally want DDL to pass through, such as if you have a custom filter that injects custom DDL statements into the pipeline, however the batch applier would always remove them.
A new property is now available to control this behaviour. Set
property=replicator.applier.dbms.applyStatements=trueto allow the batch applier to retain DDL statements. The default value offalseretains the original behaviour of removing DDL.Issue: CT-1270
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Core Replicator (1)
In MySQL release 8.0.21 the behavior of
CREATE TABLE ... AS SELECT ...has changed, resulting in the transactions being logged differently in the binary log. This change in behavior will cause the replicators to fail.Until a fix is implemented within the replicator, the workaround for this will be to split the action into separate
CREATE TABLE ...followed byINSERT INTO ... SELECT FROM...statements.If this is not possible, then you will need to manually create the table on all nodes, and then skip the resulting error in the replicator, allowing the subsequent loading of the data to continue.
Issue: CT-1301
Bug Fixes (4)
Core Replicator (4)
- Fixes a bug in the Drizzle Driver whereby a failing prepared statement that exceeds 1000 characters would report a
String index out of range: 999error rather than the actual error.Issue: CT-1303 If filtering is in use, and a space appeared on either side of the delimiter in a "schema.table" definition in your SQL, the replicator would fail to parse the statement correctly.
For example, all of the examples below are valid SQL but would cause a failure in the replicator:
sql> CREATE TABLE myschema. mytable (....sql> CREATE TABLE myschema .mytable (....sql> CREATE TABLE myschema . mytable (....Issue: CT-1278When replicating data that included timestamps, the replicator would update the timestamp value to the time within the commit from the incoming THL. When using statement based replication times would be correctly replicated, but if using a mixture of statement and row based replication, the timestamp value would not be set back to the default time when switching between statement and row based events. This would not cause problems in the applied host, except when
log-slave-updateswas enabled. In this case, all row-based events after a statement based event would have the same timestamp value applied.This was most commonly seen when using the standalone replicator to replicate into a Cluster, either from a standlone source, or a cluster source.
Issue: CT-1255For offboard extraction, the replicator would appear to be
ONLINEbut not actually processing new events.This is due to the relay client getting an incomplete packet from the remote database and going into a WAITING state.
To handle these situations, a new property has been included that will set a timeout and if the replicator does not process an event in the given timeout period, we assume we have lost the link to the remote database and will place the replicator into an
OFFLINE:ERRORstate.Providing auto-recovery has been enabled using the
auto-recover-max-attemptsparameter, the replicator will then restart and proceed successfully.The new property to include is
property=replicator.extractor.dbms.relayLogIdleTimeoutThe default value (0) will disable the timeout. Values provided are in seconds, so 300 would be 5 minutes.
Setting the timeout too low in quieter systems may result in unnecessary replicator restarts. The value should be set according to the activity levels of your database. If the source is very active with constant updates, then a low value would be appropriate. On quieter systems that may have long periods of inactivity, should have a timeout value set no less than the longest, normal, period of inactivity within your system.
Issue: CT-1262
Tungsten Replicator 6.1.4
This release is past End of Life.
Improvements, new features and functionality (12)
Command-line Tools (5)
- Improves
tpmperformance by using more efficient routines to calculate paths.Issue: CT-1168 - Added the ability for
tpm diagto skip both individual gather subroutines along with entire groups of gather subroutines. Also added ability to list all gather groups and subroutines using--listfor use with the--skipand--skipgroupscli arguments.Issue: CT-1176 tungsten_provision_slavehas been rewritten fixing a number of issues in the previous release. This version was previously released as the Beta scriptprov-sl.sh.Issue: CT-1208- A number of performance improvements and fixes have been incorporated into the Drizzle Driver used for communication between components and MySQL, these include:
- Better handling of large queries close to max network packet size.
- Batch Support. Instead of sending statements one by one, the driver will be able to send multiple statements at once, avoiding round trips between the driver and MySQL server.
- Fixes issues with interpreting useSSL on connect string URLs.
Issues: CT-1215, CT-1216, CT-1217, CT-1228 - The
tungsten_send_diagcommand now accepts arguments for thetpm diagcommand using--argsor-afor short. You must enclose the arguments in quotes, for example:shell> tungsten_send_diag -c 9999 -d --args ‘--all -v’Issue: CT-1220
Core Replicator (4)
- A new replicator role
thl-clienthas been added. This new role allows the replicator to download THL from a Primary, but not apply to the target database.Issue: CT-1123 - A new
delayInMsfilter has been added which allows the applying of THL to a Replica to be delayed. The filter allows millisecond precision. This filter works in the same way as theTimeDelayFilter, however that filter only allows second precision.Issue: CT-1191 - A new
droprowJavaScript filter has been added. The filter works at ROW level and allows the filtering out of rows based on one or more column/value matchesIssue: CT-1213 - Tungsten Replicator can now correctly extract and parse Binary Log entries when the MySQL option
binlog-transaction-compressionhas been enabled.binlog-transaction-compressionis a new parameter introduced from MySQL 8.0.20.Issue: CT-1223
Amazon Redshift Replication (2)
- When configuring the Redshift applier, you can now configure which tool the applier will use for posting CSV files to S3. Options are s3cmd (default), s4cmd or aws.Issue: CT-1218
A number of improvements have been made to the Redshift Applier to allow optional levels of table locking.
This is particularly useful when you have multiple Redshift Appliers in a Fan-In topology, and/or very high volumes of data to process.
The additional locking options reduce the risk of Redshift Serializable Isolation Violation errors occurring.
See "Deploying the Amazon Redshift Applier" for full details on deploying a Redshift Applier.
Issue: CT-1221
Filters (1)
debughas been disabled by default in the schemachange filter. Resulting in reduced noise in the replicator log file.Issue: CT-1013
Bug Fixes (23)
Command-line Tools (16)
- In certain edge cases,
tungsten_provision_slavewould fail to detect if mysql was shutdown.Issue: CT-1096 - Issue: CT-1153
- Fixes the
tpm updatecommand, which would exit with the error:Argument " (error code 1)" isn't numericIssue: CT-1165 tpm diagnow collects any files specified by!includedirectives in the/etc/my.cnfand/etc/mysql/my.cnffiles.tpm diagalso looks in/etc/mysql/my.cnffor!includedirdirectivesIssue: CT-1169- Fixes a bug which prevented
tungsten_send_diagfrom uploading a self-generated diagnostic zip file.Issue: CT-1170 tpm diagnow properly derives the correct target path to the releases directory if the home directory in the configuration points to a sym-link.Issue: CT-1172- Issue: CT-1175
tpm updatewould fail and report errors ifdeployallhad been executed.Issue: CT-1179tpm diagno longer requires the mysql command-line client when running on non-MySQL Applier nodes, and no longer attempts to gather any MySQL diagnostic information.Issue: CT-1188- Removes the requirement to execute component start/stop commands with sudo when called through systemd. This is specific to start/stop actions following the use of the
deployallscripts.Issue: CT-1193 - Fixes cases where
tpmfails when the OShostnamecommand returns a different string than what is used in the configuration (i.e.hostnamereturns a FQDN, yet the configuration contains shortnames like db1, db2, etc.).Issue: CT-1206 - In certain cases, after a reprovision,
tungsten_provision_slavedidn’t always run the steps to reset the local replicator service. This made the replicator go into an error state after provision had completed.Issue: CT-1210 - The
tpm diagcommand now handles the cluster-slave topology more gracefully, and properly handles cluster nodes without the Connector installed. Improved output text clarity by converting multiple verbose-level outputs to debug, and warnings to notice-level.Issue: CT-1222 tpm diagnow gathers sym-linked files correctly.Issue: CT-1232- Fixes a situation where
tpm updateexits with aData::Dumpererror.Issue: CT-1249 ddlscannow sets the datatype for sequence number columns to BIGINT when generating staging table DDL for Redshift deployments.Issue: CT-1235
Core Replicator (5)
- Tungsten Replicator could wrongly think it is already in
DEGRADEDmode when trying to put it intoDEGRADEDstate.Issue: CT-1131 - When host server time (and thus MySQL time) is **not** configured as UTC, issuing
cluster heartbeatortrepctl heartbeatin the first hours around daylight savings time would create an invalid time in MySQL.Issue: CT-1174 - Due to a change in the Binary log structure introduced in MySQL 8.0.16, the replicator would fail to extract transactions for Partitioned tables.Issue: CT-1201
- The replicator would fail to correctly parse statements with leading comment blocks in excess of 200 characters.Issue: CT-1236
- Tungsten Replicator now recognises Amazon AWS SSL Certificates to enable SSL communication with AWS Aurora.Issue: CT-1173
Vertica Replication (1)
- The replicator would fail to apply into Vertica when configured as an offboard installation due to the applier incorrectly expecting the csv files to exist locally on the remote Vertica host.Issue: CT-1194
Filters (1)
- In heterogeneous replicator deployments, the convertstringfrommysql filter would fail to convert strings for alphanumeric key valuesIssue: CT-1128
Tungsten Replicator 6.1.3
This release is past End of Life.
Behavior Changes (2)
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:
Command-line Tools (2)
tpm diaghas been updated to provide additional feedback detailing the hosts that were gathered during the execution, and also provides examples of how to handle failures When running on a single host configured via the ini method:When running on a staging host, or with theshell> tpm diagCollecting localhost diagnostics.Note: to gather for all hosts please use the "-a" switch and ensure that you have paswordless »ssh access set between the hosts.Collecting diag information on db1.....Diagnostic information written to /home/tungsten/tungsten-diag-2020-02-06-19-34-25.zip-aflag:shell> tpm diag [-a|--allhosts]Collecting full cluster diagnosticsNote: if ssh access to any of the cluster hosts is denied, use "--local" or "--hosts=<host1,host2,...>"Collecting diag information on db1.....Collecting diag information on db2.....Collecting diag information on db3.....Diagnostic information written to /home/tungsten/tungsten-diag-2020-02-06-19-34-25.zipIssue: CT-1137tpm diag: make the output from remote host diagnostic gathering visible in addition to alerting when a host is not reachable.Issue: CT-1158
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Backup and Restore (1)
- The backup process, when configured to use Xtrabackup, uses the
--stream=taroption as one of the options passed to the backup process. This option is no longer available in Xtrabackup 8.0 If you use Xtrabackup 8.0 in combination with MySQL 8, generating backups using the procedures available in Tungsten Clustering will fail. Until a fix is available and to allow backups to continue you will need to make the following edit to the configuration After installation, open thestatic-servicename.propertiesfile located in INSTALL_PATH/tungsten/tungsten_replicator/conf Locate the following entryreplicator.backup.agent.xtrabackup.optionsand within the string value, change the value oftar=truetotar=falseIf the replicator is already running, then you will need to issuereplicator restartfor the change to take effectWarningChanging the properties file directly will cause futuretpm updatecommands to fail, therefore you should run this with the--forceoption, and then re-edit the file as per the above instructions to reset the tar optionIssue: CT-1157
Improvements, new features and functionality (1)
MongoDB Replication (1)
- The MongoDB Applier now supports MongoDB Atlas as a target.Issue: CT-1142
Bug Fixes (12)
Command-line Tools (10)
tpmwould fail to run on some Operating Systems due to missingrealpathtpmhas been changed to usereadlinkwhich is commonly installed by default on most operating systems, however if it is not available, you may be required to install GNU coreutils to satisfy this dependencyIssue: CT-1124- Removed dependency on perl module Time::HiRes from
tpmIssue: CT-1126 - Added support for handling missing dependency (Data::Dumper) within various
tpmsubcommandsIssue: CT-1130 tpmwill now work on MacOS/X systems, provided greadlink is installed.Issue: CT-1147tpm installwill no longer report that the linux distribution cannot be determined on SUSE platforms.Issue: CT-1148- Fixes a condition where
tpm diagwould fail to set the working path correctly, especially on Debian 8 hosts.Issue: CT-1150 tpm diagnow checks for OS commands in additional paths (/bin, /sbin, /usr/bin and /usr/sbin)Issue: CT-1160- Fixes an issue introduced in v6.1.2 where the use of the
undeployallscript would stop services as it removed them from systemctl controlIssue: CT-1166 tpm diagnow gathers all hosts in a staging deployment when run from a non-staging node.Issue: CT-1155tpm diag: fix ensures collection of diagnostics from standalone connector hosts.Issue: CT-1159
Core Replicator (1)
- The replicator would fail with
Unknown column '' in 'where clausewhen replicating between MySQL 8 hosts where the client application would write data into the source database host using a different collation to that of the default on the target database. The replicator would fail due to a mismatch in these collations when querying theinformation_schema.columnsview to gather metadata ahead of applying to the targetIssue: CT-1145
MongoDB Replication (1)
- The MongoDB Applier has been updated to use the latest MongoDB JDBC Driver.Issue: CT-1134
Tungsten Replicator 6.1.2
This release is past End of Life.
Behavior Changes (1)
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:
Behavior Changes (1)
- Certified the Tungsten product suite with Java 11. A small set of minor issues have been found and fixed (CT-1091, CT-1076) along with this certification. The code is now compiled with Java compiler v11 while keeping Java 8 compatibility. Java 9 and 10 have been tested and validated but certification and support will only cover Long Term releases.Issue: CT-1052
Improvements, new features and functionality (3)
Command-line Tools (1)
- The
tpmcommand was originally written in Ruby. This improvement convertstpmto Perl over time, starting with thetpmshell wrapper and refactoring each sub-command one-by-one. For this release, we have redone thediag,mysqlandconnectorsub-commands. This also wraps theupdatesub-command to provide the CT-1093 clustering fix.Issue: CT-1048
Core Replicator (2)
- A new JavaScript filter
dropddl.jshas been added to allow selective removal of specific object DDL from THL.Issue: CT-1092 - A new Replicator role,
thl-server, has been added. This new feature allows your Replica replicators to still pull generated THL from a Primary even when the Primary replicator has stopped extracting from the binlogs. If used in Tungsten Cluster, this feature must only be enabled when the cluster is in MAINTENANCE mode.Issue: CT-58
Bug Fixes (10)
Behavior Changes (3)
- Corrected resource leak when loading Java keystoresIssue: CT-1091
If you need to reposition the extractor, there are a number of ways to do this, including the use of the options
-from-eventor-base-seqnoBoth of these options are mutually exclusive, however in some situations, such as when positioning against an Aurora source, you may need to issue both of these options together. Previously this was not possible. In this release both options can now be supplied providing that you include the additional
-forceoption, for exampleshell> trepctl -service serviceName online -base-seqno 53 -from-event 000412:762897 -forceIssue: CT-1065When the Replicator inserts a heartbeat there is an associated timezone. Previously, the heartbeat would be inserted using the GMT timezone, which fails during the DST switch window. The new default uses the Replicator host's timezone instead.
This defaults change corrects an edge case where inserting a heartbeat will fail during the DST switch window when the MYSQL server is running in a different timezone than the Replicator (which runs in GMT).
For example, on 31st March 2019, the time switch occurred @ 2AM in the Europe/Paris timezone. When inserting a heartbeat in the window between 4 and 5 AM (say at 4:15am), the corresponding GMT time would be 2:15am, which is invalid in the Europe/Paris timezone. Replicator would then fail if the MySQL timezone was set to Europe/Paris, as it would try to insert an invalid timestamp.
A new option,
-tzhas been added into thetrepctl heartbeatcommand to force the use of a specific timezone.For example, use GMT as the timezone when inserting a heartbeat:
shell> trepctl heartbeat -tz NONEUse the Replicator host's timezone to insert the heartbeat:
shell> trepctl heartbeat -tz HOSTUse the given timezone to insert the heartbeat:
shell> trepctl heartbeat -tz {valid timezone id}If the MySQL server timezone is different from the host timezone (which is strongly not recommended), then
-tz [valid timezone id]should be used instead where[valid timezone id]should be the same as the MySQL server timezone.Issue: CT-1066
Command-line Tools (2)
- The
deployallscript was only able to install init.d system startup scripts. In this release, the script will now detect the initialization system in use (systemd or initd) and prefer systemd when both are available. **For systemd configurations only:** For continuity of service reasons, thedeployallscript does NOT restart individual components when called, it will only install systemd scripts. This implies that, right after a call todeployalland before host restart, the system will stay in a mixed mode where systemd scripts are in place but components were started without systemd, so won’t be controllable by it. In order to align the configuration, you will need to runFor example:shell> component stop sysdshell> sudo systemctl start tcomponentshell> connector stop sysdshell> sudo systemctl start tconnectorIssue: CT-853 - The
tpmcommand no longer reports warnings about existing system triggers with MySQL 8+Issue: CT-1099
Core Replicator (4)
- The following warnings would appear in the replicator log due to GTID events not being handled.The WARN message will no longer appear, however GTID Events are still not handled in this release, but will be fully extracted in a future release.WARN extractor.mysql.LogEvent Skipping unrecognized binlog event type 33, 34 or 35)Issue: CT-1114
- If a JSON field contained a single quote, the replicator would break during the apply stage whilst running the generated SQL into MySQL. Single quotes will now be properly escaped to solve this issueIssue: CT-983
- Under rare circumstances (network packet loss or MySQL Server hang), the replicator would also hang until restarted. This issue has been fixed by using specific network timeouts in both the replicator and in the Drizzle jdbc driver connection logicIssue: CT-1034
When configuring Active/Active, standalone replicators, with the BidiSlave filter enabled, the replicator was incorrectly parsing certain DDL Statements and marking them as unsafe, as a result they were being dropped by the applier and ignored
The full list of DDL commands fixed in this release are as follows:
CREATE|DROP TRIGGERCREATE|DROP FUNCTIONCREATE|DROP|ALTER|RENAME USERGRANT|REVOKE
Issues: CT-1084, CT-1117
kafka (1)
- When configuring a Kafka Applier, the Kafka Port was set incorrectlyIssue: CT-693
Tungsten Replicator 6.1.1
This release is past End of Life.
Improvements, new features and functionality (1)
Core Replicator (1)
If using the dropcolumn filter during extraction, in conjunction with the Batch Applier (eg Replicating to Redshift, Hadoop, Vertica) writes would fail with a CSV mismatch error due to gaps in the THL Index.
However, for JDBC appliers, the gaps are required to ensure the correct column mapping
To handle the two different requirements, a new property has been added to the filter to control whether or not to leave the THL index untouched (the default) or to re-order the Index ID's
If applying to Batch targets, then the following property should be added to your configuration. The property is not required for JDBC targets.
property=replicator.filter.dropcolumn.fillGaps=trueIssue: CT-1025
Bug Fixes (5)
Command-line Tools (5)
- Fixed an issue where the command
trepctl -all-services status -name watchesfails.Issue: CT-977 - Fixed an issue that would prevent reading remote binary logs when using SSL.Issue: CT-958
- Improve the ability to find needed binaries for commands:
tungsten_find_position,tungsten_find_seqnoandtungsten_get_rttIssue: CT-1054 - Restored previously-removed log file symbolic links under \$CONTINUENT_ROOT/service_logs/Issue: CT-1026
- Fixed a bug where
tpm diagwould generate an empty zip file if the hostnames contain hyphens (-) or periods (.)Issue: CT-1032
Tungsten Replicator 6.1.0
This release is past End of Life.
Release 6.1.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.
More info on these authentication plugins can be found here
The Drizzle driver has been updated to support these new authentication methods, and the MySQL Connector/J 8 is also supported.
Improvements, new features and functionality (5)
Command-line Tools (2)
- 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.Issue: CT-761 - Two new utility scripts have been added to the release to help with setting the Replicator position:
tungsten_find_position, which assists with locating information in the THL based on the provided MySQL binary log event position and outputs adsctl setcommand as output.tungsten_find_seqno, which assists with locating information in the THL based on the provided sequence number and outputs adsctl setcommand as output.
Issue: CT-934
Core Replicator (2)
- Upgraded the Drizzle driver to support MySQL 8 authentication protocols (SHA256, caching_sha2).Issues: CT-931, CT-914, CT-966
A new, beta-quality command has been included called
prov-sl.shwhich is intended to eventually replace the currenttungsten_provision_slavescript.Currently,
prov-sl.shsupports provisioning Replicas usingmysqldumpandxtrabackuptools, and is MySQL 8-compatible.The
prov-sl.shcommand is written in Bash, has less dependencies compared to the current version and is meant to fix a number of issues with the current version.Backups are streamed from source to target so that an intermediate write to disk is not performed, resulting in faster provisioning times.
Logs are written to
$CONTINUENT_ROOT/service_logs/prov-sl.log(i.e./opt/continuent/service_logs/prov-sl.log).For example, provision a Replica from [source db] using mysqldump (default):
shell> prov-sl.sh -s {source db}As another example, use xtrabackup for the backup method, with 10 parallel threads (default is 4), and ssh is listening on port 2222:
shell> prov-sl.sh -s {source db} -n xtrabackup -t 10 -p 2222WarningAt the moment,prov-sl.shdoes not support Composite Active/Active topologies when used with Tungsten Clustering, however it will be included in a future release.Issues: CT-809, CT-963, CT-855, CT-723, CT-614
Amazon Redshift Replication (1)
- The Redshift Applier now allows AWS authentication using IAM Roles. Previously authentication was possible via Access and Secret Key pairs only.Issue: CT-980
Bug Fixes (5)
Core Replicator (2)
- Now properly extracting the Geometry datatype.Issue: CT-997
- Added support for missing charset GB18030 to correct
WARN extractor.mysql.MysqlBinlog Unknown charseterrors.Issues: CT-932, CT-915
Amazon Redshift Replication (2)
- Loading data into Redshift would fail with the following error if a row of data contained a specific control character (0x00 (NULL))Missing newline: Unexpected character 0x30 found at location nnnIssue: CT-984
- The
ddl_map.jsonfile used by the apply_schema_changes filter was missing a rule to handleALTER TABLEstatements when replicating between MySQL and RedshiftIssue: CT-1002
Filters (1)
- The extract_schema_change filter wasn't escaping " (double-quotes) and the generated JSON would then cause the applier to error with:pendingExceptionMessage: SyntaxError: missing } after property list(../../tungsten-replicator//support/filters-javascript/apply_schema_changes.js#236(eval)#1)Issue: CT-1011
Dashboard v1
Tungsten Dashboard 1.0
Tungsten Dashboard 1.0.17
Tungsten Dashboard 1.0.16
This release is past End of Life.
Tungsten Dashboard 1.0.15
This release is past End of Life.
Tungsten Dashboard provides a web-based UI for monitoring and managing Tungsten Clustering deployments.
Tungsten Dashboard v1.0.15 is a feature and bugfix release.
- New Feature - Dashboard now checks to see if the pipelinesource on a replica is not pointing to the current primary and highlights the pipelineSource with bold red if mismatched.
- New Feature - now able to change the Auto-Configure host and port via Settings
- Improvement - Dashboard now has Connector polling disabled by default to reduce manager load. Enable via the Settings panel. Technical Details - automatically adds the
?includeRouters=falseflag to the end of calls to/api/v2/manager/cluster/statusand/api/v2/manager/status/service/{$service} - Improved Docker support.
- Improved support for Distributed Data Groups (DDG), including an added setting for enableDDGNodeColors.
- Improvement - updated various wording to differentiate between the Auto-Define and Auto-Configure features.
- Improvement - Updates all copyrights to 2024.
- Bug fix - Primary definition corrected to exclude shunned or failed masters.
- Bug fix - Settings panel help broken when fancy tooltips were not enabled.
- Bug fix - Auto-Define now gets the proper security defaults when none are specified in the form.
Tungsten Dashboard 1.0.14
This release is past End of Life.
- Upgraded to jQuery 3.6.4
- Added new feature "Client Request Tracking" to log one line per client request call. Enable via the Configuration Settings panel. Also appears in verbose and debug modes.
Tungsten Dashboard 1.0.13
This release is past End of Life.
- Fixed an auto-configure regression bug for composite clusters
Tungsten Dashboard 1.0.12
This release is past End of Life.
- The new
datasource drainfeature in Tungsten Clustering v7.0.2 is now supported in the Tungsten Dashboard node menus There is a new,related setting calleddrainTimeoutwhich controls the length of time to wait before closing the connection to a database node from a Connector - Changed managerPort setting default value to 8201 from 8091
- Updated the auto-refresh browser-specific timestamp display to fit better on the navbar
- Corrected a page reload issue
Tungsten Dashboard 1.0.11
This release is past End of Life.
- The
config.phpfile has been updated to include aconfig.jsonfile in the same subdirectory. If theconfig.jsonexists, the contents will be used in place of any json configuration defined manually in theconfig.phpfile. - The new best practice is to use only
config.json, notconfig.phpany longer. - Since there is a new
config.phpfile with this version, a new migration tool calledupgrade_config.phphas been included to easily install the newconfig.phpfile while still maintaining all of your existing settings. Theupgrade_config.phpcommand will create a new file calledconfig.jsoncontaining all of the settings that used to be inside theconfig.phpfile.ImportantTheupgrade_config.phptool should be NOT be RUN if theconfig.jsonfile already exists! Theupgrade_config.phptool should be RUN ONLY ONCE!COMPLETE ALL THE STANDARD UPGRADE STEPS FIRST!shell> cd {DASHBOARD_WEBROOT}/For example:shell> cd /volumes/data/www/tungsten/html/shell> ./upgrade_config.php `pwd`ImportantTheupgrade_config.phptool should be NOT be RUN if theconfig.jsonfile already exists! Theupgrade_config.phptool should be RUN ONLY ONCE!
- You are now able to specify one or more tags per cluster in all cluster definition forms.
- You are now able to filter the cluster display by a tag from the top search bar.
- You are now able to specify the API settings on a per-cluster basis (apiVersion, apiAuth, apiUser, apiPassword and apiSSL), allowing for mixed APIv1 and APIv2 clusters in the same Dashboard session, and clusters with different admin user/password pairs.
- In previous versions of the Tungsten Dashboard, the API Version, API Authentication/User/Password and API Encryption settings were global only. This meant that a version 6 cluster running APIv1 and a version 7 cluster running APIv2 would not work at the same time in the same Dashboard session, nor would clusters with different API user/password pairs.
- The new configuration fields have been added to the display, add and edit cluster definition forms in all areas of the dashboard.
- The API settings for each cluster are now displayed upon hover over the cluster service name. Each option will also show if the value is derived from the global default, or from a cluster-specific setting.
- Expert mode now allows one-click toggling of global API authentication and SSL Encryption options in addition to the existing global API version toggle.
- Two new settings have been added to the Tungsten Dashboard to support an improved GUI experience.
- Both of the new settings are available via the GUI (config.php options in parens):
- Display Style (displayStyle) Specify which horizontal display method to use in the new REACT frontend (Fill Space or Compressed)
- Home Page (homepage) Specify which page to display first in the new REACT frontend (Cluster, Dashboard or Metrics)
- When changing a composite cluster parent name, the children are now updated with the new parent name. Previously, this was a manual operation.
- When changing a composite cluster child name, the parent is now updated with the new child name. Previously, this was a manual operation.
- A new setting (enableTabs) has been added to the Tungsten Dashboard to control the Tab bar behavior.
- While getting the information to populate the Tab bar is a lightweight AJAX call, the actual data gathering in the backend is quite heavy, and requires an API call to every cluster. This backend processing can cause slowdowns in response time for the Dashboard and is why the new default is to have "dumb" Tabs and better performance.
- Now, by default, the Tab bar will operate in "dumb" mode, and will NOT display the quantity of nodes that are not in AUTOMATIC mode, nor the quantity of nodes that are in the not ready state. Also, the Tab refresh button will not appear either.
- Enabling Tabs in the Settings Panel restores the original behavior of displaying the counts and the refresh button.
- The Tungsten Dashboard now fully supports CAA clusters in v6!
- Added the ability to close windows using the Escape key, enabled by default. Disable in the Settings panel.
- Added a Copy To Clipboard button to all cluster configuration display windows.
- Added a refresh button to the missing cluster display box for convenience - no longer need to refresh the entire page
- In expert mode, there is a new heartbeat trigger button per cluster in old frontend
- Cleaned up error_log calls to make the log file as quiet as possible, and added new setting (enableVerbose) and the associated verbose_log() function.
- When RBAC is enabled, a logout link is now visible at the bottom center of the footer. Also improved footer messaging when RBAC is disabled and/or basic auth is disabled.
- For both auto and manual cluster definition, if you create a Dashboard Service ID (service name) with hyphens, they will be converted to underscores upon save due to the way Javascript handles id's with hyphens.
- When useHAProxy is enabled, the Manager Port will now be set to 8201 instead of 8091 to avoid port conflicts when installed directly on a cluster node.
- The browser-specific date and time display for auto-refresh has been shortened to better fit on the navbar.
Tungsten Dashboard 1.0.10
This release is past End of Life.
Tungsten Dashboard provides a web-based UI for monitoring and managing Tungsten Clustering deployments.
Tungsten Dashboard v1.0.10 provides a number of new features, improvements and bugfixes.
Prometheus and Grafana Integration- Two new settings have been added to the Tungsten Dashboard to support Prometheus and Grafana integration.
- Both of the new settings are available via the GUI (config.php options in parens):
- Enable Prometheus Integration (enablePrometheus) Enable integration with Prometheus to display data in a new window.
- Enable Grafana Integration (enableGrafana) Enable integration with Grafana to display graphs inside the Dashboard.
- Two new settings have been added to the Tungsten Dashboard to help compensate for slow environments where API calls may take longer to complete.
- Both of the new settings are available via the GUI (config.php options in parens):
- CURL GET Timeout (curlTimeoutGET) The timeout used when curl connects to the Manager for a GET-specific API call, in seconds.
- CURL POST Timeout (curlTimeoutPOST) The timeout used when curl connects to the Manager for a POST-specific API call, in seconds.
- The ability to track all write API calls made has been added.
- There will be one audit file per day created in the auditDir (default: {WEBROOT}/audit.d).
- One line per write containing: timestamp, ipaddr, user, role and msg/action
- The new setting is partially available via the GUI (config.php options in parens):
- Enable Audit Trail (enableAudit) Capture all POST API calls to a file in the {WEBROOT}/audit.d subdir like audit-{YYMMDD}.log
- Audit subdirectory name (auditDir) (NOT available via GUI) The directory used to store the audit files (default: {WEBROOT}/audit.d)
- You can now store text on a per-node basis.
- There will be one note file per node created in the notesDir (default: {WEBROOT}/notes.d).
- The new setting is partially available via the GUI (config.php options in parens):
- Enable Per-Node Notes (enableNotes) Turn on the notes per node feature to capture text to a file in the {WEBROOT}/notes.d subdir, named like {SERVICE}-{FQDN}.txt
- Note Icon (noteGlyphicon) (NOT available via GUI) Use noteGlyphicon to specify the note-per-node Glyphicon (default: comment).
- Notes subdirectory name (notesDir) (NOT available via GUI) The directory used to store the note files (default: {WEBROOT}/notes.d)
- You can now enable the display of the back-end API call URLs for transparency and learning.
- The new setting is available via the GUI (config.php options in parens):
- Enable API URL Display (enableURLDisplay) Display the API call URL for each command run.
- You can now automatically highlight node rows where the Replicator is lagging by a specified number of seconds.
- The new setting is available via the GUI (config.php options in parens):
- Flag-On-Lag Delay (flagOnLagDelay) (in seconds) Set this option to a non-zero value to enable node row highlighting when the Replica is more than the specified number of seconds behind the Primary.
- Flag-On-Lag Color (flagOnLagColor) The background color to use when marking a node row as too far behind. One of Info (blue), Warning (yellow) or Danger (red).
Tungsten Dashboard 1.0.9
This release is past End of Life.
Tungsten Dashboard provides a web-based UI for monitoring and managing Tungsten Clustering deployments.
Tungsten Dashboard v1.0.9 provides a number of new features, improvements and bugfixes.
Dashboard Configuration- Now able to configure Dashboard settings via the browser You can disable the editing of settings in the browser by changing the value of
disableSettingsEditto1in theconfig.phpfile, in the"settings":stanza:"disableSettingsEdit": 1 - All settings configured via the browser page are stored in the
{webroot}/settings.d/directory as individual JSON text files named for the setting. Please ensure it exists and is writable by the web server user. - You may edit or delete any of the files in the
{webroot}/settings.d/directory. The setting will revert to the default if deleted. You may also choose to configure settings in this way as opposed to using the config.php file. Either method is supported. - Refactored all options and created centralized defaults
Now able to self-update the Dashboard software via the browser
There are four related settings,
enableUpdates,tmpDir,downloadAccessKeyanddownloadSecretKey.All four must be located in the
config.phpfile, in the"settings":stanza. They are not accessible from the browser settings page.You can disable the Dashboard self-update feature by changing the value of
enableUpdatesto0inconfig.php(default: 1):"enableUpdates": 1The
tmpDirvalue is used to determine where downloaded software packages are saved to:"tmpDir":"/tmp"The other two (
downloadAccessKeyanddownloadSecretKey) need to be obtained from Continuent support and typically ship with the Dashboard installation package.
- Now able to manually create and save cluster definitions in the
conf.dsubdirectory. Originally, a cluster could only be defined in the"clusters":stanza. - Now able to create and save cluster definitions to the
conf.dsubdirectory via a browser workflow - Added Display, Edit and Remove Cluster Definition menu choices for each cluster
- Now able to automatically define cluster definitions in
conf.djust by providing a hostname and port number in a browser workflow Now able to automatically define cluster definitions in
conf.dat Dashboard startupThere are three related settings,
enableAutoConfiguration,managerPortanduseHAProxy.You can enable the Dashboard auto-configuration feature by changing the "Enable Auto-Configuration?" setting via the Dashboard settings page in the browser, or changing the value of
enableAutoConfigurationto1inconfig.php(default: 0) or via the Dashboard settings page in the browser:"enableAutoConfiguration": 1The
managerPortvalue is used to determine what port to communicate with the manager upon when performing auto-configuration and auto-define, as well as populating form fields in other places. Only change this if you have changed the API listener port for the Manager as well."managerPort": 8090The
useHAProxyvalue is used to determine how to calculate ports when performing auto-configuration and auto-define.Set the value to
1to determine the manager port number automatically during various operations based on calulations using the base managerPort.Set the value to
0(default) to use the base managerPort with no attempt to auto-define the port.You can enable the manager port auto-configuration feature by changing the "Using HA Proxy?" setting via the Dashboard settings page in the browser, or changing the value in the
config.phpfile."useHAProxy": 1
- Role name cleaning (Master is now Primary, and Slave is now Replica for nodes; Master is now Active, and Slave is now Passive for clusters)
- Improve error handling for JSON responses to AJAX calls
- Bug fixes in service alias support
- Many footer improvements, including a link to check for an available Dashboard software update
- Stop providing tabInfo during intitial page load, instead do it as AJAX call after load to save initial page load time
Now able to upload a Dashboard Diagnostic containing the JSON configuration to Continuent Support's protected AWS bucket. No other customer has access to this location, it is upload-only.
There are three related settings,
customerName,uploadAccessKeyanduploadSecretKey.The
customerNamevalue is used to pre-populate the diagnostic upload form."customerName":"your customer name here"The other two (
uploadAccessKeyanduploadSecretKey) need to be located inconfig.php"uploadAccessKey":"AKIAIWDZPQUE5YL4SBDQ","uploadSecretKey":"FQ0iVkTtH9biIZT2+IpwXwhqXvVwqMUqsZ4++N4K"
New Expert mode disables both confirmation prompts when Deleting All Definitions
The default is
0(disabled). SetenableExpertModeto 1 (one) to enable."enableExpertMode": 1- Use the
enableDebugsetting to get additional logging information and use the debug software versions when checking for an available update."enableDebug": 1
Tungsten Dashboard 1.0.8
This release is past End of Life.
- Added basic Role-Based Access Control (RBAC). There are two roles, Administrator with full access and Operator with Read-Only access. This feature requires Basic Auth to be properly configured on the Web server. When enabled, the user's current role will be displayed in the footer. Refresh the page to activate any changes to
config.php. The default is0(disabled). SetenableRBACto 1 (one) to enable.Use the"enableRBAC":1administratorssetting to list the users with admin privs:"administrators": [ "adminUser1","adminUser2" ] - Improved page load performance via caching of API calls. This is especially helpful with Composite clusters that have multiple sites over a wide area.
- Added the ability to modify the browser window title using the new configuration option
windowTitle - Added the ability to change the cluster service sort order from the alpha default to as-written configuration order using the new configuration option
sortByConfigOrderNotAlpha - Site favicons along with the navigation bar logo and colors have been updated to promote a cleaner look. Additional icon replacements and color tweaks have been made throughout the tool.
- Added hover-based tooltips for all fields and buttons where possible. Set
disableTooltipsto 1 to prevent the tooltips from appearing. - Significantly improved the Connector popover formatting, sorting and operation.
- Message handling is improved so that multiple actions and responses are tracked and messaged properly.
- Added the ability to view the json configuration in the browser via a menu link.
- Added the ability to check for Dashboard software updates.
- Added the ability to check for Clustering software updates on a per-node basis.
Tungsten Dashboard 1.0.7
This release is past End of Life.
- Added the feature to allow for cluster service name aliases. You may now add the sub-key
actualNamepointing to the "real" name of the service, and change the top-level cluster service name to some alias that you understand. Previously, it was impossible to configure two or more clusters with the same service name. This could be required if clusters were installed into different environments like production, staging or development. While the best practice is to name the cluster services to match the environment (i.e. east_prod and east_staging), in some situations this may not be possible. - Added a new feature to automatically fade out messages after a delay. The default is
60seconds. SetmsgFadeOutTimerto 0 (zero) to disable or to a positive integer to specify the delay in seconds."msgFadeOutTimer":60 - Improved the look & feel of the overall layout, including display widths, the location of the timestamp marker and spacing.
- Fixed a bug where the controls to open and close a cluster were STILL not working.
- Fixed a bug where the datasource status details hover was not displaying properly
Tungsten Dashboard 1.0.6
This release is past End of Life.
Tungsten Dashboard provides a web-based UI for monitoring and managing Tungsten Clustering deployments.
Tungsten Dashboard v1.0.6 is a bugfix and minor feature release.
- Fixed a bug where the controls to open and close a cluster were not working.
- When Auto-refresh is turned on, any issuance of a command will stop the auto-refresh. Simply re-select your desired refresh rate to turn it back on.
Tungsten Dashboard is compatible with both the Tungsten Clustering 5.3.x series and 6.x series.
Tungsten Dashboard 1.0.5
This release is past End of Life.
- Fixed Composite Active/Active cluster bug where clusters other than the first do not show subservices.
- Tweaked cell alignment
Tungsten Dashboard 1.0.4
This release is past End of Life.
- Fixed cluster-level open/close regression.
- Tweaked error text and reduced noise in the logs.
Tungsten Dashboard 1.0.3
This release is past End of Life.
- Added modal "Stop Auto-Refresh" button which will turn off the Auto-refresh feature. This button is only visible if auto-refresh is enabled.
- Added ability to set global buttons to icon, text or some combination. Use the setting
navButtonFormatand specify one or more oficonortextas a comma-separated string, no spaces. Order counts.Currently there are four (4) possible entries:$jsonConfig = <<<EOJ{"settings": {"navButtonFormat":"icon",...EOJ;The default for"navButtonFormat":"icon","navButtonFormat":"text","navButtonFormat":"icon,text","navButtonFormat":"text,icon",navButtonFormatisiconif not specified.
Tungsten Dashboard 1.0.2
This release is past End of Life.
- Refactored API calls for better error handling.
- Better error reporting on the front-end.
Tungsten Dashboard 1.0.1
This release is past End of Life.
- Support for Composite Active/Active topology offered in Continuent Clustering v6.x (requires Continuent Clustering version 6.0.3)
- Improvements to the menu system layout and clarity
- Composite-level cluster commands have been relocated to a new menu to the right of the State field
- Composite clusters now display the actual composite state instead of the Ready/Warning/Error status indicators, and status indicator lights have been moved to the left of the State label
- Improvements to the locking system:
- Auto-Lock and Auto-Unlock are now both configurable via config.php
- Auto-Lock and Auto-Unlock setting are now both visible at the bottom of the cluster-level locking menu
- Auto-Lock may be configured to attempt a lock for all actions, heartbeats only, or not at all
- Auto-Unlock may be configured to attempt an unlock for all actions, heartbeats only, or not at all
- Additional formatting tweaks, including the reduction in height of the rows
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Behavior Changes (1)
- Tungsten Dashboard is now compatible with Tungsten Clustering 6.0.0 Composite Active/Active topologies, but only as of Tungsten Clustering version 6.0.3.
Tungsten Dashboard 1.0.0
This release is past End of Life.
- Full monitoring information on the status and progress of replication and the status of the cluster
- Monitor multiple clusters through a single page
- Perform switches and failovers
- Shun hosts
- Recover failed hosts
Known Issue (1)
The following issues are known within this release but not considered critical, nor impact operation. They will be addressed in a subsequent patch release.
Behavior Changes (1)
- Tungsten Dashboard is not compatible with Tungsten Clustering 6.0.0. This will be addressed in a future release.
Tungsten MI
Tungsten MI 8.0
Tungsten MI 8.0.4.1
Improvements, new features and functionality (1)
Documentation (1)
- All documentation URL references in help text output have been updated.Issue: CT-2686
Tungsten MI 8.0.3.2
Bug Fixes (1)
Installation and Deployment (1)
- Resolves a "Missing Library" error when launching appliers.Issue: TMI-16
Tungsten MI 8.0.3.1
Tungsten MI 8.0.2.1
This release includes a number of minor fixes to the launch Wizard and is shipped with the newest Tungsten product release.
It was launched with version 8.0.2 build 87 of the Tungsten suite of products. The product-specific release notes for this release can be found at
Behavior Changes (3)
The following changes have been made to Tungsten MI that changes the behavior of the MI; this could include a change in default values or in methods required to configure the host.
Installation and Deployment (3)
- The
binlog_formatMySQL property is now set to ROW by default for all Cluster topology installations.Issue: TMI-14 - The default MySQL root password has been changed for MySQL installations as part of the Clustering builds. The password will be presented at the end of the Wizard setup and should subsequently be changed manually by the user after installation.Issue: TMI-13
- The images now launch with Java 21.Issue: TMI-12
Bug Fixes (3)
TMI Configuration Wizard (3)
- When choosing a new hostname or servicename during the Wizard process, the script will ensure the entered text does not contain any invalid characters.Issue: TMI-15
- The README files have now been updated to include the correct URL directing to the Prerequisite doc pages.Issue: TMI-11
- When configuring a MySQL Applier to apply to a Tungsten Cluster, a number of ini properties were not correctly applied to the generated
tungsten.inifile. This has now been corrected.Issue: TMI-10
Tungsten MI 8.0.1.1
No changes were made to the TMI Launch wizard in this release.
It was launched with version 8.0.1 build 185 of the Tungsten suite of products. The product specific release notes for this release can be found at
Tungsten MI 8.0.0.1
This release includes a number of minor fixes to the launch Wizard and is shipped with the newest Tungsten product release.
It was launched with version 8.0.0 build 305 of the Tungsten suite of products. The product specific release notes for this release can be found at
Behavior Changes (2)
The following changes have been made to Tungsten MI that changes the behavior of the MI; this could include a change in default values or in methods required to configure the host.
Behavior Changes (2)
- Fixed an issue which prevented the launch wizard creating a valid configuration for MongoDB Atlas appliers.Issue: TMI-8
- Install wizard now includes the new
cloud-installproperty when configuring against a cloud source or target.Issues: TMI-7, CT-2317
Tungsten MI 7.1
Tungsten MI 7.1.4.3
This release includes a number of minor fixes to the host operating systems configurations and included packages.
It was launched with version 7.1.4-11 of the Tungsten suite of products. The product specific release notes for this release can be found at
Behavior Changes (1)
The following changes have been made to Tungsten MI that changes the behavior of the MI; this could include a change in default values or in methods required to configure the host.
Behavior Changes (1)
- Images no longer include the gstreamer package. This isn't required for Tungsten products and therefore removing from the built VM's bypasses issues with known vulnerabilities in gstreamer.Issue: TMI-9
Tungsten MI 7.1.4.2
This release includes a number of minor fixes to the host operating systems configurations and included packages.
It was launched with version 7.1.4-11 of the Tungsten suite of products. The product specific release notes for this release can be found at
Behavior Changes (1)
The following changes have been made to Tungsten MI that changes the behavior of the MI; this could include a change in default values or in methods required to configure the host.
Behavior Changes (1)
- Install wizard now includes
install=trueby default ensuring that Tungsten components are correctly registered with systemctl and will start automatically when the host boots.Issue: TMI-2
Bug Fixes (3)
Installation and Deployment (3)
- The host now includes the
ed25519andbcrypt-pbkdfruby gems required by a number of Tungsten scripts.Issue: TMI-6 - The host now includes the
perl-sigtrapmodule required by a number of Tungsten scripts.Issue: TMI-5 - The
selinuxcontexts are now set correctly to ensure software will start correctly via systemctl.Issue: TMI-4
Tungsten MI 7.1.4.1
This release marks a change in name from Tungsten AMI which was specific to Amazon AWS, to Tungsten MI (TMI) which coincides with the launch of the images to the Google GCP Marketplace.
To ensure consistency across cloud providers, the AWS images now launch on Rocky Linux 9.5, previously Amazon Linux 2. GCP images also launch with the same.
It was launched with version 7.1.4-11 of the Tungsten suite of products. The product specific release notes for this release can be found at
Tungsten MI 7.1.2
This AMI release fixes a few issues with the launch wizard, which now allows easy configuration with IPv6 hosts.
It was launched with version 7.1.2-42 of the Tungsten suite of products. The product specific release notes for this release can be found at
Tungsten MI 7.0
Tungsten MI 7.0.1
For this release, the version number of the AMI was adjusted to be in line with the version of the Tungsten Products that are shipped with the images.
It was launched with version 7.0.1-96 of the Tungsten suite of products. The product-specific release notes for this release can be found at
Tungsten MI 5.0
Tungsten MI 5.0.0
This release is past End of Life.
This AMI release resolves Amazon Linux OS vulnerabilities identified by AWS and a number of small improvements in the deployment Wizard for manual configurations.
It was launched with version 6.1.12-53 of the Tungsten suite of products. The product-specific release notes for this release can be found at
Bug Fixes (3)
TMI Configuration Wizard (2)
- When configuring a cluster-extractor to apply into AWS Redshift, the
s3.jsonconfiguration file would be named incorrectly.Issue: CT-1219 - Deployment Wizard now correctly configures the
tungsten.inifor the MongoDB Atlas applier.Issue: CT-1161
Operating System/3rd Party Packages (1)
- Addresses OS security vulnerability identified by AWS.
Tungsten MI 4.0
Tungsten MI 4.0.0
This release is past End of Life.
Improvements, new features and functionality (1)
Installation and Deployment (1)
- The MongoDB applier now supports replication into MongoDB Atlas.
Bug Fixes (1)
Operating System/3rd Party Packages (1)
- Addresses OS security vulnerability identified by AWS.
Tungsten MI 3.0
Tungsten MI 3.0.0
This release is past End of Life.
Known Issue (1)
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)
- Cloudformation support for Composite Active/Active and Composite Active/Passive clusters will only allow all clusters to be deployed within the same AWS region. This will be addressed in a future release.
Tungsten MI 2.0
Tungsten MI 2.0.0
This release is past End of Life.
Improvements, new features and functionality (4)
Behavior Changes (4)
- Support added to allow easy configuration of extraction from, or replication into, an existing Tungsten Cluster.
- Installation Wizard now makes it easier to enable additional properties, such as SSL and basic filtering.
- Ships with v6.1.1 release of Tungsten Replicator.
- Additional support added for the following Targets:
- Oracle
- Cassandra
- Clickhouse
- Elasticsearch
- Hadoop
- MongoDB
Tungsten MI 1.0
Tungsten MI 1.0.0
This release is past End of Life.
- MySQL (Community Edition, Enterprise Edition, Percona, MariaDB, Amazon RDS/Aurora)
- AWS Redshift
- Vertica
- PostgreSQL
- Kafka
Known Issue (1)
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)
- Additional Targets will be supported in a future release.