Percona announces the GA release of Percona Server for MySQL 5.7.20-18 on December 14, 2017. Download the latest version from the Percona web site or the Percona Software Repositories. You can also run Docker containers from the images in the Docker Hub repository.
Based on MySQL 5.7.20, including all the bug fixes in it, Percona Server for MySQL 5.7.20-18 is the current GA release in the Percona Server for MySQL 5.7 series. Percona’s provides completely open-source and free software. Find release details in the 5.7.20-18 milestone at Launchpad. New Features:
[LIST]
[]Percona Server packages are now available for Ubuntu 17.10 (Artful).
[]As part of InnoDB Full-Text Search improvements, a new innodb_ft_ignore_stopwords variable has been implemented which controls whether InnoDB Full-Text Search should ignore stopword list when building/updating an FTS index. This feature is also fixing bug #1679135 (upstream #84420).
[]Percona Server has implemented InnoDB Page Fragmentation Counters.
[]Percona Server has implemented support for Multiple page asynchronous I/O requests. This feature was ported from a Facebook MySQL patch.
[]Percona Server has implemented TokuDB integration with PERFORMANCE_SCHEMA.
[]As part of Data at Rest Encryption, Percona Server has implemented support for InnoDB general tablespace encryption and Keyring Vault plugin. This feature is considered BETA quality.
[/LIST]Bugs Fixed:
[LIST]
[]Percona Server 5.7 Docker images did not include TokuDB. Bugs fixed #1682419 and #1699241.
[]If an I/O syscall returned an error during the server shutdown with Thread Pool enabled, a mutex could be left locked. Bug fixed #1702330 (Daniel Black).
[]Dynamic row format feature to support BLOB/VARCHAR in MEMORY tables requires all the key columns to come before any BLOB columns. This requirement, however, was not enforced, allowing creating MEMORY tables in unsupported column configurations, which then crashed or lose data in usage. Bug fixed #1731483.
[]After fixing bug #1668602, bug #1539504, and bug #1313901, CREATE/DROP TEMPORARY TABLE statements were forbidden incorrectly in transactional contexts, including function and trigger calls, even when they required no binary logging at all. Bug fixed #1711781.
[]Running ANALYZE TABLE while a long-running query is accessing the same table in parallel could lead to a situation where new queries on the same table are blocked in a Waiting for table flush state. Fixed by stopping ANALYZE TABLE flushing affected InnoDB and TokuDB tables from the table definition cache. Bug fixed #1704195 (upstream #87065).
[]CREATE TABLE … LIKE … did not use the source row_format on target TokuDB table. Bug fixed #76.
[]TokuDB would encode already encoded database name for a directory name. Bug fixed #74.
[/LIST]
Other bugs fixed: #1720810, #83, #80, and #75. MyRocks Changes:
[LIST]
[]RocksDB has implemented a FlushWAL API which improves upon the performance of MySQL 2-phase-commit during binary log group commit flush stage. This feature adds support for using the FlushWAL API in MyRocksand also matches rocksdb_flush_log_at_trx_commit variable with innodb_flush_log_at_trx_commitbehavior. To implement this feature rocksdb_manual_wal_flush and rocksdb_concurrent_preparevariables have been implemented.
[]A new rocksdb_force_compute_memtable_stats_cachetime variable has been implemented that cane be used to specify how long the cached value of memtable statistics should be used instead of computing it every time during the query plan analysis.
[]A new rocksdb_large_prefix variable has been implemented which, when enabled, allows index key prefixes longer than 767 bytes (up to 3072 bytes). This option mirrors the innodb_large_prefix. The values for this variable should be the same between master and slave.
[]A new rocksdb_max_background_jobs variable has been implemented to replace rocksdb_base_background_compactions, rocksdb_max_background_compactions, and rocksdb_max_background_flushes variables. This variable specifies the maximum number of background jobs. It automatically decides how many threads to allocate towards flush/compaction. It was implemented to reduce the number of (confusing) options users and can tweak and push the responsibility down to RocksDBlevel.
[]A new rocksdb_sim_cache_size variable has been implemented to enable the simulated cache. This can be used to figure out the hit/miss rate with a specific cache size without changing the real block cache.
[]Input can be now sorted by the Primary Key during the bulkload by enabling the rocksdb_bulk_load_allow_unsorted variable.
[]A new rocksdb_ignore_unknown_options variable has been implemented, which when enabled (default) allows RocksDB to receive unknown options and not exit.
[/LIST]
The release notes for Percona Server for MySQL 5.7.20-18 are available in the online documentation. Please report any bugs on the launchpad bug tracker.