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