MariaDB semi-sync replication using containers

In the blog MariaDB replication using containers, we showed how to properly replicate data in MariaDB using Docker containers.
We used standard or asynchronous or lazy replication.

The problem with this type of replication is potential data loss if the primary goes down. Transactions that are committed on the primary are not being sent to replicas, and the replica doesn’t commit the changes. Failover from primary to replica in this case may lead to missing transactions relative to the primary.

To overcome these type of errors, there is semi-sync replication that is integrated into MariaDB since 10.4 and fully sync replication, which we plan to implement eventually as MDEV-19140.

MariaDB Server will be the default database in cPanel

Good news! cPanel, one of the leading control panels in the hosting world has just announced that they are going to make MariaDB Server the default database when installing new cPanel instances. This change is slated to occur in version 122 of cPanel & WHM, coming in Q3 of 2024. We at MariaDB Foundation are very happy about this decision and are looking forward to continuous collaboration, to the benefit of our users and the MariaDB Server project.

We think that this is a great decision for cPanel users because we at MariaDB have stayed true to the original values of MySQL, including:

  • Long term backwards compatibility
  • Painless upgrades and ease of use
  • Long term stable releases;

Looking for more migration guinea pigs

Remember our open letter, Looking for MySQL 5.7 or 8.0 guinea pigs?

We caught a nice German guinea pig!

We caught a nice guinea pig, a German one, from Hannover. They are currently using MySQL 5.7 (as was our prime wish), and they will be doing a live migration to MariaDB 10.11. They have 1.000.000.000 queries a day, their database size is 412 GB, and our goal is to the migration of the production data in less than five minutes – during our MariaDB Migration Workshop at our pre-FOSDEM event on Friday 2 Feb 2024.

Where is the official MariaDB Container Image?

Easy question, easier answer. Docker Official Images are the official image distributor of MariaDB Server. It was years ago that the Docker Official Image of MariaDB Server gained all its environment variables in MARIADB_* form and its fork on the MariaDB Corporation Docker Hub was deprecated and eventually removed. As a result of contributing to the Docker Official Images of MariaDB Server, the day to day maintenance was transferred to the MariaDB github organization. Here, the MariaDB Foundation, with support from MariaDB Corporation (now MariaDB plc) on server and releases, continue to develop and support the Docker Official Image.

Feedback requested: The Good/Bad/Ugly

Hi, we from the MariaDB Foundation are having a set of meetings with developers and senior managers from all over the world. We’d like your feedback on the Good/Bad/Ugly bits of MariaDB Server as you see it, and generally what we could be doing better. Please leave comments here, or Reddit, or email discuss@lists.mariadb.org (subscription), or email me directly daniel@mariadb.org.

This will be discussed at the MariaDB (Un)conference 2023 and MariaDB Server Fest 2023 which you are welcome to attend also to state your cases in person.

What programming languages do your applications that communicate with MariaDB use?

MariaDB Foundation polls are an informal way to get feedback from our community. They’ve always been a bit hidden, but the most recent poll sat on the mariadb.org front page for a while, and got a healthy 5,225 votes.

It asked “What programming languages do your applications that communicate with MariaDB use?”, and here are the results:

Python 30%
PHP 30%
Java 19%
NodeJS 16%
C# 15%
C/C++ 11%
Bash/Shell/Powershell 7%
Other 7%
TypeScript 6%
Go 6%
Rust 4%
R 3%
Ruby 2%

How do we use these results?

Run and operate MariaDB in Kubernetes with mariadb-operator

The introduction of the StatefulSet resource was a game changer when it comes to run stateful workloads in Kubernetes, introducing a wide range of features, including:

  • Predictable DNS names for each Pod, allowing one to individually address them in the network.
  • Stable persistent storage for each Pod, ensuring that each of them is bound to the same PersistentVolumeClaim.
  • Ordered graceful deployments and automated rolling updates.

However, this isn’t quite enough for running databases in Kubernetes in a reliable way. We are missing day 1 and day 2 operations, such as configuring high availability and scheduling backups, which is something not managed by vanilla Kubernetes.

Sauron says to Dumbledore and Merlin…

This sounds like a lame cross-genre joke, but it is not. It is a lame cross-genre math problem. I have to admit, it didn’t have those names when I read about it, but I wanted to make it a bit more epic. So,

Sauron says to Dumbledore and Merlin, finally I have captured you both. Now I shall select two numbers, greater than one, less than a hundred. Dumbledore shall know their product and Merlin shall know their sum. If you, fools, will be able to tell me the numbers I have chosen, I shall let you free.