Coming to a language near you!

In a movie theater near you, expect to soon see an explanation of MariaDB Server and MariaDB Foundation in your own language! That is, providing you speak one of the good dozen of languages we have frequently encountered in the MariaDB Server ecosystem.

English is a least common denominator

Like a majority of the MariaDB Server users, most of the developers behind MariaDB Server are non-native English speakers. We use Bad English as our lingua franca. Our pronunciation may be bearable to OK, but as with most techies, our understanding of written and spoken English is OK to good.

Going for a Code of Conduct

It may be long overdue, but based on recent events, we have launched Code of Conduct project at MariaDB Foundation. Our aim is to get your feedback and define a CoC, ideally by end of January, if we see convergence.

In the meantime, if we see unacceptable behaviour on the MariaDB mailing list or elsewhere, we will take action. We want to extend our apology to those who have had unpleasant experiences, about which we have done nothing in the past.

As for the code of conduct wording, our goal is to keep it short. Lofty goals often trigger distractive debates;

Congratulations, MRDB – MariaDB plc!

Today, MariaDB Corporation announced that it completed its merger, landing on NYSE as “MRDB”. With MariaDB Corporation being our founding member as well as our primary code contributor, we want to congratulate what is now MariaDB plc for this remarkable achievement.

Joint goals

MariaDB Foundation and MariaDB Corporation, while independent entities, share a joint interest in the development and adoption of MariaDB Server. In the new scenario with what is now to be referred to as MariaDB plc being a publicly traded company, we expect further interest in MariaDB Server by the ecosystem and community.

MariaDB & K8s: How to replicate MariaDB in K8s

In the previous blog we have seen how to create a statefulset MariaDB application. Also, we learned how replication works in MariaDB in this blog. Now, we will try to create a replicated statefulset application. As good references for creating this blog, I would like to give credit to the Kubernetes documentation as well as an example from Alibaba Cloud.

Configure replication

To replicate a MariaDB application we are going to create a statefulset that will consist of a single init container and one application container.

A mirror manager system to simplify the distribution of MariaDB binaries and packages

The MariaDB Foundation relies on public mirrors to distribute binaries and packages to the world. An overview of the full list can be seen at https://mirmon.mariadb.org. If you would like to volunteer to become a mirror, take a look at https://mariadb.com/kb/en/mirror-sites-for-mariadb/.

Our download page already automatically suggests one of those mirrors for you to download our binaries. Same goes for the repository configuration tool; see https://mariadb.org/download.

The purpose of this blog post is to present you a new system that we have been testing since December 2021 and that we believe is now ready for public adoption.

MariaDB replication using containers

In this blog we are going to demonstrate how to replicate a MariaDB database that runs in a Docker container (let’s call it primary) to one or more MariaDB servers that run in a Docker container (let’s call them replicas) using binary logging, a method that creates binary log files and an index that contains the record of all changes to the database (both data and structure). You can find an overview of how replication works here and you can find how to setup replication here. An example can be found in this GitHub script.

Create statefulset MariaDB application in K8s

In the previous blog we created a stateless application, deployed with K8s resource Deployment, which allows one to replicate the application, but where data is lost when Pods are restarted, meaning there were no data consistency. In the same blog we used PersistentVolumeClaim for dynamic provisioning of PersistentVolume, but we used Deployment, meant for stateless application, and this way is *not recommended* for statefulset application where each replica should have its own persistent volume. The proper way to achieve that is through the Statefulset resource and this post we will cover that.

In K8s one can create a stateful application, an application like a database, which needs to save data to persistent disk storage for use by the server/clients/other applications, to keep track of its state and to be able to replicate and be used in distributed systems.

MariaDB & K8s: Deploy MariaDB and WordPress using Persistent Volumes

In the previous blog, MariaDB & K8s: Create a Secret and use it in MariaDB deployment, we used the Secrets resource to hide confidential root user data, and in the blog before that in the series, MariaDB & K8s: Communication between containers/Deployments, we created 2 containers (namely MariaDB and phpmyadmin) in a Pod. That kind of deployment didn’t have any persistent volumes.

In this blog we are going to create separate Deployments for MariaDB and WordPress applications as well as a Service for both in order to connect them. Additionally we will create Volume in a Pods of a MariaDB Deployment.