20220716 | - New features
- Supported auto-increment column persistence for InnoDB.
- Supported precise memory statistics.
- Supported query-level memory monitoring.
- Supported recycle bin.
- Supported parallel DDL statements.
- Supported flashback query.
- Supported async rollback for internal XA transactions.
- Performance optimizations
- Optimized async drop of big tables.
The original definition of big table is 50 GB, which can now be controlled by the `innodb_async_table_size` to make it more flexible.
- Bug fixes
- Fixed the issue where `ERROR 1878 (HY000): Temporary file write failure` was reported when `alter table` was executed to create indexes.
- Fixed the issue where buf/buf/pool couldn't be viewed in PFS memory monitoring data.
- Fixed the issue where the returning statement might cause exceptions in some scenarios due to permission checks.
- Fixed the issue where an error was reported because the parser did not correctly handle semicolons in statements.
- Fixed the issue where single quotation marks in audit statements were not escaped.
- Fixed the issue of sudden memory usage increase on the ARM platform.
- Fixed the issue of source-replica inconsistency caused by modifying `binlog_format` after writeset was enabled.
- Fixed the issue of high CPU usage caused by exiting a large number of threads at the same time.
- Fixed bugs related to `drop table partition force`.
- Fixed the issue where binlog dump got stuck and caused the instance restart to become slow.
- Fixed the issue where the source-replica sync failed because `create table like temporary table` did not inherit the character set in the binlog.
- Fixed the issue where `show detail processlist` displayed illegal characters.
- Fixed the issue where the `thread_group` lock was not released when the thread pool was closed in some cases.
- Fixed the issue where updating the parent table at the parallel table level caused the instance to run abnormally.
- Fixed the issue where virtual columns were calculated incorrectly on the replica.
- Fixed the issue where `gtid_subset` did not set `null_value` to `false` after executing a row.
|
20211230 | - New features
- Supported the official updates of MySQL 5.7.19–5.7.36.
- Supported source-replica buffer pool sync to speed up the performance recovery after HA switch (around 90 seconds faster than that in native mode).
- Added the backup lock feature to provide lightweight metadata locks to improve the service availability during backup.
- Performance optimizations
- Made functions related to `utf8/utf8mb4 my_charpos` inline to optimize the performance of UTF_8 functions in read_write scenarios.
- Upgraded jemalloc to v5.2.1.
- Optimized file number acquisition during binlog rotation.
- Optimized semi-sync replica I/O.
- Optimized hash scan aggregation.
- Accelerated the startup of crash recovery for large transactions.
|
20211102 | - New features
- 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 to ensure data consistency. When comparison SQL is in statement mode, exceptions are prone 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.
|
20211031 | - New features
- Supported writeset replication.
- Performance optimizations
- Optimized the checkpoint mechanism to increase the backup success rate.
- Optimized the hash scan index selection.
- Optimized the hotspot update performance to support `insert on duplicate key update`.
- Bug fixes
- Fixed the error of unstable performance after hotspot update was enabled.
- Fixed the crash caused by rolling back the UPDATE operation after an instant DDL.
- Fixed the issue where the `CREATE TABLE AS SELECT` statement didn't inherit the compression attribute after column compression was enabled.
- Fixed the instance crash caused by the `show variables like 'tencent_root%'` statement after the `skip-grant-table` option was enabled.
- Fixed the crash of the Query Rewriter plugin in read-only mode.
- Fixed the error (error code: 1032) caused by hash scans in partitioned tables.
- Fixed the issue where the first large transaction's SBM was 0 in MTS mode.
- Fixed the crash of `stop slave` caused by `slave_preserve_commit_order=ON, slave_transaction_retries=0`.
- Fixed several XA transaction bugs.
- Fixed the issue where SQL splicing went wrong during `show create` after a JSON field with a default value was created.
- Fixed the issue where disconnected transactions could not be rolled back after transactions were blocked.
- Fixed the issue where there might be no statistics information for long records in InnoDB persistent mode.
- Ported 8.0 to fix the issue where `ANALYZE TABLE` might cause query retention.
- Fixed the issue where the InnoDB statistics couldn't be synced to the server layer in time after change.
- Fixed the issue where statistical sampling might block writes for too long and cause a crash (bug# 31889883).
- Fixed the possibility of reading zero rows during the InnoDB statistics update process (bug# 105224).
- Fixed the possible O(N^2) behavior in MVCC (bug# 28825617).
- Fixed the crash caused by closing a temp table and triggering binlog rotation when a connection was released.
|
20210630 | - New features
- Added the new command SHOW SLAVE DETAIL [FOR CHANNEL channel] for displaying the binlog timestamp that the current replica has replayed.
- Supported transaction_read_only/transaction_isolation parameters.
- Performance optimizations
- Accelerated the application of hash scan on replicas by aggregating multiple identical binlog events.
- Bug fixes
- Fixed the issue where duplicate primary keys existed, columns couldn't be found, and columns were too long in temp tables caused by the `UPDATE` statement.
- Fixed the issue where there might be no statistics information during the DDL process.
- Fixed the inaccurate undo log size in connection status statistics.
- Fixed the instance crash caused by querying the metadata_locks table.
- Modified `of` as a non-reserved keyword.
- Fixed the issue where the dynamically modified version number was not invalidly displayed in new connections.
- Fixed the issue where the wild pointer was accessed during page_cache cleanning.
- Fixed the issue where the execution of ALTER TABLE might report the "Incorrect key file for table" error.
- Fixed the excessive memory usage by partitioned tables.
- Fixed the issue where -1 was included in the TIME field in the result set returned by SHOW PROCESSLIST.
- Fixed the lock wait of XA transaction replication on replica nodes.
- Fixed the incorrect lock of partitioned tables in equal range query.
|
20210331 | - New features
- Supported `RETURNING` clause in a `DELETE`, `INSERT`, or `REPLACE` statement to return information about the rows that were deleted or modified.by the statement. For `DELETE`, undo data is returned, while for `INSERT` or `UPDATE`, redo data is returned.
- Supported column compression: Row compression and data page compression are already supported, but if small fields in a table are read and written frequently while big fields are not, both of the compression methods waste a lot of computing resources. In contrast, column compression can compress big fields that are infrequently accessed and reduce the space for storing whole rows of fields, so as to improve read and write access efficiency.
- Supported querying the value of the `character_set_client_handshake` parameter.
- Supported the manual cleaning of page cache occupied by log files by using the `posix_fadvise()` function based on the sliding window technique, so as to lower the memory pressure on the operating system and improve instance stability.
- Performance optimizations
- Optimized the parallelism of CREATE INDEX: A merge sort is needed in a temp table in the process of creating indexes, which is time-consuming. The parallel temp-table merge sort algorithm is now supported to reduce the time by more than 50%.
- 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 memory leak issue.
- Implemented the JSON bug fixes provided in MySQL 8.0 to improve the stability of using JSON.
- Fixed the error (error code: 1032) caused by hash scans.
- Fixed concurrency security issues caused by hotspot update.
- Implemented the gcol bug fixes provided by MySQL in batches.
- Fixed the failure to compare DateTime data with String data in some cases.
- Fixed the bug where file handles cannot be released if source-replica buffer pool sync is enabled.
- Fixed the deadlocks caused by setting the `offline_mode` parameter and creating connections at the same time.
- Fixed the crashes caused by the `m_end_range` parameter incorrectly set in concurrent range queries.
- Fixed the issue where it takes a long time to execute an `UPDATE` statement on a temp table if a JSON column appears in the `GROUP BY` clause.
|
20201231 | - New features
- Supported using `NOWAIT` and `SKIP LOCKED` in `SELECT FOR UPDATE/SHARE`.
- Supported dynamic setting of thread pooling mode or connection pooling mode by using the `thread_handling` parameter.
- Supported source-replica buffer pool sync.
- Supported monitoring of user connection status. Monitoring items include sync/async IO, memory, log size, CPU time, and lock duration.
- Performance optimizations
- Optimized the transaction subsystem to improve the high concurrency performance.
- Optimized the time to start crash recovery for large transactions.
- Optimized redo log flushing.
- Optimized the buffer pool initialization time.
- Optimized UTF8/UTF8MB4 string efficiency.
- Optimized audit performance.
- Revoked the restriction on the value of `gtid_purged` being empty.
- Optimized the backup lock. `LOCK TABLES FOR BACKUP`, `LOCK BINLOG FOR BACKUP`, and `UNLOCK BINLOG` are supported. `FLUSH TABLES WITH READ LOCK` is used to take a backup of the database, but it blocks the whole database from providing service. In contrast, the three statements above use a lightweight backup lock to ensure data consistency during physical/logical backup while allowing the database to providing service.
- Optimized the `drop table` operations on big tables.
- Bug fixes
- Fixed the hang issue when querying `performance_schema`.
- Fixed the overflow issue of the `digest_add_token` function.
- Fixed the crash caused by ibuf access when the `TRUNCATE TABLE` command was executed.
- Fixed the query correctness issue caused by const propagation when `LEFT JOIN` statement is used.
|
20200930 | - Performance optimizations
- Optimized the backup lock. `FLUSH TABLES WITH READ LOCK` is used to take a backup of the database, but it blocks the whole database from providing service. Therefore, a lightweight backup lock is provided in this version.
- Optimized the `drop table` operations on big tables. The `innodb_fast_ahi_cleanup_for_drop_table` parameter helps significantly reduce the time it takes to clean up adaptive hash indexes when dropping big tables.
- Bug fixes
- Fixed the crash caused by ibuf access when TRUNCATE TABLE was executed.
- Fixed cold backup failures when the quick column adding feature was enabled.
- Fixed performance degradation caused by frequently releasing InnoDB memory table objects.
- Fixed the query correctness issue caused by const propagation when `LEFT JOIN` statement is used.
- Fixed the core issue caused by rule class name conflict between SQL throttling and query rewrite.
- Fixed the concurrent update issue caused by the `INSERT ON DUPLICATE KEY UPDATE` statement in multiple sessions.
- Fixed the `duplicate key error` caused by concurrent INSERTs when `auto_increment_increment` is used.
- Fixed the crashes caused by evicting InnoDB memory objects.
- Fixed concurrency security issues caused by hotspot update.
- Fixed the coredump issue when enabling the thread pool after jemalloc was upgraded to v5.2.1.
- Fixed the incomplete audit log issue caused by fwrite error-free handling.
- Fixed the issue where `mysqld_safe` failed to print logs when it was started by a root user.
- Fixed the increase in the size of the DDL log file caused by `ALTER TABLE EXCHANGE PARTITION`.
|
20200701 | - Bug fixes
- Fixed the INNOBASE_SHARE index mapping error.
|
20200630 | - New features
- Supported using `NOWAIT` and `SKIP LOCKED` in `SELECT FOR UPDATE/SHARE` statements.
- Supported large transaction optimization, which can solve such problems as source-replica delay and backup failures caused by large transactions.
- Optimized audit performance to support async audit.
- Bug fixes
- Fixed the overflow of the `digest_add_token` function.
- Fixed the instance crash caused by `insert blob`.
- Fixed the source-replica replication interruption when a hash scan failed to find the record while updating the same row in an event.
- Fixed the hang issue when querying `performance_schema`.
|
20200331 | - New features
- Added the official MySQL 5.7.22 JSON series functions.
- Supported the hotspot update feature as described in Real-Time Session for ecommerce flash sale scenarios.
- Supported the SQL throttling feature as described in Real-Time Session.
- Supported encryption with custom KMS keys.
- Bug fixes
- Fixed the crash caused by phrase search under multi-byte character sets in full-text index.
- Fixed the crash of the CATS lock scheduling module in high-concurrency scenarios.
|
20190830 | - New features
- Supported skipping the corrupted data and continuing to parse when a binlog is corrupted. If the source instance and binlog are both damaged, this feature helps restore data from the replica database for use as much as possible.
- Supported syncing data from non-GTID to GTID mode.
- Supported querying the "user thread memory usage" by executing the `SHOW FULL PROCESSLIST` statement.
- Supported quick column adding for tables as described in Overview. This feature does not replicate the data or use disk capacity/IO, and can implement changes in real time during peak hours.
- Supported persistent auto-increment values.
- Bug fixes
- Fixed the issue where replication would be interrupted if the column name in a `GRANT` statement contained reserved words.
- Fixed the issue where SQL execution efficiency dropped when reverse scan was performed on a partitioned table.
- Fixed the issue where the query result had an exception due to data inconsistency when using virtual column index and primary key.
- Fixed the issue where data was missing due to InnoDB primary key range queries.
- Fixed the issue where the system crashed when a DDL statement was executed for a table with spatial indexes.
- Fixed the issue where source-replica disconnection occurred when the binlog size was too large and the file length in the heartbeat information exceeded the limit.
- Fixed the issue where other events could not be executed as scheduled when an event was deleted.
- Fixed the issue where the aggregate query result was incorrect.
|
20190615 | - New features
- Supported transparent data encryption (TDE).
|
20190430 | - Bug fixes
- Fixed the issue where null pointer reference occurred when the LONGTEXT feature was used in subqueries.
- Fixed the issue where source-replica disconnection occurred due to hash scan.
- Fixed the issue where the replica I/O thread was interrupted due to source binlog switch.
- Fixed the crash caused by the use of `NAME_CONST`.
- Fixed the illegal mix of collation error caused by character set.
|
20190203 | - 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 CATS lock scheduling.
- Supported creating and dropping temp tables and CTS syntax in transactions when GTID is enabled. To apply for this feature, submit a ticket.
- Supported implicit primary keys. To apply for this feature, submit a ticket.
- Supported users without super privileges to kill sessions of other users by configuring the `cdb_kill_user_extra` parameter (default value: `root@%`).
- Supported enterprise-grade encryption functions. To apply for this feature, submit a ticket.
- Bug fixes
- Fixed the issue where replication was interrupted when binlog cache file ran out of space.
- Fixed the hard error when `fsync` returned `EIO` and retries were made repeatedly.
- Fixed the issue where replication was interrupted and could not be recovered due to GTID holes.
|
20180918 | - New features
- Supported automatic killing of idle transactions to reduce resource conflicts. To apply for this feature, submit a ticket.
- Supported automatically changing the storage engine from MEMORY to InnoDB: If the global variable `cdb_convert_memory_to_innodb` is `ON`, the engine will be changed from MEMORY to InnoDB when a table is created or modified.
- Supported invisible indexes.
- Supported memory management with jemalloc, which can replace the jlibc memory management module to reduce memory usage and improve allocation efficiency.
- Performance optimizations
- Optimized binlog switch to reduce the `rotate` lock duration and improve system performance.
- Accelerated the crash recovery.
- Bug fixes
- Fixed the issue where an event became invalid due to source-replica switch.
- Fixed the crash caused by `REPLAY LOG RECORD`.
- Fixed the issue where the query result was incorrect due to loose index scans.
|
20180530 | - New features
- Supported SQL auditing.
- Supported table-level concurrent replication. To apply for this feature, submit a ticket.
- Performance optimizations
- Optimized replica instance locks to improve the sync performance of replica instances.
- Optimized the pushdown of the `SELECT ... LIMIT` statement.
- Bug fixes
- Fixed the issue where switch failed due to inconsistent positions between `relay_log_pos` and `master_log_pos`.
- Fixed the crash caused by `Crash on UPDATE ON DUPLICATE KEY`.
- Fixed the `Invalid escape character in string.` error when a JSON column was imported.
|
20171130 | - New features
- Supported the `information_schema.metadata_locks` view to query the MDL grant and wait status in the current instance.
- Supported the `ALTER TABLE NO_WAIT | TIMEOUT` syntax to grant DDL operations wait timeout. To apply for this feature, submit a ticket.
- Supported thread pool. To apply for this feature, submit a ticket.
- Bug fixes
- Fixed the error of `innodb_buffer_pool_pages_data` parameter overflow by calculating it based on `bytes_data`.
- Fixed the issue where speed limit plugin became unavailable in async mode.
|
Was this page helpful?