MariaDB replication feature preview released

I am pleased to announce the availability of the MariaDB 5.2 feature preview release. Find the details and download links on the knowledgebase. There has been quite good interest in the replication work I have been doing around MariaDB, and I wanted a way to make it easy for people to use, experiment with, and… Continue reading MariaDB replication feature preview released

Christmas @ MariaDB

The Danish “julehjerte” is apparently a Danish/Northern Europe Christmas tradition (at least according to Wikipedia). But hopefully people outside this region will also be able to enjoy this variant: I have been doing “julehjerter” ever since I was a small kid, and every Christmas try to do something different with it. As seen above, this… Continue reading Christmas @ MariaDB

The future of replication revealed in Istanbul

A very good meeting in Istanbul is drawing to an end. People from Monty Program, Facebook, Galera, Percona, SkySQL, and other parts of the community are meeting with one foot on the European continent and another in Asia to discuss all things MariaDB and MySQL and experience the mystery of the Orient. At the meeting… Continue reading The future of replication revealed in Istanbul

Dynamic linking costs two cycles

It turns out that the overhead of dynamic linking on Linux amd64 is 2 CPU cycles per cross-module call. I usually take forever to get to the point in my writing, so I thought I would change this for once 🙂 In MySQL, there has been a historical tendency to favour static linking, inpart because… Continue reading Dynamic linking costs two cycles

Micro-benchmarking pthread_cond_broadcast()

In my work on group commit for MariaDB, I have the following situation: A group of threads are going to participate in group commit. This means that one of the threads, called the group leader, will run an fsync() for all of them, while the other threads wait. Once the group leader is done, it… Continue reading Micro-benchmarking pthread_cond_broadcast()

MySQL/MariaDB replication: applying events on the slave side

Working on a new set of replication APIs in MariaDB, I have given some thought to the generation of replication events on the master server. But there is another side of the equation: to apply the generated events on a slave server. This is something that most replication setups will need (unless they replicate to… Continue reading MySQL/MariaDB replication: applying events on the slave side

Dissecting the MySQL replication binlog events

For the replication project that I am currently working on in MariaDB, I wanted to understand exactly what information is needed to do full replication of all MySQL/MariaDB statements on the level of completeness that existing replication does. So I went through the code, and this is what I found. What I am after here… Continue reading Dissecting the MySQL replication binlog events

Fixing MySQL group commit (part 4 of 3)

(No three–part series is complete without a part 4, right?) Here is an analogy that describes well what group commit does. We have a bus driving back and forth transporting people from A to B (corresponding to fsync() “transporting” commits to durable storage on disk). The group commit optimisation is to have the bus pick… Continue reading Fixing MySQL group commit (part 4 of 3)