tencent cloud

Feedback

TXSQL Kernel Release Notes

Last updated: 2023-08-09 15:06:00

This document describes the version updates of the TXSQL kernel.

Note:

  • For more information on how to upgrade the minor kernel version of a TencentDB for MySQL instance, see Upgrading Kernel Minor Version.
  • When you upgrade the minor version, some minor versions may be under maintenance and cannot be selected. The minor versions available in the console shall prevail.
Minor VersionDescription
20220831
  • New features
    • Supported setting the MySQL version dynamically.
    • Supported transparent column encryption. When creating a table, you can specify the encryption attribute for the `varchar` field, and the storage system will encrypt the column. This capability is expected to be commercialized in 2023.
    • Fixed the exception of the third-party data subscription tool caused by subscription to the comparison SQL for internal data consistency during tool usage.
      Note

      After the database instance is migrated, upgraded, or recovered after failure, the system will compare the data consistency to ensure the consistency of data. When comparison SQL is in statement mode, exceptions are easy to occur in response of some third-party subscription tools to the SQL in statement mode. When the instance is upgraded to its kernel, the third-party data subscription tool can't subscribe the comparison SQL for internal data consistency.

    • Supported adding NO_WAIT | WAIT [n] for DDL operations. This enables such operations to be rolled back immediately if they cannot obtain the MDL lock and must wait or if they have waited the specified time for the MDL lock.
    • Supported the fast query cache feature, which is suitable for scenarios with more reads than writes. If there are more writes than reads, the data is updated very frequently, or the result set of the query is very large, we recommend that you not enable this feature.
    • Supported enhanced MTS deadlock detection.
    • Supported parallel query. After this feature is enabled, large queries can be automatically identified. The parallel query capability leverages multiple compute cores to greatly shorten the response time of large queries.
  • Performance optimizations
    • Optimized the overheads of the transaction system to take snapshots. The Copy Free Snapshot method is adopted, the transaction delay is deleted from the global active transaction hash, and the snapshot taking method is optimized to determine the logical timestamp of the snapshot event. As tested by sysbench, the extreme performance is increased by 11% in the read-write scenario.
    • Optimized permission check for prepared statements. A variable is used globally to indicate the permission version number, a prepared statement records the version number after being prepared, and the system checks whether the version number has changed during execution. If there is no permission change, the system will skip the permission check; otherwise, it will check the permission and record the version number again.
    • Optimized the accuracy of time acquisition in the thread pool.
    • Optimized record offset acquisition. A record offset is cached for each index. When the conditions are met, the cached offset will be directly used, saving the computing overheads of invoking the `rec_get_offsets()` function.
    • Optimized parallel DDL.
      1. When the index field is small, the sampled memory size is reduced to lower the sampling frequency.
      2. The K-way merge algorithm is used for sorting, which effectively reduces the number of rounds of merging and sorting to lower the number of IOs.
      3. When records are read, the fixed-length offset is cached in order to avoid generating offsets for each record each time.
    • Optimized the undo log information recording logic to improve the INSERT performance.
    • Improved the performance after semi-sync was enabled.
    • Optimized the audit performance to reduce the system overheads.
  • Bug fixes
    • Fixed the issue where the displayed value of `Thread_memory` was abnormal sometimes.
    • Fixed the issue where the timestamp was inaccurate during batch statement audit.
    • Fixed issues related to column modification at the second level.
    • Fixed the issue where the `CREATE TABLE t1 AS SELECT ST_POINTFROMGEOHASH("0123", 4326);` statement caused source-replica disconnection.
    • Fixed the issue where the replica failed to retry during concurrent requests at the table level.
    • Fixed the `Malformed packet` error reported when `show slave hosts` was executed.
    • Fixed recycle bin issues.
    • Fixed the issue where the jemalloc mechanism easily triggered OOM on ARM device models.
    • Fixed the issue where `truncate pfs account table` caused the failure to collect statistics.
    • Fixed the exception that occurred while restoring the child table first and then restoring the parent table when the recycle bin had a foreign key constraint.
    • Fixed sql_mode log issues.
    • Fixed the occasional issue where a procedure became abnormal when `CREATE DEFINER` was executed.
    • Fixed Copy Free Snapshot issues.
    • Fixed the performance fluctuation of the thread pool.
    • Fixed the issue where the result of `hash join+union` might be empty.
    • Fixed memory issues.
20220401
  • Bug fixes
    • Fixed the issue where the stage variable error in Parallel DDL caused the stage null pointer to crash when creating FTS indexes.
    • Fixed the possible crash when adding full-text indexes.
20220331
  • Bug fixes
    • Fixed the crash caused by dereferencing wild pointers in the thread pool.
20220330
  • New features
    • Enabled writeset parallel replication by default.
    • Supported extended resource groups to control the I/O, memory utilization, and SQL timeout policy by user.
    • Supported flashback query to query data at any time point within the UNDO time range.
    • Supported `RETURNING` in a `DELETE`, `INSERT`, or `REPLACE` statement to retrieve the data rows modified by the statement.
    • Supported the GTID replication feature extension in row mode.
    • Supported transaction lock optimization.
    • Enhanced the recycle bin to support TRUNCATE TABLE and automatic cleanup of tables in the recycle bin.
    • Supported parallel DDL to speed up DDL operations for which to create indexes through three-phase parallel operations.
    • Supported quick index column modification.
    • Supported automatic statistics collection and cross-server statistics collection.
  • Performance optimizations
    • Optimized the GTID lock conflicts when transactions were committed if `binlog_order_commits` was disabled.
    • Accelerated MySQL startup by changing the InnoDB startup phase from single-threaded creation of Rsegs to multi-threaded creation.
  • Bug fixes
    • Fixed the issue where the transaction did not end when the connection was closed after deadlock or lock wait.
    • Fixed the issue where the `innodb_row_lock_current_waits` value was abnormal.
    • Fixed the SQL type error in the audit plugin without USE DATABASE.
    • Fixed the issue where tables smaller than `innodb_async_table_size` were also renamed during async drop of big tables.
    • Fixed the issue with incorrect escape characters in the audit plugin.
    • Fixed the issue of rollback after quick column modification.
    • Fixed the issue where the transaction system (trx_sys) may crash if it contains XA transactions when it is closed.
    • Fixed the crash when merging derived tables.
    • Fixed the issue where `binlog_format` was modified after writeset was enabled.
    • Fixed the error (error code: 1032) caused by hash scans with A->B->A->C update on the same row.
    • Fixed the issue where the sort index might be invalid in prepared statement mode.
    • Fixed the issue where the operator that consumed the materialized result might be merged into the returned value path of the materialized operator and result in incorrect comprehension and display of the execution plan.
    • Fixed exceptions in extreme cases for async drop of big tables.
    • Fixed the abnormal error message when setting a SQL filter.
    • Fixed the syntax error reported during stored procedure parsing.
    • Fixed the issue where historical histograms couldn't be applied.
    • Fixed the role column display compatibility issue caused by `SHOW SLAVE HOSTS(show replicas)`.
    • Fixed the crash of `Item_in_subselect::single_value_transformer` when the number of columns was incorrect.
    • Fixed the crash caused by memory leaks during cascading update if a subtable contained virtual columns and foreign key columns.
20211202
  • New features
    • Supported quick column modification.
    • Supported histogram versioning.
    • Supported SQL:2003 TABLESAMPLE (single table) sampling control syntax for obtaining random samples of physical tables.
    • Added non-reserved keywords: TABLESAMPLE BERNOULLI.
    • Added the `HISTOGRAM()` function to build a histogram for a given input field.
    • Supported compressed histograms.
    • Supported SQL throttling.
    • Supported MySQL cluster role configuration (default role: CDB_ROLE_UNKNOWN).
    • Added a new `Role` column to the `show replicas` command's display results to display roles.
    • Supported proxy.
  • Performance optimizations
    • Optimized the hotspot update problem caused by `insert on duplicate key update`.
    • Accelerated the application of hash scan by aggregating multiple identical binlog events.
    • Greatly reduced the memory usage by the `PREPARE` statement in point queries in the thread pool mode when the plan cache was enabled.
  • Bug fixes
    • Fixed the error of unstable performance after hotspot update optimization was enabled.
    • Fixed the issue where `select count(*)` parallel scans caused full-table scans in extreme cases.
    • Fixed performance issues caused by execution plan changes due to reading zero statistics in various cases.
    • Fixed the bug where queries were in the `query end` status for a long time.
    • Fixed the bug where statistics were severely underestimated in long records.
    • Fixed the bug where an error was reported when the Temptable engine was used and the number of aggregate functions in the selected column exceeded 255.
    • Fixed the case sensitivity issue of column names in the `json_table` function.
    • Fixed the bug that caused correctness issues in window functions because expressions returned early during `return true`.
    • Fixed the correctness issue caused by the pushdown by `derived condition pushdown` when it contained user variables.
    • Fixed the issue where SQL filters were prone to crash when no namespaces were added in a rule.
    • Fixed the QPS jitters when the thread pool was enabled under high concurrency and high conflict.
    • Fixed the issue where source-replica buffer pool sync leaked file handles in extreme cases (when host file systems were corrupted).
    • Fixed the index mapping issue.
    • Fixed the statistics cache sync issue.
    • Fixed the crash when information was not cleared during execution of the `UPDATE` statement or stored procedures.
20210830
  • New features
    • Supported limiting the number of preloaded rows.
    • Supported optimizing plan cache point query.
    • Supported extended ANALYZE syntax (UPDATE HISTOGRAM c USING DATA 'json') and direct writes to histograms.
  • Performance optimizations
    • Replaced index seek with histogram to reduce evaluation errors and I/O overheads (this capability is not enabled by default).
  • Bug fixes
    • Fixed the issue where there might be no statistics information during online DDL.
    • Fixed the issue where generated columns on replica instances were not updated.
    • Fixed the issue where the instance hung when binlog was compressed.
    • Fixed the issue of missing GTID in the previous_gtids event of the newly generated binlog file.
    • Fixed possible deadlocks when system variables were modified.
    • Fixed the issue where the information of the SQL thread of the replica instance in SHOW PROCESSLIST was incorrectly displayed.
    • Implemented the bug fix related to hash join provided in MySQL 8.0.23.
    • Implemented the bug fix related to writeset provided in MySQL.
    • Implemented the bug fix related to the query optimizer provided in MySQL 8.0.24.
    • Fixed the concurrency bugs of optimizing flush list and releasing pages in FAST DDL.
    • Optimized the memory usage during data dictionary update in instances with a large number of tables.
    • Fixed the crash caused by new primary key creation after INSTANT ADD COLUMN.
    • Fixed the OOM caused by memory growth in full-text index query.
    • Fixed the issue where -1 was included in the TIME field in the result set returned by SHOW PROCESSLIST.
    • Fixed the issue where tables might fail to be opened due to histogram compatibility.
    • Fixed the floating point accumulation error when Singleton histograms were constructed.
    • Fixed the replication interruption caused by using many Chinese characters in the table name of a row format log.
20210330
  • New features
    • Supported source-replica buffer pool sync: After a high-availability (HA) source-replica switch occurs, it usually takes a long time to warm up the replica, that is, to load hotspot data into its buffer pool. To accelerate the replica's warmup, TXSQL now supports the buffer pool sync between the source and the replica.
    • Supported sort-merge join.
    • Supported FAST DDL operations.
    • Supported querying the value of the `character_set_client_handshake` parameter.
  • Performance optimizations
    • Optimized the mechanism of scanning and flushing the dirty pages tracked in the flush list, so as to solve the performance fluctuation issue while creating indexes and thus improve the system stability.
  • Bug fixes
    • Fixed the deadlocks caused by the modification of the `offline_mode` and `cdb_working_mode` parameters.
    • Fixed the persistent concurrency issue of the `max_trx_id` field in `trx_sys` table.
20201230
  • New features
    • Supported the official updates of MySQL 8.0.19, 8.0.20, 8.0.21, and 8.0.22.
    • Supported dynamic setting of thread pooling mode or connection pooling mode by using the `thread_handling` parameter.
  • Performance optimizations
    • Optimized the `BINLOG LOCK_done` conflict to improve write performance.
    • Optimized the `trx_sys mutex` conflict by using lock-free hash to improve performance.
    • Optimized redo log flushing.
    • Optimized the buffer pool initialization time.
    • Optimized the clearing of adaptive hash indexes (AHI) during the `drop table` operations on big tables.
    • Optimized audit performance.
  • Bug fixes
    • Fixed performance fluctuation when cleaning InnoDB temporary tables.
    • Fixed the read-only performance decrease when the instance has many cores.
    • Fixed the error (error code: 1032) caused by hash scans.
    • Fixed concurrency security issues caused by hotspot update.
20200630
  • New features
    • Supported async drop of big tables. You can clear files asynchronously and slowly to avoid business performance fluctuation caused by dropping big tables. To apply for this feature, submit a ticket.
    • Supported automatic killing of idle tasks to reduce resource conflicts. To apply for this feature, submit a ticket.
    • Supported transparent data encryption (TDE).
  • Bug fixes
    • Fixed the issue where switch failed due to inconsistent positions between `relay_log_pos` and `master_log_pos`.
    • Fixed the data file error caused by asynchronously storing data in the disk.
    • Fixed the hard error when `fsync` returned `EIO` and retries were made repeatedly.
    • Fixed the crash caused by phrase search under multi-byte character sets in full-text index.
Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

7x24 Phone Support