Is MySQL Due for a Renaissance?

Back at the turn of the century, open source was experiencing widespread adoption along with the growth of the Internet. The acronym LAMP was used a lot, meaning Linux, Apache, MySQL and PHP.

The first websites I built were on Solaris running the Netscape web server, but LAMP made building websites open to everyone. It didn’t cost anything in license fees, ran on commodity hardware and it was pretty good.

The OpenNMS project was born in this environment, and it was different in many ways. First, it was written in Java. Second, the database chosen was PostgreSQL, not MySQL.

The main reason for this was that PostgreSQL had stored procedures. Our experience at the time was with proprietary databases such as SyBase, Ingres and especially Oracle. We wanted stored procedures which wouldn’t be added to MySQL until 5.0 which was released in 2003, four years after OpenNMS was created.

We were soundly ridiculed for that choice, as the vast majority of new projects used MySQL.

MySQL was developed by MySQL AB, and that company was one of the first financially successful open source companies. I had high hopes that they would IPO (Red Hat’s IPO was in 1999) but instead they were acquired by Sun Microsystems in 2008 for $1 billion.

We in the open source community weren’t that worried, as Sun was very much a pro-open source company, and we figured they would be good stewards of MySQL.

What we didn’t figure was that Oracle would buy Sun a year later.

(sigh)

As MySQL was positioned as an open source competitor to Oracle’s main product, Oracle had zero incentive to improve it. The revenues brought in by MySQL were a rounding error on Oracle’s balance sheet. I kind of saw it as a “killer acquisition” scenario where one company can buy a competitor in order to snuff it out. To my surprise Oracle didn’t outright kill the database, but it did radically change how it was developed and a lot of the coding effort went into its SaaS version called Heatwave.

These days PostgreSQL is pretty much the default choice for developers. It’s plug-in model makes it extensible, and the distributed nature of the community means that it would be difficult for a single company to control it.

So MySQL is dead, right? That’s what I thought, but now I’m much more “not so fast”.

My change of heart was triggered by a meeting I attended in San Francisco. Created by Percona and hosted at the PlanetScale offices, it brought together a lot of current MySQL users and other people invested in the community. We weren’t quite sure what the meeting would accomplish, but as one person put it (who had come from Oklahoma just for the event): if this is a funeral or a rebirth, either way we wanted a front row seat.

What it did demonstrate was that there is still a lot of interest in MySQL. I am nosy and blunt so I asked folks why they were still using MySQL a decade and a half since Oracle took over, and while there were numerous answers everyone included “performance”. Even with all the improvements to open source databases since those early days, users find that MySQL provides better performance than the options, especially in highly available environments.

I also learned that people are running one of three MySQL versions in production: 8.0, 8.4 and 9.7, and users claimed that 8.0 performed better than 8.4, and 8.4 better than 9.7. While there isn’t much independent data to verify that claim, there is evidence of small regressions in later versions.

If MySQL is still a great performance option, why is its adoption going down? This event tried to address that through the lack of promotion and community engagement by Oracle. The solution proposed is to create an independent non-profit foundation to promote MySQL.

Now this is a little tricky. Oracle owns the trademark to MySQL, and they also control the code, bug reports and release cycle. The community will still be beholden to Oracle for the MySQL software. The big question was “are we talking about a fork?”

Vadmin in front of a slide talking about goals

The firm answer was “no”, not as this time. Vadmin Tkachenko, co-founder of Percona, summed up the main goals of the non-profit to be to create events, working groups, and other pro-MySQL resources. The hope is that by showing Oracle there was still a large community of users, this organization could help soften some of the more controlling aspects of Oracle with respect to MySQL.

There is another interesting thing happening in the MySQL environment. Version 8.0 has been declared “end of life” by Oracle in April of this year. If folks in this non-profit community wanted to start contributing code, they could work in the 8.0 branch. Since Oracle will no longer be changing it, it would be more of a “soft” fork, simply keeping the code current with respect to performance and security. This could earn this new foundation some cred with the community.

This reminds me a lot of an organization in which I was active in the 1990s. Called the “OpenView Forum” it was an independent users group built around Hewlett-Packard’s OpenView suite of observability solutions. They worked closely with HP but were completely separate. Note that the last time the web page was updated was 2005 and the website now is overrun with spam posts, so I assume it no longer exists, but for over a decade it did a lot to promote OpenView solutions and companion software.

Since that meeting there was published an “open letter” to Oracle which has over 500 signatures, and The Register posted an article about the effort.

I am hopeful that this new initiative is successful. There are a lot of challenges, though. Even naming the group has issues. For example, while I am not a lawyer I’m certain “The MySQL Foundation” wouldn’t fly. Oracle’s own trademark usage does allow for something like the “MySQL User Group”, and I’ve seen references to terms like “the Foundation for MySQL” as a possible name, but it would still be a good idea to get Oracle to approve it. Then you need to set up governance, find a way to fund the organization, etc.

I went ahead and signed the letter as an individual.

Another cool thing is that Percona has brought back the Percona Live event which was always something of an umbrella event for open source databases, and there is talk of a MySQL-specific event in early autumn.

While this new foundation idea is a noble effort, it doesn’t really rise to a “renaissance”, but there are two other things that have happened that make me optimistic.

While at this meetup, I met Dominic Preuss, one of the founders of VillageSQL. VillageSQL hopes to bring one of the more powerful features of PostgreSQL, extensions, to MySQL. This is key, as users of the VillageSQL tracking fork can now innovate without having to wait for features to be added to the mainline code. In my decades of working in technology I have not seen development move as fast as it today, and being able to take a tried and true database like MySQL and map it to your needs rapidly is a compelling argument.

And no discussion of MySQL would be complete without talking about MariaDB, the OG MySQL fork.

For most use cases, MariaDB can be a drop-in replacement for MySQL, and it has been developed completely in the open for over 15 years. Last year they added vector search to the database, and now, a year later, it is even faster.

I attended a gathering during this year’s FOSDEM conference, and Monty Widenius gave the opening presentation on what was going on with MariaDB.

Monty talking about MariaDB and MySQL compatibility

He explained how MariaDB was still actively keeping up compatibility with MySQL, and how they were making transitions from MySQL to MariaDB as simple as possible.

Then he did something I hadn’t seen in a long time. He talked about how to migrate from Oracle’s RDBMS to MariaDB.

Monty talking about MariaDB and Oracle compatibility

Heh, remember Oracle? Remember how I mentioned (years ago) at the top of this post how this whole thing got started in order to create an Oracle competitor that was open source? MariaDB is still fighting the good fight.

While I was at the MySQL foundation meeting, I did ask MySQL users “why don’t you switch to MariaDB?”

The main answer was that they saw MariaDB as a vendor controlled project, much like Oracle controls MySQL, and they felt they would be trading one bad situation for another.

I get it, I really do, but having been involved with MariaDB for the last few years it isn’t a fair comparison.

Just to recap, the MariaDB trademark is owned by MariaDB plc (mariadb.com), which is a for profit company that provides a large majority of the code for MariaDB server. However, there is also the MariaDB Foundation (mariadb.org), an independent organization focused on openness, adoption and continuity of the MariaDB project.

MariaDB plc is not Oracle. Oracle has numerous proprietary software products of which MySQL/Heatwave represent a tiny percentage of revenue. MariaDB plc has its entire existence tightly coupled to the MariaDB project, and thus has a huge investment in its success.

This was demonstrated with a recent issue that arose within the MariaDB community. Last year MariaDB plc acquired the Galera project, and in one of the decisions they explored was making those features proprietary, i.e. removing them from the main MariaDB server.

Before you go “oh, that’s evil” and “they’re just like Oracle” I want to point out that running a commercial open source company is hard. People who do open source for a living have bills to pay and families to feed. This “open core” model, where some of the features of an open source project are moved behind a paywall, is common. The success of companies like MongoDB, Databricks and Confluent are all based on commercializing open source in this fashion, and if you click on those links (which leads to their stock listings) you can see it is profitable.

Those of my three readers who have been with me for awhile know I don’t really like the open core model, but I recognize that it has its uses. It does create more open source software, and if you really want you are free to fork it and do the work yourself to add those extra features.

Anyway, I sit on the MariaDB Foundation Board as an Observer, which means that I don’t get to vote and I pretty much don’t speak during the meetings. Not that I don’t have anything to add, its just that the meetings usually have a packed agenda and I like to cede the floor to the voting members (who are all much smarter than me).

This past meeting was pretty contentious, and the main topic was this decision to remove Galera from the main MariaDB application. It went 20 minutes over and we still ran out of time, so we took the discussion to e-mail. A bunch of us weighed in, including me, and then a funny thing happened.

MariaDB plc changed its mind.

Can you imagine Oracle doing that?

Most of the credit goes to Rohit de Souza, the CEO of MariaDB plc. I want to stress that de Souza runs a commercial company and he has investors to please and this Galera acquisition wasn’t free, but he saw the overall benefit to keeping Galera in MariaDB.

There is always going to be friction between a community that wants everything to be free (both gratis and libre) and the company behind it that has to keep its doors open, but this shows that the plc takes its role in the greater MariaDB open source community seriously.

In my years of trying to make money with open source I’ve found that people will pay for three things when it comes to free software: simplicity, security and stability. I read today that MariaDB plc was able to provide all three to its customers affected by the war in the Middle East. Within the greater MySQL community, they deserve your attention.

Wow, that went on a bit longer than I was expecting, but then again I’m really excited about the future possibilities with MySQL. Between the Foundation, VillageSQL and MariaDB, users will have increased choice with all the benefits open source provides, and I’m eager to watch this rebirth play out.