July 23, 2014

Experimental GIT Mirrors of Percona XtraBackup, Percona Server plus Oracle MySQL trees

I recently blogged on setting up Experimental Git mirror of Oracle MySQL trees up on GitHub. I’m now happy to announce that there are also mirrors for: Percona Server Percona XtraBackup Percona Playback I’ve also updated the Oracle MySQL GIT mirror to include MySQL 5.7 and the (now abandoned) MySQL 6.0. I include the abandoned […]

Experimental Git mirror of Oracle MySQL trees

I’ve been working on setting up mirrors on github of all our BZR branches. My first efforts that are at a suitable stage to share are mirrors of the Oracle MySQL trees. This is currently a snapshot of MySQL 5.1, 5.5 and 5.6 with all the tags preserved. I’ve managed to get GIT to compact […]

Checking B+tree leaf nodes list consistency in InnoDB

If we have InnoDB pages there are two ways to learn how many records they contain: PAGE_N_RECS field in the page header Count records while walking over the list of records from infimum to supremum In some previous revision of the recovery tool a short summary was added to a dump which is produced by […]

Percona Server tree with support of Fusion-io atomic writes and DirectFS

Not so long ago Fusion-io announced an SDK which provides direct API access to Fusion ioMemory(tm) in addition to providing a native filesystem (directFS) with a goal to avoid overhead from kernel and regular Linux filesystems: ext4 and xfs. This requires a support from application, it should use special calls for IO. With help from […]

Where to get a BZR tree of the latest MySQL releases

I just posted this to the MySQL Internals mailing list: Hi all, Like many of you, I’m disappointed that the bzr trees for MySQL are out of sync with the tarball source and binary releases from Oracle. Since Oracle has been silent on this, and this is a recurring problem, I’ve decided to attempt to […]

Moving Subtrees in Closure Table Hierarchies

Many software developers find they need to store hierarchical data, such as threaded comments, personnel org charts, or nested bill-of-materials. Sometimes it’s tricky to do this in SQL and still run efficient queries against the data. I’ll be presenting a webinar for Percona on February 28 at 9am PST. I’ll describe several solutions for storing […]

MySQL sources from development tree

I just want to write few tips how to get MySQL from development BitKeeper tree, as there are several tricks. First of all you need a fresh free client – bk-client2.0 http://www.bitkeeper.com/Hosted.Downloading.html . Once you get it, you can clone latest tree: bkf clone bk://mysql.bkbits.net/mysql-5.0 mysql-5.0 New client supports “changes” command, so you can look […]

Improving InnoDB recovery time

Speed of InnoDB recovery is known and quite annoying problem. It was discussed many times, see: http://bugs.mysql.com/bug.php?id=29847 http://dammit.lt/2008/10/26/innodb-crash-recovery/ This is problem when your InnoDB crashes, it may takes long time to start. Also it affects restoring from backup (both LVM and xtrabackup / innobackup) In this is simple test, I do crash mysql during in-memory […]

Making replication a bit more reliable

Running MySQL slave is quite common and regular task which we do every day, taking backups from slave is often recommended solution. However the current state of MySQL replication makes restoring slave a bit tricky (if possible at all). The main problem is that InnoDB transaction state and replication state are not synchronized. If we […]

Systemtap solves phantom MySQLd SIGTERM / SIGKILL issue

The Percona Managed Services team recently faced a somewhat peculiar client issue. We’d receive pages about their MySQL service being unreachable. However, studying the logs showed nothing out of the ordinary…. for the most part it appeared to be a normal shutdown and there was nothing in anyone’s command history nor a cron task to speak […]