Author Archives: knielsen
Here are the results of a recent poll on LinkedIn and mariadb.org about the popularity of a few of the major replication features (I aggregated the results from the two sites):
What is your favorite MariaDB replication feature?
- 36% Parallel replication
- 27% Multi-source replication
- 23% Global transaction ID (GTID)
- 14% Semi-synchronous replication
I want to share some reasons why the poll results match my own thoughts on the relative importance of these features:
1. Parallel replication
Parallel replication brings a much needed performance boost to replication.
…
On November 6 2024 I presented a talk with the title: “The implementation of MariaDB parallel replication” at a local TeqHub meetup in Copenhagen.
In the talk I first presented how MariaDB replication works overall. I then described the central idea of optimistic parallel replication. Finally I described three details of the implementation: transaction scheduling; conflict detection; and efficient commit ordering. Here are the slides for the presentation.
I was very impressed by the level of the engagement of the audience. There were many questions that showed not only a deep interest in the subject, but also a deep understanding of the material I presented.
…
Continue reading “Talk: The implementation of MariaDB parallel replication”
Last Summer I implemented a non-blocking client API in MariaDB, and it was included in the MariaDB 5.5 release. But somehow I never got around to announcing it.
However, that did not prevent Brian White from noticing it, and using it to implement a new mysql binding for node.js called mariasql.
Now, node.js is a single-threaded, event-driven framework for web application sever development. In such frameworks, all I/O is done non-blocking or asynchronously, as are all other actions that may need to wait for external events. There is a single event loop which uses a poll() or similar system call to wait for any pending I/O or other event to complete, and then dispatches the appropriate event handler(s). …
Continue reading “MariaDB non-blocking client API and node.js”
Yesterday I set up a new machine for our MariaDB Buildbot. This is quite an important build host for us, it runs more than 20 different builds for each push into our most important trees, and is the host that builds most of our release packages. So quite a workhorse! It is a pretty fast machine, with 5 SSD disks, 48GB of RAM and 2 x quad-core Intel Xeon E5420.
This is a replacement for the previous machine serving the same builds. The previous machine was also nice, at least on paper, with no less than 24 cores. …