MySQL/MariaDB single-threaded performance regressions, and a lesson in thread synchronisation primitives

I took a quick look at MariaDB 10.0 single-threaded performance (simple read-only sysbench). One thing immediately leaps to the eye, and I thought it worthy of mention. It contains an important lesson about the use of synchronisation primitives and in particular “atomic operations” in MariaDB (and MySQL). I am using the Linux perf tool on… Continue reading MySQL/MariaDB single-threaded performance regressions, and a lesson in thread synchronisation primitives

First steps with MariaDB Global Transaction ID

My previous writings were mostly theoretical, so I wanted to give a more practical example, showing the actual state of the current code. I also wanted to show how I have tried to make the feature fit well into the existing replication features, without requiring the user to enable lots of options or understand lots… Continue reading First steps with MariaDB Global Transaction ID

More on global transaction ID in MariaDB

I got some very good comments/questions on my previous post on MariaDB global transaction ID, from Giuseppe and Robert (of Tungsten fame). I thought a follow-up post would be appropriate to answer and further elaborate on the comments, as the points they raise are very important and interesting. (It also gives me the opportunity to… Continue reading More on global transaction ID in MariaDB

Global transaction ID in MariaDB

The main goal of global transaction ID is to make it easy to promote a new master and switch all slaves over to continue replication from the new master. This is currently harder than it could be, since the current replication position for a slave is specified in coordinates that are specific to the current… Continue reading Global transaction ID in MariaDB

Benchmarking thread scheduling in group commit, part 2

I got access to our 12-core Intel server, so I was able to do some better benchmarks to test the different group commit thread scheduling methods: This graph shows queries-per-second as a function of number of parallel connections, for three test runs: Baseline MariaDB, without group commit. MariaDB with group commit, using the simple thread… Continue reading Benchmarking thread scheduling in group commit, part 2

Benchmarking thread scheduling in group commit

The best part of the recent MariaDB meeting in Lisbon for me was that I got some good feedback on my group commit work. This has been waiting in the review queue for quite some time now. One comment I got revolve around an optimisation in the implementation related to how threads are scheduled. A… Continue reading Benchmarking thread scheduling in group commit

My presentation from OpenSourceDays2011

Here are the slides from my talk at Open Source Days 2011 on Saturday. The talk was about MariaDB and other parts of the MySQL development community outside of MySQL@Oracle. For me, the most memorable part of the conference was the talk by Noirin Shirley titled Open Source: Saving the World. Noirin described the Open… Continue reading My presentation from OpenSourceDays2011