2011-11-29

Commercial use of MariaDB & Webinar with SkySQL

A lot of things is happening in the MariaDB world; We just had our developers conference in Athens, we are about to bring out MariaDB 5.3 -RC and MariaDB 5.5-beta. MariaDB 5.5 will include all the closed source extensions that Oracle have announced for MySQL 5.6. It's nice to see that the open source community can continue to produce open source software to rival and exceed closed source offerings.

At the same time, we need commercial goals to support the growth of free software. The development crew in Monty Program Ab, all ex-MySQL developers, are happy to develop features based on commercial agreements. These will of course be released as open source to the benefit of the entire community of users. The support staff of SkySQL is happy to give you commercial 24x7 support of MariaDB, so you have the same level of support that you werea used to for MySQL in the days of MySQL AB: The first person you talk to should know more than you about MySQL!

The fact that we at Monty Program focus on development should by no means deter you from relying on MariaDB in commercial settings. Our work with SkySQL is intended to accelerate adoption for users and customers who need mission critical services.

To learn how you best extend your usage of MariaDB inside a commercial organization, consider taking part in the SkySQL webinar on Thursday 8 Dec 2011 at 8am PT (11am ET, 16:00 UK, 17:00 CET, or 18:00 EET).

Unfortunately I will not be there to share Black Vodka with you, but other familiar voices will present for you

  • Colin Charles, the Chief Evangelist at Monty Program, on when and why to use MariaDB in a commercial setting
  • Rasmus Johansson, the Monty Program COO, on the offerings of Monty Program Ab and how to interact with us commercially
  • Kaj Arnö, EVP Products at SkySQL, on how SkySQL supports MariaDB users technically and commercially

The webinar is a good time to give us feedback on what we need to do to make it easier for you to adopt MariaDB and/or get more of MySQL in critical and high performance environments.

You can register to the seminar here.

2011-11-09

MariaDB developer meeting in Athens

It's time for the next MariaDB developer meeting. This time it's in Athens from 11-November to 14'th of November.

The reason for choosing Athens was that the previous MariaDB developer meetings has been in places like Iceland, Spain and Portugal (all countries with some financial issues) and we thought it was no more than right to support Greece next.

As before, the meeting is open for everyone that wants to attend.

The agenda can be found here. This is also the place where all proposed and agreed to plans will be be posted.

We will try to keep the #maria IRC channel on Freenode up to date about what is happening. If you have any questions about a session, you can ask questions on the channel and we will do our best to answer them.

The main topic of the meeting is to finalise the plans for MariaDB 5.6 now when MariaDB 5.5 is close to completion. (MariaDB 5.3 + MySQL 5.5 -> MariaDB 5.5 merge is done and we are now fixing the final issues found by our test systems so that we can do the first alpha binary release of MariaDB 5.5).

If you have any ideas or suggestions for what we should do in 5.6, please update either the plans page or send an email to maria-developers at lists.launchpad.net list.

2011-09-19

Oracle adding close source extensions to MySQL

Oracle has now officially announced that MySQL is not a full free software project anymore and that they will go for an Open Core model.

This is inconsistent to the original MySQL business model. The main strength of MySQL has always been that all MySQL source code was freely available. It was thanks to this that MySQL got widely adopted and got to be used by tens of millions of users.

This was a fact that the MySQL board and Sun understood. Closing the MySQL server code base in any manner would be bad for long term business.

It's true that we in MySQL Ab did have some people, notable persons who came from the commercial world and did not understand or believe in free software, that spoke strongly for an open core model where some parts would be open and others closed. Initially they could not do this, mainly thanks to the founders shareholder agreement which guaranteed that the MySQL server would be open source. When Sun bought MySQL, and the shareholder agreement expired, they saw their chance and announced that backup would be a commercial closed source extensions. This initiative was however quickly killed by Sun's management who did understand the true value of MySQL as an open source project and by making it closed source they would have made it less valuable.

One of the reasons MySQL AB did not need an open core model for it's business was that since MySQL is an infrastructure product that is easily embeddable into other products, we could sell licenses to those who wanted to embed MySQL into their product but did not want to make their product open source. (Dual licensing).

So what's so wrong with Open Core?

As a business model, especially to bootstrap a business, Open Core is not a bad idea. It gives you some leverage with your users to get part of your development paid for. This is however done at the cost of fewer users and a less adopted project. Many projects however abandon Open Core models when they grow as open source gives them more users and thus more value.

What is most important to understand about an Open Core project is that it has nothing to do with an open source project. If you are depending on a single closed source component then you have to regard the whole project as a closed source project as you lose all the benefits of open source:
  • You are depending on one vendor.
  • You can't do any bug fixes yourself and you can't contract anyone except the original vendor to get things fixed.
  • You can't examine and improve the product (not any part of if).
  • You can't use any open source or commercial extensions from anyone else. This is true also for any plugins that access any internal parts of the product (which is true for most MySQL plugins).
  • You are limited to the platforms that the original vendors makes available. (In MySQL's case you can't for example use the new commercial features on RedHat 6 as it's not a supported platform).
  • The builds you are using are not tested anymore by millions of users (more bugs).
  • The product is not checked by the open source community for security problems or back doors.
  • The new features will not be adopted by (and may even cause conflicts with) other open source projects.
  • You are subject to one vendor's price politics which they can change at their convenience.
What is interesting with the new commercial features is that parts of them where not developed by Oracle. The thread pool was originally developed by Ebay for MySQL 5.0 and contributed to MySQL to be include in MySQL 5.1. Only the new scheduler interface code was added to MySQL 5.1 while the thread pool itself was added (but accidentally with a slower implementation) into MySQL 6.0. Oracle never back ported the thread pool code to the MySQL 5.5 community version and now also the MySQL 6.0 tree is deleted.
The new pluggable authentication, which makes the new PAM authentication possible, was developed and contributed to Oracle by Sergei Golubchik at Monty Program Ab.

The good news is however that the most important feature, the improved thread pool, is easily duplicated in MariaDB. We have had a thread pool in MariaDB since 5.1 (better than was in MySQL 5.1) and we are working on a new one for MariaDB 5.5 which we expect will have similar speed gains as MySQL enterprise. MariaDB don't yet have PAM authentication but the MariaDB developers are prepared to develop that if there is a need for it or if someone contributes the code to us. This should be relatively easy as we have the same pluggable authentication protocol as MySQL.

Read also Stewart Smith's thoughts and the comments to his blog about this subject.

2011-08-10

What is happening with the MySQL conference?

What is happening with the MySQL conference?

I'm at the moment perplexed, confused and disappointed in what's going on around the traditional MySQL user conference. Percona yesterday announced Percona MYSQL conference that they will be organizing their own event during the same time and in the same place where this great conference has taken place for years.

The reason for my state of mind is that although there have been rumors about discontinuance of the O'Reilly arranged conference there hasn't been any announcement about this.

In fact, I have been working with O'Reilly to try to setup next year's O'Reilly MySQL conference with the intention of having it 'exactly like before', even if Oracle would not participate. The intention was to have Percona, SkySQL and Monty Program Ab and some other sponsors helping O'Reilly to drive the conference.

This is something that Percona has been very well aware of when announcing this (I personally talked with Percona about this a few weeks ago).

One of the main reasons we at MySQL Ab originally liked to work with O'Reilly is not only that O'Reilly knows how to do a good conference. We also saw the importance to have the conference being organized by a neutral entity to make it easier for competing vendors to be part of the conference. A conference called the "Percona MySQL conference" is not going to be seen as vendor neutral, which will cause problems in getting different vendors to attend. Giuseppe Maxia and Sheeri Cabral seem to think in a similar ways.

Personally I will wait and see what will happen with the O'Reilly MySQL Conference & Expo 2012, or equivalent neutral conference for the MySQL community. The best option, if O'Reilly is not doing it, would of course be a community conference where Oracle/MySQL participates actively, both as a sponsor and as content provider.

2011-08-08

MariaDB Crash Course released

I am happy to announce that the first MariaDB book is released!

The book is called MariaDB Crash Course and is written by Ben Forta, who also wrote the MySQL Crash Course book.

Quoting the book description:

"This book will teach you all you need to know to be immediately productive with MySQL. By working through 30 highly focused hands-on lessons, your MySQL Crash Course will be both easier and more effective than you'd have thought possible"

This is great news for new users to SQL and to MariaDB as it makes it easier for them to get things going quickly!

You can find a link to this book and other recommended MariaDB / MySQL books here.

Enjoy!

2011-07-26

MariaDB 5.3 released as beta

MariaDB 5.3 is now released as beta (feature freeze).

MariaDB 5.3 radically improves performance for subqueries as well as for joins and single-table queries over large data sets. MariaDB 5.3 is based on MySQL 5.1.

For a detailed description of MariaDB 5.3, see the What is MariaDB 5.3 page.

In most respects MariaDB will work exactly as MySQL: all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB.

A few highlights:

One of the major performance improvements in MariaDB 5.3.0 is that subqueries are finally usable in practice. It is no longer necessary to rewrite subqueries manually into joins or separate queries. The optimizer of MariaDB 5.3 will do this, and more automatically. EXPLAIN for derived tables and materialized views is instantaneous. Both derived tables and views can be optimized by indexes created on the fly.

MariaDB now supports many join optimizations, including utilizing the Block Nested Loop algorithm that can be used for outer joins, Classic Hash Join which can be used for equi-joins, and Batch Key Access joins are supported providing the benefits of ordered retrievals for primary and secondary keys provided by the new implementation of Multi-Range-Read (MRR) optimizations. MariaDB also features a new version of Index Condition Pushdown.

NoSQL is all the rage these days and MariaDB 5.3.0 ships with the HandlerSocket plugin and improved HANDLER commands. Dynamic columns allows you to have a different set of "virtual columns" for each row in your table. You can at any time add or remove columns from a row.

MariaDB 5.3 implements group commit which gives you a big speedup when using XtraDB with the binary log enabled and you have many concurrent running updates.

Microsoft Windows performance improvements from MySQL 5.5 have been backported, including benefits to the XtraDB storage engine. MariaDB 5.3 also uses the new Windows installer and includes the HediSQL GUI client for Windows.

There is also a lot of other "goodies", like progress reporting, checksum for binary logs, mytop, microsecond support in DATETIME, TIMESTAMP and TIME, more status variables etc. See What is MariaDB 5.3 for details.

When it comes to MariaDB 5.5 we have just finished the first big merge between MariaDB 5.3 and MySQL 5.5 and we are now working on merging the recent changes. This should be released shortly (you can follow the work on launchpad). We will continue to fix bugs in both version for some time! The reason we are releasing 5.3 and 5.5 is that we don't want to delay users the features in 5.3 while we work to merge and stabilize 5.5. (We don't expect any problems with 5.5 but as one never knows we want to play safe.).

Please test MariaDB 5.3 and report bugs to launchpad! The more input we can ge the quicker we can do stable (GA) release.

If you want to know more, visit the MariaDB booth at OSCON or come to the MariaDB BOF on Wednesday at 8.00 PM!

2011-06-30

Progress reporting for ALTER TABLE

I just finished my last MariaDB 5.3 feature before we go beta:

Progress reporting for ALTER TABLE, LOAD DATA INFILE etc.

This is a feature that I think every MySQL user who has ever waited for an ALTER TABLE to finish has wanted for a long time! I know people who have written scripts to monitor the size of the result files to try to estimate how much an ALTER TABLE has progressed.

Progress reporting means that:
  • There is a new column Progress in SHOW PROCESSLIST which shows the total progress (0-100 %)
  • INFORMATION_SCHEMA.PROCESSLIST has three new columns which allow you to see in which process stage we are and how much of that stage is completed:
    • STAGE
    • MAX_STAGE
    • PROGRESS_DONE (within current stage).
  • The client receives out-of-band progress messages which it can display to the user to indicate how long the command will take!
Progress reporting is enabled by default in the new mysql client. When enabled, for every supported command you get a progress report like:

MariaDB [test]> alter table my_mail engine=maria;
Stage: 1 of 2 'copy to tmp table' 5.37% of stage done

MariaDB 5.3 also includes a modified mytop which shows progress for the running commands.

This feature is now pending a review. It will be pushed into MariaDB 5.3 tomorrow.

You can find a full documentation of this feature in the knowledgebase.