This is about the second great feature – Multi-Master replication, what you get with Percona XtraDB Cluster. It is recommended you get familiar with general architecture of the cluster, described on the previous post. By Multi-Master I mean the ability to write to any node in your cluster and do not worry that eventually you [...]
Helgrinding MySQL with InnoDB for Synchronisation Errors, Fun and Profit
It is no secret that bugs related to multithreading–deadlocks, data races, starvations etc–have a big impact on application’s stability and are at the same time hard to find due to their nondeterministic nature. Any tool that makes finding such bugs easier, preferably before anybody is aware of their existence, is very welcome.
Moving from MyISAM to Innodb or XtraDB. Basics
I do not know if it is because we’re hosting a free webinar on migrating MyISAM to Innodb or some other reason but recently I see a lot of questions about migration from MyISAM to Innodb. Webinar will cover the process in a lot more details though I would like to go over basics in [...]
MySQL Limitations Part 1: Single-Threaded Replication
I recently mentioned a few of the big “non-starter” limitations Postgres has overcome for specific use cases. I decided to write a series of blog posts on MySQL’s unsolved severe limitations. I mean limitations that really hobble it for major, important needs — not in areas where it isn’t used, but in areas where it [...]
Table locks in SHOW INNODB STATUS
Quite frequently I see people confused what table locks reported by SHOW INNODB STATUS really mean. Check this out for example:
1 2 3 4 | ---TRANSACTION 0 4872, ACTIVE 32 sec, process no 7142, OS thread id 1141287232 2 lock struct(s), heap size 368 MySQL thread id 8, query id 164 localhost root TABLE LOCK table `test/t1` trx id 0 4872 lock mode IX |
This output gives us an impression Innodb has taken table lock on test/t1 table and many people tend to think Innodb in fact in some circumstances would abandon its row level locking and [...]
READ-COMMITED vs REPETABLE-READ in tpcc-like load
Question what is better isolation level is poping up again and again. Recently it was discussed in InnoDB : Any real performance improvement when using READ COMMITED isolation level ? and in Repeatable read versus read committed for InnoDB . Serge in his post explains why READ COMMITED is better for TPCC load, so why [...]
Should you move from MyISAM to Innodb ?
There is significant portion of customers which are still using MyISAM when they come to us, so one of the big questions is when it is feasible to move to Innodb and when staying on MyISAM is preferred ? I generally prefer to see Innodb as the main storage engine because it makes life much [...]
A quest for the full InnoDB status
When running InnoDB you are able to dig into the engine internals, look at various gauges and counters, see past deadlocks and the list of all open transactions. This is in your reach with one simple command —
1 | SHOW ENGINE InnoDB STATUS |
. On most occasions it works beautifully. The problems appear when you have a large spike in [...]
MVCC: Transaction IDs, Log Sequence numbers and Snapshots
MySQL Storage Engines implementing Multi Version Concurrency Control have several internal identifiers related to MVCC. I see a lot of people being confused what they are and why they are needed so I decided to take a time to explain it a bit. This is general explanation, it does not corresponds to Innodb in particular [...]
Innodb Performance Optimization Basics
Interviewing people for our Job Openings I like to ask them a basic question – if you have a server with 16GB of RAM which will be dedicated for MySQL with large Innodb database using typical Web workload what settings you would adjust and interestingly enough most people fail to come up with anything reasonable. [...]

