MariaDB Coding Standards

Coding standards are often as hotly debated as vim vs emacs and other developer arguments. Viewers of the show Silicon Valley will all know the “tabs vs spaces” scene and how passionate people can be about it. Whilst I do personally have a preference (I’m not sharing it here), I feel it is much more important that people stick to one standard for a code base.

Standards Story

Several months ago a new community developer for MariaDB Server sent me a message asking where to find our coding standards document. After a bit of searching I realised we did not have one, and if we want to onboard new developers we definitely should have one.

Code of Conduct Update

Back in December, we asked for your feedback on implementing a code of conduct in the MariaDB Server community. We have seen some great feedback and observations from this and today we are have published version 1.0 of our code of conduct.

Feedback

The feedback we have received has been generally positive both when it comes to implementing a code of conduct in general, and to the content of the text.

That said, it was suggested by Brian Andrus that we better define “inflammatory language”; this is something we actually discussed internally prior to the draft content.

This one trick can make MariaDB 30x faster!

Yes, it is a bit of a click-bait title, but in this case running one SQL command did improve a community user’s performance by that much. It could help you too.

The story

A community user posted in a couple of places that when migrating a large WordPress installation to MariaDB that they were seeing a certain query performing terribly. The query was taking 1.5 seconds to execute and it was clear from the explain plan that the optimizer was not making an ideal decision about the join order.

The query was generated by WordPress so it would not be easy to force an index, or rewrite the query.

Regressions in recent MariaDB Server releases

Our most recent MariaDB Server release introduced some regressions starting with the 10.6 series, affecting 10.7 – 10.9 as well. This blog post is here to explain the problems in hopes that the impact is minimized. We are likely going to release a new version of MariaDB correcting these problems soon.

InnoDB Full Text Index on tables causes an assertion error (MDEV-29342)

There was a bug in the InnoDB Storage Engine where the full text index could go out of sync with the actual table data. This would happen when only one new row was inserted between the last InnoDB sync (which happens asynchronously) and a server shutdown.

The Path to Code Contributions in MariaDB Server

I have been working for the MariaDB Foundation as the Chief Contributions Officer for a couple of weeks and it is fantastic being part of the MariaDB family again. Part of my job is to help the community massage pull requests into something that we can merge. I am, however, finding that one of the worst parts of my job is having to say “no” to contributions that clearly took a lot of time and effort on the part of the developer.

Contributions could be turned down or at least will require changes for a number of reasons.

MariaDB at Percona Live Online

Good news is that the MariaDB Foundation and members of the MariaDB community are participating in Percona Live Online on the 12th – 13th of May, and we are excited to interact with you there. This year there’s a dedicated MariaDB Community track, as well as sessions spread throughout the conference. There’s a diverse range of topics, and a few tutorials to go a little deeper. Here’s a selection of MariaDB-related sessions you can expect at Percona Live Online:

— First Day —

12th May, 06:30 – 07:00 EDT (UTC -4)
Daniel Black – MariaDB Foundation
Logical mariadb-dump –system migration

12th May, 11:00 – 12:00 EDT (UTC -4)
Valerii Kravchuk – MariaDB Corporation
Monitoring and Tracing MySQL or MariaDB Server With Bpftrace

12th May, 13:00 – 13:30 EDT (UTC -4)
Vicentiu Ciorbaru – MariaDB Foundation
What’s new in 10.6

12th May, 13:30 – 14:30 EDT (UTC -4)
Kaj Arnö – MariaDB Foundation
Collaboration in Open Source: A Q&A on GitHub, Jira, Zulip and Knowledge Base

12th May, 14:30 – 15:00 EDT (UTC -4)
Vicentiu Ciorbaru – MariaDB Foundation
JSON additions in MariaDB – featuring JSON_TABLE

12th May, 15:00 – 15:30 EDT (UTC -4)
Anna Widenius – MariaDB Foundation
Virtual work and leadership in the time of pandemics

12th May, 15:30 – 16:00 EDT (UTC -4)
Vicentiu Ciorbaru – MariaDB Foundation
MariaDB ColumnStore – A columnar storage engine, first class citizen in MariaDB

12th May, 16:00 – 17:00 EDT (UTC -4)
Federico Razzoli – Vettabase
Automating MariaDB deployments with Ansible

12th May, 17:00 – 18:00 EDT (UTC -4)
Valerii Kravchuk – MariaDB Corporation
Flame Graphs for MySQL DBAs

— Second Day —

13th May, 07:30 – 08:00 EDT (UTC -4)
Krunal Bauskar – Huawei
Open Source Databases and ARM

13th May, 08:30 – 09:00 EDT (UTC -4)
Pedro Albuquerque – TransferWise
MariaDB High Availability in a Cocktail Mix with Envoy and Orchestrator

13th May, 09:00 – 09:30 EDT (UTC -4)
Robert Bindar – MariaDB Foundation
MariaDB Notebooks in JupyterHub

13th May, 11:30 – 12:00 EDT (UTC -4)
Ian Gilfillan – MariaDB Foundation
When and why to use MariaDB: Key Features in 10.0 to 10.5

13th May, 12:00 – 12:15 EDT (UTC -4)
Kaj Arnö – MariaDB Foundation
Collaboration in Open Source: A Jungle that needs Structure

Machine Learning straight through SQL

Machine learning is one area that cannot succeed without data. Traditionally, machine learning frameworks read it from CSV files or similar data sources. This brings an interesting set of challenges because in most cases the data is stored in databases, not simple raw files. It takes time and effort to move data from one format to another. Additionally, one needs to write some code (usually python) to prepare the data just like the ML framework expects it.

I was pleasantly surprised when I saw during the MariaDB Server Fest that MindsDB, an automatic machine learning system, presented their integration with MariaDB.