InnoDB
, like any other
ACID-compliant database engine,
flushes the redo log of a
transaction before it is committed. InnoDB
uses group commit
functionality to group multiple such flush requests together to
avoid one flush for each commit. With group commit,
InnoDB
issues a single write to the redo log
file to perform the commit action for multiple user transactions
that commit at about the same time, significantly improving
throughput.
Group commit in InnoDB
worked in earlier
releases of MySQL and works once again with MySQL 5.1 with the
InnoDB
Plugin, and MySQL 5.5 and higher. The
introduction of support for the distributed transactions and Two
Phase Commit (2PC) in MySQL 5.0 interfered with the
InnoDB
group commit functionality. This issue
is now resolved.
The group commit functionality inside InnoDB
works with the Two Phase Commit protocol in MySQL. Re-enabling
of the group commit functionality fully ensures that the
ordering of commit in the MySQL binary log and the
InnoDB
logfile is the same as it was before.
It means it is safe to use the MySQL Enterprise Backup product
with InnoDB
1.0.4 (that is, the
InnoDB
Plugin with MySQL 5.1) and above.
For more information about performance of
COMMIT
and other transactional operations,
see Section 8.5.2, “Optimizing InnoDB Transaction Management”.