The MariaDB Foundation announcement spawned some
interesting commentary about the state of open source databases.
One recent headline cited the "beleaguered MySQL community." Beleaguered is a
delightful adjective. The OED tells us that it means beset,
invested, or besieged. Much as I like the word, I do not
think it is an accurate or useful description of the MySQL
community. This article and others like it miss the point of what is
happening to MySQL and its users.
Let's start by disproving that the notion that the MySQL
community is beleaguered. I don't know everyone who uses
MySQL, but in my job I talk to numerous companies that have made
sizable investments in MySQL and stand to lose big if they are
wrong. They do not seem especially nervous.
1. Nobody seriously questions MySQL viability.
I have yet to meet a manager with a substantial business on
MySQL who is deeply worried about it disappearing or being ruined
by Oracle. They are too busy working on software upgrades
or keeping their sites running. The future of MySQL is well
down the list of problems keeping them awake at night.
2. MySQL meets or beats the immediate alternatives.
There is of course discussion about dropping MySQL for
PostgreSQL but it is mostly idle talk. I'm sure some companies have
switched (actually in both directions), but I not seen a single
customer migrate a working business app from MySQL to PostgreSQL.
Once you get past the religion, it's clear MySQL and
PostgreSQL are just too similar to supplant each other easily:
reliable, row-based stores with single threaded SQL query
engines that handle a few terabytes of data at most.
Companies need far stronger reasons to switch to something
new, especially given the large ecosystem and deep pool of MySQL
expertise.
3. MySQL is not the only game in town. Virtually
every large web site I know uses at least one NoSQL store
alongside MySQL. Column stores are increasingly common for
data warehouses. Production Hadoop clusters are no longer a
novelty. On the surface this might look like a failure of
MySQL. What's really happening in many cases is that small
businesses that started on MySQL are now large, profitable
enterprises that require more than just economical OLTP.
This is a mark of success, not a deficiency.
If this is what beleaguered looks like I can't wait to see
something that's actually successful.
Turning the argument around, can we say that the MySQL community
is better than it was? In at least one important way, yes.
The community is now multi-polar. MySQL long
benefitted from having a large community of open source users to
find bugs, help focus development direction, and construct a wide
range of robust tools like language bindings. However,
innovation on MySQL itself was largely gated by a single company:
MySQL AB. Multiple groups are now competing to
improve MySQL, and it's a very good thing for users. Let me
count the ways.
There are three major versions of MySQL: Oracle, Percona, and MariaDB, not to mention cloud-only versions like
Amazon
RDS. There are at least four companies working
directly on major upgrades to replication: Continuent, Oracle, Codership, and Monty Program. Oracle is continuing to make
improvements in InnoDB like online schema change and multi-core scaling,
efforts that are complemented by Percona's persistent
focus on all aspect of performance. Aside from Amazon
RDS, all of this work is available in open source, and there is
an unusual degree of sharing across otherwise competitive groups.
I could keep going for a while but to be frank there's so
much it's hard to track all the improvements or give them their
proper due.
The MySQL community is therefore competitive in a way that did
not exist a few years ago. That's good, because innovation in
data management is no longer centered around the web-facing
applications that MySQL helped enable. Businesses are grappling
with massive data volumes that far exceed the capacity of single
DBMS servers while simultaneously moving to Amazon or VMWare.
There is a whole new set of problems such as deploying in
unstable cloud environments, adjusting to polyglot persistence, managing sharded data
effectively, distributing data across multiple regions, and
enabling real-time analytics on MySQL transactions. As a group,
the MySQL community is well-positioned to address them.
If there is a problem, it is how to keep a strong multi-polar
community going for as long as possible. Competition
creates uncertainty for users, because change is a given.
Pointy-haired bosses have to make decisions
with incomplete information or even reverse them later.
Competition is hard for vendors, because it is more difficult to
make money in efficient markets. Competition even strikes
against the vanity of community contributors, who have to try
harder to get recognition. It is clear there will be
pressures to make the community less competitive. They
won't necessarily be from Oracle, which thrives on
competition.
This gets back to the MariaDB Foundation reference that started
this article. Anything that ensures long-term competitiveness and
vitality of MySQL is good. Foundations in general seem
well suited to this task. At Continuent we have already had
some discussions about joining. So far we are undecided, for
reasons that are somewhat similar to Peter Zaitsev's comments on this subject.
If the MariaDB Foundation helps maintain a stable
multi-polar community, we're in.
Dec
27
2012