2013-04-18

MariaDB Foundation at the Percona conference

The MariaDB Foundation have just issued press release about the new Governance in the Foundation.  A lot of the new things that is happening in the MariaDB adoption comes thanks to the work we have done in the Foundation.

The Foundation is also happy to announce that is has now 2 senior MySQL (now MariaDB) developers on board, Alexander Barkov and Sergey Vojtovich and a documentation writer, Ian Gilfillan.

The foundation is also helping founding the new Connect engine, which allows you to use MariaDB with a lot of different formats (XML, CVS, DBF,...), and connections, including ODBC. (Documentation will appear shortly here).

If you want to know more about the MariaDB Foundation, you can find me and a lot of MariaDB developers in the MariaDB foundation boot at Percona conference in Santa Clara.

Monty Program Ab, SkySQL and Antony Curtis has also a lot of talks at Percona live about MariaDB and related things:
We have also a MariaDB BOF at 6:00 pm on the 23'th of April in Ballroom F. Anyone who ever been on one of the MySQL/MariaDB BOF's with me knows what to expect. This time there will be even more surprises...

Hope to see a lot of you next week!

2013-03-07

MariaDB-Galera 5.5 released as stable

It's now about one year ago since we released MariaDB 5.5. That proved to be an important release for MariaDB as it became popular with the users and ultimately also has been adopted by several important Linux distributions. But we have not stopped working since then, and now the MariaDB project is happy to announce something new again: the immediate availability of MariaDB Galera Cluster 5.5.29 stable release (GA).

As soon as we had released MariaDB 5.5 stable, we started planning with Codership Oy how to integrate their Galera replication technology with MariaDB 5.5. We have then worked together to merge their Write Set REPlication API into MariaDB, and gone through a rigorous testing program with beta and RC releases leading to today's a stable release.

Elena from Monty Program and people from the MariaDB user community have tested those releases and provided feedback if they have found any bugs. Seppo Jaakola from the Galera team is a MariaDB Captain, which means he not only has commit rights to the MariaDB trunk, he also can participate in the MariaDB decision making together with other core contributors. (Note that MariaDB Galera Cluster currently still has it's own branch in the MariaDB project on Launchpad. But I think it is likely that in the future this will become part of the main MariaDB branch and releases.)

This is one reason today's release makes me very happy, because this is a great example of what we always wanted the MariaDB project to become. It also shows how we operate with many other companies and individuals. We want to be open and inclusive to anyone who can contribute great code, so that MariaDB can continue its MySQL heritage of being the most popular open source database. We want MariaDB to always include all the great innovation happening in the MySQL ecosystem.

About synchronous multi-master clustering

In the past weeks I have traveled in Germany, Korea and Sweden to speak about MariaDB, and it is clear to me that a lot of people have already heard of Galera and are already trying it out. But if you didn't yet know about this technology, let me tell you why it is important.

MariaDB Galera Cluster provides synchronous multi-master replication. A simple way to explain what this means is to compare it with other alternatives that we have used for MariaDB high availability until today:

If you compare it to the traditional master-slave replication, it means that your data is safer in a Galera cluster because it is replicated immediately as part of the commit, without any delay. (This is why it is synchronous.) Also, in traditional master-slave replication you can do read-only scale-out, but with Galera you can read and write to any node. This makes life easier for application developers, because you don't need to separate read-only transactions and write transactions. (This is why it is called multi-master.)

You can also compare it with DRBD, which is another popular High Availability solution for MariaDB and MySQL. The reason people use DRBD is usually because it is also synchronous replication, only it happens on the disk driver level. So it is used by people who want to be 100% sure they don't lose a single transaction if they do a failover. But DRBD doesn't give you any scale-out, since the spare node is so called cold standby, so you cannot use it for anything else but disaster recovery.

With MariaDB Galera Cluster we now provide "best of both worlds": it is both synchronous, and you can use it for scale-out. And not just read-only scale out but multi-master scale-out.

Automatic node provisioning

There are many other benefits to Galera too, and you will be able to read more about them on the MariaDB blog. One nice little feature I think is also worth mentioning is the automatic node provisioning. One reason MySQL master-slave replication has become so popular is that it is quite easy to setup and understand. But Galera takes this even further, they completely automate the node provisioning process. My philosophy when I created MySQL was always to make everything very easy to the user, and I'm happy to see Galera shares this philosophy.

But it is not only nice, it is actually an important feature especially if you run MariaDB in the cloud. In the cloud you can save money by adding nodes to a cluster (scale out) when needed and then removing them (scale in) when you need less performance. You might do this every day, or every week depending on what kind of traffic your website gets. But to add and remove MariaDB nodes every day, you of course cannot do it manually every time.

For example many NoSQL systems talk about automatic node provisioning in their marketing so that they will sound "cloud compatible". But MariaDB Galera Cluster does it too, so there is no reason to abandon SQL just to have automatic node provisioning.

Commercial support

When you have tested MariaDB Galera Cluster and decided that you like it, and want to run it in production, you of course want to make sure you have proper support in place. This is also important so that the developers can continue to work on the project and make it even better. Codership operates with a similar model like my company Monty Program, they develop the technology and do bug fixes, and they partner with SkySQL and other companies that support MariaDB in order to provide a complete and seamless support experience. You can contact SkySQL to discuss commercial support for both MariaDB and MariaDB-Galera.

You can also support MariaDB Galera Cluster development directly by donating via the MariaDB Foundation. If you specifically want to support Galera development, you should target your donation to "MariaDB Galera Cluster".

2013-02-06

MariaDB living in interesting times

An old Chinese curse says "May you live in interesting times".
Fortunately this can be taken both as a curse or as a blessing.

For MariaDB this has definitely been a blessing the last few months.

Since we announced the MariaDB foundation in December 2012 a lot has happened:
We will soon be able to announce that also some of the other very big Internet companies have moved to MariaDB. (stay tuned :)

The above means that the installation base of MariaDB will increase from about one million to 5-10 million within this year. You can find here a full updated lists of all distributions that supports MariaDB.

We are really living in interesting times!

Happy Chinese New Year to you all!

2012-11-27

Attending Percona Live Conference in London 2012


I am attending the Percona live conference in London on 4'th of December.

I will there hold a keynote about State of MariaDB & its growing Ecosystem and a session, together with Colin Charles, about Using NoSQL Techniques with MariaDB.

During the keynote there will be announcements that many of you should find exciting...

Sergei Golubchik will be there and talk about the new features in MariaDB 5.5 and MariaDB 10.0

Colin Charles will also have a talk about MHA: Getting started and moving past the quirks.

I am looking forward to again meet many of the hard core MariaDB and MySQL users in London!

2012-10-09

Made by geeks, used by professionals

We just made some cool t-shirts and mugs for fans of MariaDB!

If you like them and like what we are doing with MariaDB, please make an order and wear it to work to support us!

All money we get goes, naturally, to the development of MariaDB.

Please add a comment if there is other MariaDB merchandise you would like to see!


2012-10-05

Multi-source replication for MariaDB is here

I yesterday finished the work for the first version of multi-source replication for MariaDB.

I first want to thank Peng Lixun at Taobao for giving us the code that I used as a base for this patch. Their patch worked and was used in production, but didn't have all the features needed for a 'full solution'. I have now added those.

Typical use cases for multi-source replication are:
  • You are partitioning your data over many masters and would like to get it all together on one machine to do analytical queries on all data.
  • You have many databases spread over many MariaDB/MySQL servers and would like to have all of them on one machine as an extra backup.
The new syntax introduced to handle many connections:
  • CHANGE MASTER ["connection_name"] ...
  • FLUSH RELAY LOGS ["connection_name"]
  • MASTER_POS_WAIT(....,["connection_name"])
  • RESET SLAVE ["connection_name"]
  • SHOW RELAYLOG ["connection_name"] EVENTS
  • SHOW SLAVE ["connection_name"] STATUS
  • SHOW ALL SLAVES STATUS
  • START SLAVE ["connection_name"...]]
  • START ALL SLAVES ...
  • STOP SLAVE ["connection_name"] ...
  • STOP ALL SLAVES ...
"connection_name" specifies with master you are working with.
The original old-style connection_name is an empty string ''.

Full documentation for the multi-source feature can be found here.
Feel free to add comments to the above page if you have any questions!

This is now pushed into the 10.0-MariaDB tree and will be merged into the MariaDB 10.0 tree to be included into MariaDB 10.0.0 in a few days.

By the way:
For those that missed the announcement, another new exciting thing that just was made available in MariaDB is the Cassandra storage engine.

2012-09-27

Now is a good time to be part of the future of MariaDB

We are now working full time on MariaDB 10.0, with the intention to release a stable server by the end of this year.

The new MariaDB release numbers are explained in this article.

The first binary, MariaDB 10.0.0-alpha will be released shortly.

The new, already developed, features are:
  • Multi-source replication. This is now being tested and will be pushed into the main branch shortly.
  • EXPLAIN the *actual* plan on a *running* statement
  • New InnoDB from MySQL 5.6
  • Performance schema from MySQL 5.6
  • Better error messages (all error numbers now include descriptive text of what the number means)
  • Optimized read only transactions (for InnoDB). This includes support for TRANSACTION READ ONLY (from MySQL 5.6)
  • LIMIT ... ORDER BY optimization (similar to MySQL 5.6)

With the last ORDER BY optimization MariaDB 10.0 has all the optimization features of MySQL 5.6 + much more (MariaDB has still more than 10 man years work on the optimizer compared to MySQL 5.6)

In addition we are working on:
  • Support for automatic updating of timestamps in DATETIME (similar to what is in MySQL 5.6, but a different implementation)
  • Memory tables with efficient VARCHAR and BLOB support
  • Merging more code from MySQL 5.6

Other areas of interest are:
  • Better replication (including parallel replication that can concurrently update the same table)
  • Improved multi-master and multi-source
  • More status variables and better monitoring
  • Optimizations to be able to run MariaDB better in the cloud.

For a full list, see the Plans for 10.x page and look at the plans for MariaDB 10.0 and beyond.

We will actively continue to merge code from MySQL 5.6 into MariaDB 10.0, 10.1 and hope to have all important features done by 10.2.

The reason we will need up to three releases to merge MySQL 5.6 is that we are not that happy with several parts of the MySQL 5.6 code base and we have to rewrite and reinvent those parts of MySQL 5.6 to be able to include them in MariaDB. This will take time!

We will do this in several steps to be able to do a release of MariaDB 10.x roughly every 6 months with many new features in each release, not only from MySQL 5.6.  The aim is to have all data-on-disk formats and protocol formats compatible with MySQL 5.6 so that one can upgrade from MariaDB 5.6 or MySQL 5.6 to any MariaDB 10.x release trivially.

I would like to see MariaDB developed to be a practical database; a database which is used to solve the real life problems you are facing today and tomorrow. To be able to do that, we are now actively seeking users, developers, and companies to get involved and help us drive MariaDB in the directions that make the most sense to them.

The ways you and your company can participate are:

  • Contribute with developer time. If your organization has talented developers familiar with the MariaDB and MySQL codebases they can become part of the MariaDB team and contribute to the development of the MariaDB project.
  • Fund the development of specific features. You can find a list of suggested features to sponsor here or in our project planning tool Jira. Feel free to sign in and add more projects to either place!
  • Hire a developer that you dedicate to work on the MariaDB project.
  • Join the different MariaDB mailing lists and channels to discuss where we should together put our resources to take MariaDB to the next level.
Please connect with us and help us steer MariaDB into the future and beyond!