Unnecessary log_flush_order_mutex acquisition

Bug #1163262 reported by Alexey Kopytov
6
This bug affects 1 person
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->log_flush_order_mutex was introduced as an optimization to
reduce contention on log_sys->mutex. On a mini-transaction commit
InnoDB adds modified pages to the flush list and uses
log_sys->log_flush_order_mutex to make sure pages are added to the
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->log_flush_order_mutex and consequently on log_sys->mutex in
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://lists.mysql.com/commits/134048

This report is to backport that change to Percona Server 5.5.

Tags: xtradb

Related branches

description: updated
tags: added: xtradb
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-2926

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.