Category Archives: Generic
A few months ago, I wrote about my first experiments with TideSQL, the MariaDB storage engine powered by TidesDB.
At that time, getting started meant building the TidesDB library, adding the TideSQL sources to the MariaDB source tree, compiling everything, installing the plugin and finally playing with:
CREATE TABLE my_table (…) ENGINE=TIDESDB;
It worked, and I liked what I saw.
But things are moving fast.
TideSQL 5.0.0 is now available, based on TidesDB 10, and I think it is time to have another look at the project.
…
Continue reading “TideSQL 5 and MariaDB: the Tides Are Moving Fast”
Magento normally uses InnoDB for orders, order items, invoices, and other transactional data. However, analytical reports have another workload. I wanted to check whether DuckDB can improve a real Magento report without replacing the operational database.
For this experiment, I generated one million Magento orders and two million order items. Then I executed two complete Magento Orders Report queries in three storage configurations.
Short result
- 1,000,000 orders
- 2,000,000 order items
- 18.464 seconds on InnoDB
- 8.267 seconds with orders on DuckDB
- 0.292 seconds with orders and items on DuckDB
- 63.2× measured improvement for this dataset and report
Why I started this experiment
The Magento database has a mostly transactional workload.
…
Continue reading “Trying DuckDB for Magento Analytics: An Experiment with One Million Orders”
The MariaDB Adoption Index is up 126% in a year. More people are downloading MariaDB, more people are contributing to it, and more projects are building on it than at any point since we started measuring.
At the same time, the numbers show something else: the way people acquire and discover MariaDB is changing. Some of our older metrics are falling – not because MariaDB is, but because the channels they measure are.
The index combines 24 metrics – downloads, contributors, community, social – into one monthly number, baseline January 2024. Background in the original post.
…
This work started from a conversation with Monty Widenius at Meet Magento Czech in August. We discussed possible ways to improve the scalability of the InnoDB B+Tree, especially its insert path and page splits.
Monty explained several ideas about reducing synchronization during structural changes and allowing independent parts of the tree to make progress concurrently. We did not have a whiteboard, so we made the first design sketch on the back of a dark chocolate wrapper.
The sketch contained a small B+Tree, several page links, and the basic idea of moving structural work outside the globally serialized path.
…
Continue reading “From a Chocolate Wrapper to Concurrent InnoDB Page Splits”
After a long break, I will be taking over reporting on the contributions. FYI, the last one was done in Jan 2025.
Just like last time, I’m going to start with a breakdown of all the organizations who have contributed to MariaDB Server during the above period.
| MariaDB Plc. | 34 | 807 |
| MariaDB Foundation | 7 | 146 |
| Independent | 40 | 78 |
| GSoC | 6 | 29 |
| Amazon | 6 | 28 |
| Codership | 3 | 4 |
| Red Hat | 1 | 4 |
| Arch Linux | 1 | 4 |
| ClearCode | 1 | 2 |
| ByteDance | 1 | 1 |
| Rakuten | 1 | 1 |
| SUSE Linux | 1 | 1 |
MariaDB Server contributions for from 1st January 2026 – 31st June 2026
A big thank you to MariaDB Plc!
…
Continue reading “MariaDB Contribution Statistics, January-June 2026”
JSON support in MariaDB has improved significantly over the years.
We have functions to create JSON documents, extract values, modify objects, inspect arrays, compare documents, and even transform JSON into relational rows using JSON_TABLE().
But sometimes, a very small piece of syntax can make a surprisingly large difference.
With MariaDB 13.1, we can finally write:
document->’$.customer.name’
and:
document->>’$.customer.name’
Yes, the JSON arrow operators have arrived in MariaDB!!
And MariaDB 13.1 also improves JSON_TABLE() with support for formatted JSON columns, allowing complete JSON objects and arrays to be returned without converting them into scalar SQL values.
…
Continue reading “MariaDB 13.1 Feature in Focus: JSON Operators and JSON_TABLE Improvements”
Names are important.
They help us identify people, projects, products, pets, database servers, and occasionally the correct bug tracker.
This may sound obvious, but the database world has spent more than fifteen years proving that it is not.
MySQL and MariaDB share a substantial amount of history, syntax, tooling, knowledge, applications, and community. They also have similar command names, compatible protocols, familiar configuration variables, and many users who simply say “MySQL” when they actually mean:
Some database server that speaks the MySQL protocol and probably has an executable named mysqld.
And most of the time, everybody understands.
…
Continue reading “Say the Name: MariaDB, MySQL, and the Ecosystem We Share”
Have you ever modified a MariaDB configuration file, restarted the service, and immediately regretted it?
You wanted to change:
innodb_buffer_pool_size=16G
but accidentally wrote:
innodb_buffer_pool_sze=16G
One missing letter.
That is enough to turn a perfectly healthy database server into a service that refuses to start.
And of course, this kind of mistake never happens during a quiet maintenance window when everybody is available.
It happens during an automated deployment.
It happens during an upgrade.
It happens on a remote server.
Or it happens just before you planned to leave for dinner.
…