MariaDB non-blocking client API and node.js

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). …

Making it easier to follow and participate in MariaDB development

In June, I told about the consolidation of the MariaDB project tools. The final piece of this consolidation, to report bugs in the MariaDB project tracking tool called JIRA has now been finalized.

Bug reporting stays open! JIRA is open to anyone. The bug reports are publicly available, even without logging in and as a bonus it will be easier to follow what is going on in the project since you don’t have to jump between several tools to get the complete picture.

All bugs that existed in Launchpad have been migrated to JIRA. To find a bug that was originally reported on Launchpad use the following approaches:

  • If you happen to have the original bug id you can search for the bug by typing lp:bugid into the search field in the upper right corner of JIRA.

Announcing the Cassandra Storage Engine

We’re pleased to announce the first preview version of the Cassandra Storage Engine!

The Cassandra Storage Engine (SE) allows access to Cassandra databases from MariaDB/MySQL, and to provide data integration between the SQL and NoSQL worlds.

Have you ever needed to

  • grab some of Cassandra’s data from your web frontend, or SQL query?
  • insert a few records into Cassandra from some part of your app?

With Cassandra SE, this is easily possible. Cassandra SE makes Cassandra’s column families appear as MariaDB/MySQL tables that you can insert to, update, and select from. …

MariaDB Directions

Infor announced this week, that they will provide open source database alternatives to some of their products. MariaDB has been chosen, tested, and certified by Infor to be the open source database of choice (together with MySQL) for the Infor LN and ION products. Infor LN is Infor’s flagship ERP and is sometimes better known by its former name, Baan. It has 25 years of manufacturing know-how built into it and is used by more than 5,000 companies worldwide in a wide range of industries. These include automotive, industrial equipment and machinery, high tech and electronics, and aerospace and defense. …

The Explain Analyzer and HeidiSQL

A few months ago we announced the EXPLAIN Analyzer, a simple tool to help you understand how MariaDB / MySQL was running queries. For users of HeidiSQL this is now even easier. As discussed in their news post you can now send a query to the EXPLAIN analyzer with a single click.

We hope this helps both new and experienced users better understand the queries they run.

More information about the EXPLAIN Analyzer and the simple API client authors can use to add support to their apps is available in the AskMonty Knowledgebase:

Disappearing test cases or did another part of MySQL just become closed source?

About a week ago I was looking at MySQL 5.5.27, and noticed a curious thing. Despite the fact that the new MySQL release contained its usual share of bug fixes, not a single one of them was accompanied with a test case.

Now, let me tell you something about tests. For many years MySQL was using its own testing framework, called mysql-test. The first version was written as early as 1999. Over the years it has accumulated a lot of tests. Tests for new features and regression tests — those that guarantee that a bug, once fixed, will never ever show up again. …

Explanation on MariaDB 10.0

In end of May I told about the numbering plans for the next version of MariaDB in the blog post What comes in between MariaDB now and MySQL 5.6?. We received quite a lot of feedback and criticism on the idea of calling the next version MariaDB 10.0. Here is a little more information about why it makes sense to call the next version 10.0.

This is not news for most of you. MariaDB is not just a set of patches applied on top of MySQL. MariaDB includes features which are similar to the corresponding features in MySQL, but the implementations differ, like for example the thread pool, microsecond support and query annotations in RBR binlog. …

The Query Cache and Partitions

Like others we were not satisfied with the fix for a bug in MySQL which caused the query cache and partitioning to not work reliably together. The bug, in simple terms, was that if the query cache was enabled and you used partitioned tables and if a partitioned table was using a transactional engine like InnoDB or XtraDB, the query cache could, under certain circumstances, return incorrect results.

Returning incorrect results is a definite, high-priority bug. However, the upstream fix was to disable all caching of queries from partitioned tables. We wanted a better solution because the query cache can be very useful and beneficial for partitioned tables, just like it is useful and beneficial for non-partitioned tables. …