14.13.12 Better Scalability with Multiple Rollback Segments

Starting in InnoDB 1.1 with MySQL 5.5, the limit on concurrent
transactions is greatly
expanded, removing a bottleneck with the InnoDB
rollback segment that
affected high-capacity systems. The limit applies to concurrent
transactions that change any data; read-only transactions do not
count against that maximum.

The single rollback segment is now divided into 128 segments, each
of which can support up to 1023 transactions that perform writes,
for a total of approximately 128K concurrent transactions. The
original transaction limit was 1023.

Each transaction is assigned to one of the rollback segments, and
remains tied to that rollback segment for the duration. This
enhancement improves both scalability (higher number of concurrent
transactions) and performance (less contention when different
transactions access the rollback segments).

To take advantage of this feature, you do not need to create any
new database or tables, or reconfigure anything. You must do a
slow shutdown before
upgrading from MySQL 5.1 or earlier, or some time afterward.
InnoDB makes the required changes inside the
system tablespace
automatically, the first time you restart after performing a slow
shutdown.

If your workload was not constrained by the original limit of 1023
concurrent transactions, you can reduce the number of rollback
segments used within a MySQL instance or within a session by
setting the configuration option
innodb_rollback_segments.