More Concurrent Transactions Available

InnoDB provides a fixed number of 1024 undo slots in its rollback segment, leaving room for 1024 transactions to run in parallel. If all the slots are used any new transaction will fail until a slot is freed, which can cause strange behaviors. This change provides a variable to expand the number of undo slots, up to 4072.

This option is provided for servers that run out of undo slots. Use it if you find the following warning in the error log: Warning: cannot find a free slot for an undo log.

We discourage its use unless you get this warning, because it breaks compatibility with other programs. Specifically, it makes the datafiles unusable for ibbackup or for a MySQL server that is not run with this option.

When you enable the option, the maximum number of undo slots is extended to 4072, instead of the default fixed value of 1024.

You can then check whether the expanded slots (1025-4072) are used by starting mysqld with innodb_extra_undoslots=OFF:

  • If the expanded slots are used: mysqld refuses to start and prints an error in the error log:

    InnoDB: Error: innodb_extra_undoslots option is disabled, but it was enabled before.
    InnoDB: The datafile is not normal for mysqld and disabled innodb_extra_undoslots.
    InnoDB: Enable innodb_extra_undoslots if it was enabled before, and
    InnoDB: ### don't use this datafile with other mysqld or ibbackup! ###
    InnoDB: Cannot continue operation for the safety. Calling exit(1).
    
  • If the expanded slots are not used: mysqld starts and prints only a warning in the error log:

    InnoDB: Warning: innodb_extra_undoslots option is disabled, but it was enabled before.
    InnoDB: But extended undo slots seem not used, so continue operation.
    

System Variables

variable innodb_extra_undoslots
Command Line:Yes
Conf:Yes
Scope:Global
Dynamic:No
Variable Type:BOOL
Def:OFF
Range:ON/OFF

If ON, expands the number of undo slots to 4072.

© Copyright Percona LLC and/or its affiliates 2009-2014.
Except where otherwise noted, this documentation is licensed under the following license:
CC Attribution-ShareAlike 2.0 Generic
Created using Sphinx 1.2.2.
This documentation is developed in Launchpad as part of the Percona Server source code.
If you spotted innacuracies, errors, don't understood it or you think something is missing or should be improved, please file a bug.