October 31, 2008

A quest for the full InnoDB status

Posted by Maciej Dobrzanski |

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 — SHOW ENGINE InnoDB STATUS. On most occasions it works beautifully. The problems appear when you have a large spike in number of connections to MySQL, which often happens when several transactions kill the database performance resulting in very long execution times for even simplest queries, or a huge deadlock.

In such rare cases SHOW ENGINE InnoDB STATUS often fails to provide the necessary information. The reason is that its output is limited to 64000 bytes, so a long list of transactions or a large deadlock dump may easily exhaust the limit. MySQL in such situation truncates the output so it fits the required size and obviously this is not good since you may lose some valuable information from your sight.
[read more...]

How expensive is a WHERE clause in MySQL?

Posted by Baron Schwartz |

This is a fun question I’ve been wanting to test for some time.  How much overhead does a trivial WHERE clause add to a MySQL query?  To find out, I set my InnoDB buffer pool to 256MB and created a table that’s large enough to test, but small enough to fit wholly in memory:

[read more...]

October 27, 2008

Speaking on MySQL SF Meetup (Nov 3)

Posted by peter |

November 3rd, I’m speaking at San Francisco MySQL Meetup – The talk will be about Scaling MySQL driven Web Sites by Sharding and Replication. This is Free event and you’re surely most welcome to join. At this point I see there are some 70 people signed up and 59 spots left. BTW: This will not be exactly same sessions as on Velocity I will be adding few more slides to get into more details.

October 25, 2008

Mirrored Binlogs patch

Posted by Vadim |

Google patches V1 contain interesting patch to mirror binary log on slave. Although Google is preparing GlobalTransactionId patch, which going to be replacement for MirroredBinlogs, we still think mirroring binary logs is very useful for:

  • Backup of binary logs in real time
  • High availability, to switch master load to slave with mirrored binary logs

By request of our friends EngineYard we extracted this patch from Google’s patchset and going to include in our next releases. Actually our patch contains features for both MirroredBinlogs and FastMasterPromotion patches, as second provides feature to make slave as master in case of main master failure.

At this moment you can download patch by itself there
http://www.percona.com/mysql/5.0.67-b6/patches/mirror_binlog.patch
with docs on our wiki

Also the patch will be included in OurDelta binaries beside our releases for CentOS / RedHat platform, so you can download and test this feature for your OS.

October 21, 2008

JOIN Performance & Charsets

Posted by Ryan Lowe |

We have written before about the importance of using numeric types as keys, but maybe you’ve inherited a schema that you can’t change or have chosen string types as keys for a specific reason. Either way, the character sets used on joined columns can have a significant impact on the performance of your queries.

Take the following example, using the InnoDB storage engine:
[read more...]

October 20, 2008

Improved InnoDB rw_lock patch

Posted by Vadim |

There is patch from Google to improve SMP performance , but for some workloads it showed for us reverse scalability.
E.g. update_key benchmark from sysbench. There are also results with Yasufumi’s rw_locks (http://bugs.mysql.com/bug.php?id=26442)
[read more...]

October 13, 2008

Percona’s patches spread to a wider audience

Posted by Baron Schwartz |

Percona’s patches are now available to a wider audience via OurDelta, a community effort to provide  builds with features (Percona patches, Google patches, etc) and storage engines (PBXT, Sphinx, etc) that aren’t in the main MySQL server. Arjen Lentz is really the brainchild behind this. Kudos Arjen!

What does this mean for the Percona patches? Well, now you can get them in more places.  But it doesn’t change our own commitment to keep innovating in ways our customers (and we ourselves) find useful.  We’re still building our own builds and hosting the downloads from our own website; it’s important that you can get a build that you know authoritatively came from us and was built by us.  The Percona patches and builds represent our best judgment about what’s the state of the art in the MySQL server for real-world usage, and we have no plans to change that.

[read more...]

October 10, 2008

Announce: Front End Performance Optimization

Posted by peter |

I guess many of you know us and so our company for MySQL related services. It is true this is majority of our business at this point but it is far from everything.

Our goal in reality is to help people to build and operate quality systems, typically web sites, which means we help customers with performance, scalability, high availability as the whole, not just MySQL related issues.
[read more...]

October 8, 2008

Three ways to know when a MySQL slave is about to start lagging

Posted by Baron Schwartz |

The trouble with slave lag is that you often can’t see it coming. Especially if the slave’s load is pretty uniform, a slave that’s at 90% of its capacity to keep up with the master can be indistinguishable from one that’s at 5% of its capacity.

So how can you tell when your slave is nearing its capacity to keep up with the master? Here are three ways:

[read more...]

October 1, 2008

Percona welcomes Ewen Fortune and Piotr Biel

Posted by Baron Schwartz |

Although we haven’t announced any new members in a while, the Percona team has continued to grow steadily behind the scenes. Our hiring policy is to have a few months’ provisional period to ensure the absolute highest quality of service and consistency of results provided to our clients. Today I’m proud to officially welcome Ewen Fortune and Piotr Biel, who have been working with us for quite a few months.

[read more...]