This topic describes changes to AliSQL.

MySQL 8.0

20200331

  • New features:

    Recycle bin: The TRUNCATE TABLE statement is supported. This statement moves the original table to a dedicated recycle bin directory and creates a new table with the same structure.

  • Performance optimization:
    • TCP error output is disabled by default.
    • Performance of thread pools with the default configuration is improved.
  • Bugs fixed:
    • The bug that databases and tables become invalid because partition file names contain #p is fixed.
    • The bug that statement concurrency control (CCL) statements are case-sensitive is fixed.
  • Changes in MySQL 8.0.17 and MySQL 8.0.18 are merged. For more information, see Changes in MySQL 8.0.17 and Changes in MySQL 8.0.18.

20200229

  • New features:
    • Performance Agent: This feature is added to provide a more efficient way to collect performance statistics. You can use the performance agent as a MySQL plug-in to collect performance statistics on RDS for MySQL instances.
    • Network round-trip time is added and recorded in performance data in semi-synchronous mode.
  • Performance optimization:
    • CCL operations are allowed on read-only instances.
    • Outlines are supported for secondary instances.
    • Short-lived connections are optimized for proxy instances.
    • The time required to execute the PAUSE statement on different CPU architectures is optimized.
    • A memory table is added to view the running status of a thread pool.
  • Bugs fixed:
    • In Linux kernel 4.9 and earlier, ppoll is replaced with poll.
    • The bug in calling the wrap_sm4_encrypt function is fixed.
    • The bug that causes global variables to be locked when audit logs are scrolled is fixed.
    • The bug in restoration inconsistency checks is fixed.
    • The bug that causes the time value in the io_statistics table to be incorrect is fixed.
    • The bug that the invalid compression algorithm causes a system crash is fixed.
    • The bug that the user column is not compatible with MySQL 5.6 is fixed.

20200110

  • New features:

    Inventory Hint: Three hints are added to support the SELECT, UPDATE, INSERT, and DELETE statements. This improves business throughput and the efficiency to submit and roll back transactions.

  • Performance optimization:
    • The queue structure of concurrency control is initialized before the rules of concurrency control when an instance is started.
    • Links to small files are canceled in the process of asynchronous cleanup.
    • Performance of thread pools is optimized. For more information, see Thread Pool.
    • Restoration inconsistency checks are disabled by default.
    • The permissions required to configure variables are changed.
      • The permissions required to configure the following variables are changed to common user permissions:
        • auto_increment_increment
        • auto_increment_offset
        • bulk_insert_buffer_size
        • binlog_rows_query_log_events
      • The permissions required to configure the following variables are changed to the super user or a user with permissions to manage system variables.
        • binlog_format
        • binlog_row_image
        • binlog_direct
        • sql_log_off
        • sql_log_bin

20191225

  • New features:

    Recycle bin: Deleted tables are transferred to the recycle bin. These tables can be retrieved from the recycle bin before the retention period elapses.

  • Performance optimization:
    • Processing performance of short-lived connections is improved.
    • A dedicated thread is used to serve the maintain user to avoid high-availability failures.
    • If an error occurs when binary logs are updated by using redo logs, the file synchronization lock is explicitly released.
    • Unnecessary TCP error logs are deleted.
    • Thread pools are enabled by default.
  • Bugs fixed:
    • The bug that occurs when slow query logs are updated is fixed.
    • The bug that causes an incorrect lock scope is fixed.
    • The core dump issue caused by the Select function in Transparent Data Encryption (TDE) is fixed.

20191115

New feature:

Statement Queue: Bucket-level queuing is supported. Statements that request the same resources are queued in one bucket to reduce overheads.

20191101

  • New features:
    • The SM4 encryption algorithm is supported for TDE.
    • Data protection for secondary instances is supported. Only accounts with the SUPER or REPLICATION_SLAVE_ADMIN role have permissions to insert, delete, or modify data in the slave_master_info, slave_relay_log_info, and slave_worker_info tables.
    • A mechanism is introduced to increase the priorities of auto-increment keys. If a table does not have a primary key or a unique key without a null value, the auto-increment key without a null value has the highest priority.
    • A mechanism is introduced to prevent automatic conversion of system tables and tables called by threads in the initializing state from the MEMORY to MyISAM storage engines.
    • A mechanism is introduced to flush binary log files to disks before redo log files.
    • A mechanism is introduced to update temporary tables when the RDS instance is locked.
    • X-Engine is provided to store transactions based on a log-structured merge (LSM) tree.
  • Performance optimization:
    • Thread Pool: This feature is optimized to reduce mutexes.
    • Performance Insight: This feature is optimized to monitor thread pools.
    • Parameter adjustment:
      • primary_fast_lookup: a session parameter. Default value: true.
      • thread_pool_enabled: a global parameter. Default value: true.

20191015

  • New features:
    • TDE: Real-time I/O encryption and decryption on data files are supported. Data is encrypted before it is written to disks and is decrypted before it is read from disks to the memory.
    • Returning: Result sets can be returned by data manipulation language (DML) statements. The DBMS_TRANS package is provided to trace statement executions.
    • Forced conversion of the storage engine from MyISAM or MEMORY to InnoDB: If the global variable force_mysiam_to_innodb or force_memory_to_innodb is set to ON, the storage engine is converted from MyISAM or MEMORY to InnoDB when tables are created or modified.
    • Only privileged accounts have permissions to switch over services between primary and secondary instances.
    • Performance proxy plug-in: This plug-in is provided to obtain performance data and save it as TXT files to your computer. The performance data files on your computer are deleted by using a round-robin algorithm. Only the latest second-level performance data files are retained.
    • Configurable timeout period of mutexes in InnoDB: This timeout period can be changed by setting the global variable innodb_fatal_semaphore_wait_threshold. The default value of the global variable is 600.
    • Ignoring index hint errors: Index hint errors can be ignored by setting the global variable ignore_index_hint_error. The default value of the global variable is false.
    • SSL encryption is disabled. For more information, see Configure SSL encryption for an RDS for MySQL instance.
    • TCP error output: TCP errors and error codes in read, read-wait, and write-wait events are returned by using the end_connection event, and logs with information about the errors are generated.
  • Bugs fixed:
    • The bug that prevents a Linux operating system from merging local asynchronous I/O (AIO) requests before linear Read Ahead is triggered is fixed.
    • The bug that prevents the proper collection of table and index statistics is fixed.
    • A mechanism is introduced to allow direct access to the primary key index of a table with a primary key.

20190915

Bugs fixed:

The bug that causes memory leakage when the Cmd_set_current_connection process runs is fixed.

20190816

  • New features:
    • Thread Pool: Threads are separated from sessions. If a large number of sessions exist, the system only needs to run a small number of threads to complete the active sessions.
    • Statement concurrency control: The maximum number of concurrent requests can be specified to handle traffic bursts, process statements that consume excessive resources, and adapt to changes of SQL models. This ensures continuity and stability of the RDS for MySQL instance.
    • Statement outline: Optimizer hints and index hints are used to stabilize the execution of planned statements on the RDS for MySQL instance.
    • Sequence Engine: The mechanism used to obtain sequence values is simplified.
    • Purge Large File Asynchronously: Asynchronous deletion of files is supported. Before you delete a tablespace, the system renames its files as temporary files. Then, a background thread is started to delete the temporary files asynchronously.
    • Performance Insight: Instance-level load monitoring, association analysis, and performance optimization are supported. This feature helps you evaluate the loads of the RDS for MySQL instance and locate performance problems to ensure database stability.
    • Optimized instance locking: Tables can be dropped or truncated even if the RDS for MySQL instance is locked.
  • Bugs fixed:
    • The bug that prevents the system from correctly calculating file sizes is fixed.
    • The bug that allows irrelevant processes to reuse released memory resources is fixed.
    • The bug that causes the host to break down when the cache size is 0 is fixed.
    • The bug that causes conflicts between implicit primary keys and CTS statements is fixed.
    • The bug that prevents the system from correctly logging slow queries is fixed.

20190601

  • Performance optimization:
    • Metadata locking on logging tables is reduced.
    • The code for termination options is restructured.
  • Bugs fixed:
    • The bug that prevents the system from logging precompiled statements by using SQL audit is fixed.
    • The bug that prevents the system from filtering out error logs in logging tables with invalid names is fixed.

ApsaraDB RDS for MySQL 5.7 in Basic or High-availability Edition

20200331

  • New features:
    • Fast Query Cache: RDS query cache is supported to improve database query performance. RDS query cache is developed and optimized based on native MySQL query cache.
    • Two metadata locks are migrated from Percona Server 5.7: LOCK TABLES FOR BACKUP (LTFB) and LOCK BINLOG FOR BACKUP (LBFB).
  • Performance optimization:
    • Thread pools are optimized to be compatible with earlier versions of MySQL.
    • TCP error output is disabled by default.
    • Performance of thread pools with the default configuration is improved.
  • Bugs fixed:
    • The bug that temporary files are deleted when you delete large files is fixed.
    • The bug that causes dump threads to time out in thread pools is fixed.
    • The bug that the counter of the IPK field in the process context is incorrect is fixed.
    • The bug that rds_change_user causes pfs thread leakage and release is fixed.
  • Changes in MySQL 5.7.28 are merged. For more information, see GitHub.

20200229

  • New features:
    • Performance Agent: This feature is added to improve the efficiency to collect performance statistics. You can use the performance agent as a MySQL plug-in to collect performance statistics on RDS for MySQL instances.
    • Network round-trip time is added and recorded in performance data in semi-synchronous mode.
  • Performance optimization:
    • The time required to execute the PAUSE statement on different CPU architectures is optimized.
    • Short-lived connections are optimized for the proxy.
    • A memory table is added to view the running status of the thread pool.
  • Bugs fixed:
    • The bug that causes DDL redo logs to be insecure is fixed.
    • The bug that causes the time value in the io_statistics table to be incorrect is fixed.
    • The bug that the server crashes after a table is modified is fixed.
    • The bugs in the RDS for MySQL test cases are fixed.

20200110

Performance optimization:

  • Links to small files are canceled in the process of asynchronous cleanup.
  • Performance of thread pools is optimized. For more information, see Thread Pool.
  • The default value of the thread_pool_enabled parameter is changed to OFF.

20191225

  • New features:

    Internal account management: User permissions are adjusted to protect data security.

  • Performance optimization:
    • Processing performance of short-lived connections is improved.
    • A dedicated thread is used to serve the maintain user to avoid high-availability failures.
    • Unnecessary TCP error logs are deleted.
    • Thread pools are optimized.
  • Bugs fixed:
    • The bug that causes the mysqld process to crash during read/write splitting is fixed.
    • The core dump issue caused by the key ring is fixed.

20191115

Bug fixed:

The bug that causes the system to display variables in SQL audit logs generated from primary/secondary switchovers is fixed.

20191101

  • New features:
    • The SM4 encryption algorithm is supported for TDE.
    • A mechanism is introduced to allow direct access to the primary key index of a table with a primary key.
    • A mechanism is introduced to prevent the automatic conversion of system tables and tables called by threads in the initializing state from the MEMORY to MyISAM storage engines.
  • Performance optimization:
    • Thread Pool: This feature is optimized to reduce mutexes.
    • SQL audit log: This feature is optimized to store SQL audit logs in cache, which improves SQL audit logging performance.
    • Performance Insight: This feature is optimized to monitor thread pools.
    • Thread pools are enabled by default. For more information, see Thread Pool.
  • Bugs fixed:
    • The bug that prevents the release of locks on user tables when these tables are being managed or maintained is fixed.
    • More TCP errors are added.

20191015

  • New features:
    • Rotation of slow query logs: Every CSV slow query log file is assigned a unique name and a new file. This ensures that no data is lost during the collection of slow query logs. You can run the show variables like '%rotate_log_table%'; command to check whether rotation of slow query logs is enabled.
    • Performance proxy plug-in: This plug-in is provided to obtain performance data and save it as TXT files to your computer. The performance data files on your computer are deleted by using a round-robin algorithm. Only the latest second-level performance data files are retained.
    • Forced conversion of the storage engine from MEMORY to InnoDB: If the global variable rds_force_memory_to_innodb is set to ON, the storage engine is converted from MEMORY to InnoDB when tables are created or modified.
    • Optimized TDE: The keyring-rds plug-in is provided to enable communication with the administration system or Alibaba Cloud Key Management Service (KMS).
    • TCP error output: TCP errors and error codes in read, read-wait, and write-wait events are returned by using the end_connection event, and logs with information about the errors are generated.
  • Bug fixed:

    The bug that causes error 1290 in DDL operations is fixed.

20190925

Parameter adjustment:

  • The default value of the system variable auto_generate_certs is changed from true to false.
  • The global read-only variable auto_detact_certs is added. Valid values: true | false. Default value: false. This variable is available if code is compiled by using OpenSSL on the server. It specifies whether the server automatically searches for the SSL certificate and key file in the data directory.

20190915

New feature:

Thread Pool: Threads are separated from sessions. If a large number of sessions exist, the system only needs to run a small number of threads to complete the active sessions.

20190815

  • New features:
    • Purge Large File Asynchronously: Asynchronous deletion of files is supported. Before you delete a tablespace, the system renames its files as temporary files. Then, a background thread is started to delete the temporary files asynchronously.
    • Performance Insight: Instance-level load monitoring, association analysis, and performance optimization are supported. This feature helps you evaluate the loads of the RDS for MySQL instance and locate performance problems to ensure database stability.
    • Optimized instance locking: Tables can be dropped or truncated even if the RDS for MySQL instance is locked.
  • Bugs fixed:
    • The bug that enables you to set the rds_prepare_begin_id option in the set rds_current_connection command is fixed.
    • The bug that prevents the system from updating information about locked accounts is fixed.
    • The bug that allows you to use actual as a keyword in table names is fixed.
    • The bug that causes overflow of time fields in slow query logs is fixed.

20190510

New feature: Temporary tables can be created during transactions.

20190319

New feature: Thread IDs can be configured in handshake packets.

20190131

  • Upgrade to MySQL 5.7.25 is supported.
  • JeMalloc is disabled. JeMalloc is used for memory management.
  • The bug that prevents the system from correctly calculating the internal variable net_lenth_size is fixed.

20181226

  • New feature: Dynamic changes to the system variable binlog-row-event-max-size are supported to expedite the replication of tables without a primary key.
  • Bug fixed: The bug that prevents the proxy instances from applying for memory resources is fixed.

20181010

  • Implicit primary keys are supported.
  • Replication of tables without a primary key between the primary and secondary instances is accelerated.
  • Native AIO is supported to improve I/O performance.

20180431

New features:

  • The High-availability Edition is supported.
  • SQL audit is supported.
  • Protection for instances backed up by using snapshots is enhanced.

ApsaraDB RDS for MySQL 5.7 in the Enterprise Edition

20191128

  • New features:

    Read/write splitting is supported.

  • Bugs fixed:
    • The bug that causes errors in calculating the value of the Second_Behind_Master metric for a follower is fixed.
    • The bug that causes dead locks during the re-execution of table-level parallel replication transactions is fixed.
    • XA-related bugs are fixed.

20191016

  • New features:
    • An upgrade from the High-availability Edition to the Enterprise Edition is available to MySQL 5.7 with local SSDs.
    • The GTID function provided by native MySQL is supported. This function is disabled by default.
    • All AliSQL functions developed by Alibaba Cloud and released prior to 20190915 for MySQL 5.7 in the Basic or High-availability Edition are integrated.
  • Bugs fixed:

    The bug that causes the binary log function to be disabled after secondary instances are reset is fixed.

20190909

  • New features:
    • The execution of long transactions is optimized to ensure execution efficiency when the synchronous mode is used to replicate data between the primary and secondary instances.
    • Binary logs can be dumped from a leader or follower.
    • Read-only instances can be created.
    • The InnoDB storage engine is used for system tables by default.
  • Bugs fixed:
    • The bug that the commands executed by a follower to delete logs become invalid is fixed.
    • The bug that causes slave threads to abnormally exit when the slave_sql_verify_checksum parameter is set to OFF and the binlog_checksum parameter is set to crc32 is fixed.

20190709

New features:

  • The Enterprise Edition is supported.
  • The semi-sync plug-in is disabled.
  • Table-level parallel replication and write set-level parallel replication are supported.
  • The pk_access module is optimized to expedite the query of primary keys.
  • Thread pools are supported.
  • All AliSQL functions developed by Alibaba Cloud and released prior to 20190510 for MySQL 5.7 in the Basic or High-availability Edition are integrated.

MySQL 5.6

20200430

New features

  • Data Protect: Different security policies can be customized to avoid data loss caused by DROP and TRUNCATE operations.
  • The table mdl_info is added to store metadata lock information.
  • The conflict that occurs when the thread pool and the ic_reduce function are both enabled is addressed.

20200331

Performance optimization:

  • Performance of thread pools with the default configuration is improved.
  • TCP error output is disabled by default.

20200229

  • New features:

    Read/write splitting is supported for proxy instances.

  • Performance optimization:
    • Thread pool functions are optimized.
    • The time required to execute the PAUSE statement on different CPU architectures is optimized.
  • Bugs fixed:

    The bug in partial submission of XA transactions is fixed.

20200110

  • New features:

    Thread Pool: Threads are separated from sessions. If a large number of sessions exist, the system only needs to run a small number of threads to complete the active sessions.

  • Performance optimization:

    Links to small files are canceled in the process of asynchronous cleanup.

  • Bugs fixed:

20191212

Performance optimization:

Unnecessary TCP error logs are deleted.

20191115

Bugs fixed:

The bug that causes an overflow of timestamps in slow query logs is fixed.

20191101

Bugs fixed:

  • The bug that causes the system to rotate slow query logs when you update common logs is fixed.
  • Some display bugs are fixed.

20191015

  • New features:
    • Rotation of slow query logs: Every CSV slow query log file is assigned a unique name and a new file. This ensures that no data is lost during the collection of slow query logs. You can run the show variables like '%rotate_log_table%'; command to check whether rotation of slow query logs is enabled.
    • SM4: A new SM4 encryption algorithm is introduced to replace the original SM4 encryption algorithm.
    • Purge Large File Asynchronously: Asynchronous deletion of files is supported. Before you delete a tablespace, the system renames its files as temporary files. Then, a background thread is started to delete the temporary files asynchronously.
    • TCP error output: TCP errors and error codes in read, read-wait, and write-wait events are returned by using the end_connection event, and logs with information about the errors are generated.
    • SQL audit log: This feature is optimized to store SQL audit logs in cache, which improves SQL audit logging performance.
  • Bugs fixed:
    • The pstack command is disabled to fix the bug that the pstack command is not responded when there are a large number of connections.
    • The bug that causes conflicts between implicit primary keys and CREATE TABLE AS SELECT statements is fixed.
    • The bug that prevents the system from automatically deleting temporary files created from binary log files is fixed.

20190815

Optimized instance locking: Tables can be dropped or truncated even if the RDS for MySQL instance is locked.

20190130

Some bugs that compromise database stability are fixed.

20181010

The rocksdb_ddl_commit_in_the_middle parameter is added to MyRocks. If this parameter is set to on, some DDL statements call the COMMIT operation when they are executed.

201806** (ApsaraDB RDS for MySQL 5.6.16)

New feature: Microsecond-level time precision is supported for slow query logs.

20180426 (ApsaraDB RDS for MySQL 5.6.16)

  • Index hiding is supported. For more information, visit AliSQL.
  • The bug that causes the system to apply threads on secondary instances is fixed.
  • The bug that compromises database performance when updates to partitioned tables are applied on secondary instances is fixed.
  • The bug that causes TokuDB to restructure tables for which you alter comments is fixed. For more information, visit AliSQL.
  • The bug that triggers deadlocks when SHOW SLAVE STATUS or SHOW STATUS statements are executed is fixed.

20171205 (ApsaraDB RDS for MySQL 5.6.16)

  • The bug that triggers deadlocks when OPTIMIZE TABLE and ONLINE ALTER TABLE statements are executed at the same time is fixed.
  • The bug that triggers conflicts between sequences and implicit primary keys is fixed.
  • The bug that prevents the proper execution of SHOW CREATE SEQUENCE statements is fixed.
  • The bug that causes errors in table statistics collected from TokuDB is fixed.
  • The bug that triggers deadlocks when OPTIMIZE statements are executed on tables in parallel is fixed.
  • The bug that prevents the system from correctly recording character sets in QUERY_LOG_EVENT is fixed.
  • The bug that databases cannot be stopped due to signal processing issues is fixed. For more information, visit AliSQL.
  • The bug triggered by the execution of RESET MASTER statements is fixed.
  • The bug that leaves secondary instances in a constant waiting state is fixed.
  • The bug that prevents the system from updating the states of primary and secondary instances after primary/secondary switchovers is fixed in the Enterprise Edition.
  • The bug that the database process breaks down due to the execution of SHOW CREATE TABLE statements is fixed.

20170927 (ApsaraDB RDS for MySQL 5.6.16)

Bug fixed: The bug that the system uses incorrect indexes to query tables from TokuDB is fixed.

20170901 (ApsaraDB RDS for MySQL 5.6.16)

  • New features:
    • Upgrade of SSL encryption to TLS 1.2 is supported. For more information, visit AliSQL.
    • Sequences are supported.
  • Bug fixed: The bug that causes the system to return an incorrect result set for the NOT IN operator is fixed.

20170530 (ApsaraDB RDS for MySQL 5.6.16)

New feature: The privileged account of an RDS instance has permissions to terminate connections created by all standard accounts on the RDS instance.

20170221 (ApsaraDB RDS for MySQL 5.6.16)

New feature: Read/write splitting is supported. For more information, see Read/write splitting overview.

MySQL 5.5

20181212

Bug fixed: The bug that the gettimeofday(2) function returns an incorrect value is fixed. This function returns a time value, which is used to calculate the timeout period. If the returned time value is incorrect, some operations never time out.