I just updated to Ubuntu 11.10 “Oneiric” on one of my desktops and I ran into an issue with MariaDB.

It’s not an issue with MariaDB itself, more in how the MariaDB “Natty” .deb packages are configured. We haven’t released .deb packages for Ubuntu 11.10 “Oneiric”, but the Natty packages work fine, apart from this one configuration issue (and when we do release “Oneiric” packages, they will work out-of-the-box).

The main problem is that some things have moved around in “Oneiric” and Apparmor doesn’t like the MariaDB “Natty” Apparmor defaults file because it doesn’t account for some of the new destinations. Specifically, /var/run has been moved to /run (a discussion of the rationale behind the move can be found here). Other things have been moved too, but the /var/run to /run move is the one that is causing trouble.

I searched launchpad and found bug #810270 which talks about the move and some of the packages, including MySQL, which needed to be updated. So for the version of MySQL in the official Ubuntu repositories, things are fixed. To fix things on my local machine I took a look at Ubuntu’s MySQL apparmor-profile file and saw four differences between it and my local /etc/apparmor.d/usr.sbin.mysqld file:

  1. /etc/mysql/my.cnf r,” was changed to “/etc/mysql/*.cnf r,
  2. /var/run/mysqld/mysqld.pid w,” was changed to “/{,var/}run/mysqld/mysqld.pid w,
  3. /var/run/mysqld/mysqld.sock w,” was changed to “/{,var/}run/mysqld/mysqld.sock w,
  4. /usr/lib/mysql/plugin/ r,” was added

After making the above changes everything appears to be OK. Official MariaDB .deb packages for Ubuntu 11.10 “Oneiric” are coming, but until they arrive, I can at least continue to use the old MariaDB “Natty” packages.

Let me know in the comments if you’ve run into any other issues trying to run, install, or upgrade the MariaDB “Natty” packages on “Oneiric”. Thanks!

P.S. I don’t think I will ever get used to writing “Oneiric”. It’s just such an awkward word. Whatever happened to ‘i’ before ‘e’ except after ‘c’?

**Update 2 Nov 2011** We’ve updated our MariaDB 5.2.9 packages with a fix for the Oneiric upgrade issue (and we have added real Oneiric packages). What we’ve decided to do is remove the apparmor profile we ship with MariaDB. If you’ve customized your profile like above, when you update to the new version (the only change is to the apparmor profile) you will be prompted to keep your existing profile our use our (empty) profile. It is safe to use our empty profile. If you haven’t customized your profile then the update will remove the old apparmor profile.

Its good to announce that Monty Program will have a presence at Percona Live London (October 24 & 25 2011), and we’re very excited about it. There will be two talks (no tutorials this time around):

  1. Sergei Golubchik will present on Pluggable Authentication in MySQL and MariaDB. I’ve seen Serg give tutorials to this effect, so expect a lot within half an hour!
  2. Colin Charles will present on Why MariaDB? which focuses on what new features are available today in MariaDB and how they benefit users.

Will we see you there? Registrations are still open and we would love to talk to you then.

Monty Program is also proud to be a sponsor of Percona Live London 2011, amongst many of our friends.

One could say that MariaDB now is 2 years old as a packaged product. The latest version, MariaDB 5.3 Beta, is the culmination of many years of hard work. We believe it contains the largest and most significant change to the code of MySQL since the launch of MySQL 5.0. I’m talking about the changes made to the central product component called the Optimizer.

Why did we touch something so central to the product? The fast answer is that the original Optimizer is about 17 years old. Prior to the work we did for MariaDB 5.3, the Optimizer hadn’t had any huge evolutionary improvements or changes in a decade (except for some features that were added in 2003-2005). It was missing basic functionality that one can expect in any 2010s relational database. Things like hash joins or efficient handling of subqueries.

We’ve also wanted to gradually make MariaDB better at handling bigger tables and bigger queries. This requires query plans to have better access locality. Batched Key Access and to some extent hash join give us that. Another important aspect is that there were a vast amount of not-so-good performance related issues with the old optimizer.

An overview of all changes can be found at http://kb.askmonty.org/en/what-is-mariadb-53.

The development of many of the new optimizer features that now appear in MariaDB 5.3 were started in 2006-2008 as part of a future version of MySQL. In MariaDB 5.3 these features were polished and in some cases completely redone.

We also believe this code to be the best tested code ever released in either MySQL or MariaDB. This is important since MySQL is a widely adopted product. We cannot and will not introduce a whole bunch of new bugs in a central component of MariaDB. We could never live with such a product, and no one else could either.

The beta version of MariaDB 5.3 including these changes has now been available for almost two months and we recently released our second beta version. We have been continuing the stabilization of the product during this time with the help of the growing community around MariaDB which has been reporting issues they have found. A huge thanks to all of you!

It will still take a while until we declare 5.3 stable, but all the effort is starting to pay off. In addition to positive end-user feedback we have also seen the first signs of success through early benchmarking tests like these:
- DBT-3 tests,
https://lists.launchpad.net/maria-developers/msg04278.html
- Group commit,
https://www.facebook.com/#!/notes/mysql-at-facebook/group-commit-again/10150261692455933

It should be noted that the Optimizer changes I’ve talked about above are not the only things new in MariaDB 5.3. There are a lot of other improvements and new features as well. Things like the improved Group commit I refer to in the above link and microsecond support that deserves a special mentioning:

- The support for microseconds in TIMESTAMP, DATETIME, and TIME
A feature that has been requested for many years – http://bugs.mysql.com/8523

Lastly, while stabilization work on MariaDB 5.3 continues we’re also working on MariaDB 5.5, which is MariaDB 5.3 merged with MySQL 5.5. This is something the community has been waiting for for a long time. I’m happy to tell you that we’re not far away from a beta of MariaDB 5.5. It’s going to be an interesting end of the year.