Percona Server with XtraDB

Unnecessary log_flush_order_mutex acquisition

Reported by Alexey Kopytov on 2013-04-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.6
5.1
Undecided
Unassigned
5.5
Medium
Alexey Kopytov
5.6
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.

Related branches

description: updated
tags: added: xtradb
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers