One major problem in terms of MySQL performance that still stands in the way of InnoDB scalability is the trx_list scan on consistent read view creation. It was originally reported as a part of MySQL bug #49169 and can be described as follows. Whenever a connection wants to create a consistent read, it has to [...]
trx descriptors: MySQL performance improvements in Percona Server 5.5.30-30.2
Percona Server on the Raspberry Pi: Your own MySQL Database Server for Under $80
There are many reasons for wanting a small MySQL database server: You’re a uni student who wants to learn the SQL language better and needs a mini-testbox You’re a Windows user who wants to play around with Percona Server on Linux You’re a corporate application developer who wants a small SQL development & test box [...]
Replaying database load with Percona Playback
If you are planning to upgrade or make any configuration change on your MySQL database the first advice usually is: – Benchmark! How should we do that benchmark? People usually run generic benchmark tools like sysbench, tpcc or mysqlslap that are good to know the number of transactions per seconds that a database can do [...]
Minimizing Downtime from Lengthy AWS Outages
Well, it happened again… Another lengthy EBS outage in the US-East region impacted several sites across the net. While failures like this are rare, they can be quite costly and translate into headaches for the operations team when impact production systems for any length of time. At Percona, we routinely help clients architect and deploy [...]
Differences between READ-COMMITTED and REPEATABLE-READ transaction isolation levels
As an instructor with Percona I’m sometimes asked about the differences between the READ COMMITTED and REPEATABLE READ transaction isolation levels. There are a few differences between READ-COMMITTED and REPEATABLE-READ, and they are all related to locking.
Percona XtraDB Cluster: Multi-node writing and Unexpected deadlocks
Percona XtraDB Cluster (PXC) and the technology it uses (Galera) is an exciting alternative to traditional MySQL replication. For those who don’t know, it gives you: Fully Synchronous replication with a write latency increase equivalent to a ping RTT to the furthest node Automatic cluster synchronization, both incremental and full restores The ability to read [...]
InnoDB’s gap locks
One of the most important features of InnoDB is the row level locking. This feature provides better concurrency under heavy write load but needs additional precautions to avoid phantom reads and to get a consistent Statement based replication. To accomplish that, row level locking databases also acquire gap locks. What is a Phantom Read A [...]
kernel_mutex problem. Or double throughput with single variable
Problem with kernel_mutex in MySQL 5.1 and MySQL 5.5 is known: Bug report. In fact in MySQL 5.6 there are some fixes that suppose to provide a solution, but MySQL 5.6 yet has long way ahead before production, and it is also not clear if the problem is really fixed. Meantime the problem with kernel_mutex [...]
Infinite Replication Loop
Last week I helped 2 different customers with infinite replication loops. I decided to write a blog post about these infinite loop of binary log statements in MySQL Replication. To explain what they are, how to identify them… and how to fix them.

