Based on MySQL 5.1.59, including all the bug fixes in it, Percona Server 5.1.59-13.0 is now the current stable release in the 5.1 series. All of Percona’s software is open-source and free, all the details of the release can be found in the 5.1.59-13.0 milestone at Launchpad.

New Features

InnoDB Fake Changes

When restarting a slave server in a replication environment, the process can be speed up by having prefetch threads to warm the server: replay statements and then rollback at commit.

That makes prefetch simple but has high overhead from locking rows only to undo changes at rollback.

Using this approach, support for Fake Changes have been implemented in order to remove the overhead and make it faster.

By reading the rows for INSERT, UPDATE and DELETE statements but not updating them (Fake Changes), the rollback is very fast as in most cases there is nothing to do.

InnoDB Kill Idle Transactions

NOTE: Percona classes this feature as Beta and possibly not yet suited for production environments.

This feature limits the age of idle |XtraDB| transactions. If a transaction is idle for more seconds than the threshold specified, it will be killed. This prevents users from blocking purge by mistake.

Block startup until LRU dump is loaded

Added a new boolean option, –innodb-blocking-lru-restore, which is OFF by default. When set to ON, restoring from the LRU dump file is synchronous, i.e. InnoDB waits until it is complete before reporting successful startup to the server. #785489 (Alexey Kopytov).

Behavior changes

The Fast Index Creation Feature has been disabled by default to align the behavior with upstream. The boolean variable innodb_expand_fast_index_creation has been introduced for enabling or disabling this feature. #858945 (Alexey Kopytov).

Bugs Fixed

InnoDB requires a full table rebuild for foreign key changes. This unnecessarily delays their creation in a mysqldump output, so –innodb-optimize-keys should ignore foreign key constrains. #859078 (Alexey Kopytov).

After adding an index using Fast Index Creation, statistics for that index provided by InnoDB were left in a bogus state until an explicit ANALYZE TABLE is executed. #857590 (Alexey Kopytov).

The mysqldump option –innodb-optimize-keys did not work correctly with tables where the first UNIQUE key on non-nullable columns was picked as the clustered index by InnoDB in the absence of a PRIMARY KEY. #851674 (Alexey Kopytov).

Added a new boolean option, –innodb-blocking-lru-restore, which is OFF by default. When set to ON, restoring from the LRU dump file is synchronous, i.e. InnoDB waits until it is complete before reporting successful startup to the server. #785489 (Alexey Kopytov).

Since AUTO_INCREMENT columns must be defined as keys, omitting key specifications and then adding them back in ALTER TABLE doesn’t work for them. mysqldump --innodb-optimize-keys has been fixed to take this into account. #812179 (Alexey Kopytov).

Other Changes

Improvements and fixes on general distribution: #858467, #845019, (Alexey Kopytov).

About Stewart Smith

Stewart Smith has a deep background in database internals including MySQL, MySQL Cluster, Drizzle, InnoDB and HailDB. he is also one of the founding core developers of the Drizzle database server. He served at Percona from 2011-2014. He is a former Percona employee.