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()
Tag: mysql
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)
Fixing MySQL group commit (part 3)
This is the third and final article in a series about group commit in MySQL. The first article discussed the background: group commit in MySQL does not work when the binary log is enabled. The second article explained the part of the InnoDB code that is responsible for the problem. So how do we fix… Continue reading Fixing MySQL group commit (part 3)
Fixing MySQL group commit (part 2)
This is the second in a series of three articles about ideas for implementing full support for group commit in MariaDB. The first article discussed the background: group commit in MySQL does not work when the binary log is enabled. See also the third article. Internally, InnoDB (and hence XtraDB) do support group commit. The… Continue reading Fixing MySQL group commit (part 2)
Fixing MySQL group commit (part 1)
This is the first in a series of three articles about ideas for implementing full support for group commit in MariaDB (for the other parts see the second and third articles). Group commit is an important optimisation for databases that helps mitigate the latency of physically writing data to permanent storage. Group commit can have… Continue reading Fixing MySQL group commit (part 1)
Debugging memory leaks in plugins with Valgrind
I had an interesting IRC discussion the other day with Monty Taylor about what turned out to be a limitation in Valgrind with respect to debugging memory leaks in dynamically loaded plugins. Monty Taylor’s original problem was with Drizzle, but as it turns out, it is common to all of the MySQL-derived code bases. When… Continue reading Debugging memory leaks in plugins with Valgrind
MariaDB talk at the OpenSourceDays 2010 conference
Earlier this month, I was at the OpenSourceDays 2010 conference, giving a talk on MariaDB (the slides from the talk are available). The talk went quite well I think (though I probably talked way too fast as I usually do; at least that means that I finished on time with plenty room for questions..) There… Continue reading MariaDB talk at the OpenSourceDays 2010 conference
Conference time!
It is conference time for me. I just came home from FOSDEM 2010 where we had a booth and I gave a talk. At the end of the month there will be a company meeting in Iceland for Monty Program, followed by Open Source Days 2010 where I will also be speaking. And then in… Continue reading Conference time!