I am finalizing my Percona Live talk MySQL and Vitess (and Kubernetes) at HubSpot. In this talk, I mentioned that I like that Percona is providing better MySQL with Percona Server. This comes with a little inconvenience though: with improvements, sometimes comes regression. This post is about such regression and a workaround I implemented some time ago (I should have shared it
I am currently working on a script to auto-enable parallel replication / multi-threaded replication (MTR) when there is replication lag. For testing this script, I need to trigger replication lag that would disappear after enabling MTR. I came-up with a simple solution for that, and I thought it could be useful to more people, so I am writing this blog post about it. Read-on for
At my latest webinar “MySQL Test Framework (MTR) for Troubleshooting”, I received an interesting question about MTR test cases for Percona XtraDB Cluster (PXC). Particularly about testing SST and IST.
This post is intended to answer this question. It assumes you are familiar with MTR and can write tests for MySQL servers. If you are not, please watch the webinar recording first.
You can find example tests in any PXC tarball package. They are located in directories
mysql-test/suite/galera
,
mysql-test/suite/galera_3nodes
and
mysql-test/suite/wsrep
, though that last directory only contains a configuration file.
If you …
[Read more]This post discusses the next MySQL development milestone: MySQL 8.0.1.
From the outset, MySQL 8.0 has received plenty of attention. Both this blog (see the MySQL 8.0 search) and other sites around the Internet have covered it. Early reviews seem positive (including my own MySQL 8.0 early bugs review). There is plenty of excitement about the new features.
As for early feedback on MySQL 8.0, Peter Zaitsev (Percona CEO) listed a set of recommendations for benchmarking MySQL 8.0. I hope these get reviewed and implemented. …
[Read more]
I promised to write this blog post long time ago at one of
conferences in Russia. Don't know why I delayed this, but finally
I did.
We, members of MySQL bugs verification group, have to verify bugs
in all currently supported versions. We use not only version
reported, but test in development source tree for each of
supported major versions and identify recent regressions.
You can imagine that even if I would do so for simple bug report
about wrong results with perfect test case, which requires me
simply run few queries I would have to start 4 or more MySQL
servers: one for each of currently supported versions 5.0, 5.1,
5.5 plus one for current development. And unknown number of
servers if I could not repeat or if I want to check if this is
regression.
Even if I have all these basic 4 servers running I still should
type all these queries at least 4 times. How much time it would
take to verify single bug …
In order to optimally size the amount of RAM to allocate to a set
of new machines for running MTR, I ran a few tests to check the
memory usage of an MTR run for mysql-trunk and cluster-7.1. As
using a RAM disk considerably speeds things up, I set the vardir
to be on /ramdisk
and logged the usage of that too.
The tests were performed on an 8-core E5450 @ 3.00GHz with 24GB
RAM, with 8GB allocated to /ramdisk
. Each branch ran
the default.daily
collection, which generally
contains the most testing we do per-run. Between each run I
rebooted the machine to clear the buffer cache and
/ramdisk
.
I used something like the script below, which saved the
per-second usage of /ramdisk
, the total RAM used,
and the RAM used minus buffers.
#!/bin/bash
BRANCH="mysql-trunk"
BUILDDIR="mysql-5.6.3-m5-linux2.6-x86_64"
TESTDIR="${HOME}/mtr-test/${BRANCH}"
stats()
{
i=1
rm -f …
[Read more]