Unnecessary log_flush_order_mutex acquisition
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Invalid
|
Undecided
|
Unassigned | ||
5.1 |
Won't Fix
|
Undecided
|
Unassigned | ||
5.5 |
Fix Released
|
Medium
|
Alexey Kopytov | ||
5.6 |
Invalid
|
Undecided
|
Unassigned |
Bug Description
log_sys-
reduce contention on log_sys->mutex. On a mini-transaction commit
InnoDB adds modified pages to the flush list and uses
log_sys-
flush list in the correct LSN order.
One thing that was handled inefficiently wrt. that mutex is that it was
acquired even if no modifications from a mini-transaction had to be
added to flush list, i.e. when an mtr has only modified dirty pages
(if any). This unnecessarily increased contention on
log_sys-
write-intensive workloads, because the former is acquired with the
latter locked.
The problem is fixed in MySQL 5.6 with the following revision:
http://
This report is to backport that change to Percona Server 5.5.
Related branches
- Laurynas Biveinis (community): Approve
- Registry Administrators: Pending requested
-
Diff: 137 lines (+56/-4)4 files modifiedPercona-Server/storage/innobase/include/buf0flu.ic (+1/-1)
Percona-Server/storage/innobase/include/mtr0mtr.h (+2/-0)
Percona-Server/storage/innobase/include/mtr0mtr.ic (+21/-0)
Percona-Server/storage/innobase/mtr/mtr0mtr.c (+32/-3)
Percona now uses JIRA for bug reports so this bug report is migrated to: https:/ /jira.percona. com/browse/ PS-2926