The Planet MySQL has been abuzz with
opinions for or against the acquisition of Sun (and in particular MySQL) by
Oracle, but I do not have a strong opinion to chime in with in support of
The reason is that I do not know anything about antitrust laws, which is the
legal basis for the EC blocking or not blocking the deal; and also I do not
know what the alternative is to Oracle buying the MySQL part of Sun.
However, that does not mean that I can not join in the speculations about
Oracles reasons for wanting MySQL in the first place ;-)
I think it is basically a matter of obtaining control over MySQL.
The horror scenario for Oracle is that MySQL (or Postgress or another Free
Software program) does to the proprietary databases what Linux has done to the
proprietary Unixes. Which is essentially to kill them, slowly but surely. This
is not an immediate threat to Oracle, but it is a real long-term
threat given how similar the technical challenges are of developing a
kernel/OS and a database/RDBMS. And should it happen, the impact on
the license revenues from the Oracle RDBMS would be devastating.
Compared to that horror scenario, the potential loss of some fraction of
Oracle license sales which will stem from the continued development of MySQL
is of less consequences. And this loss will
happen in any case, if not to MySQL then to Postgress, to a
MySQL fork, or to another free database.
So from this reasoning, it makes the most sense for Oracle to continue
development of MySQL more or less unchanged from what it was in MySQL AB and
later at Sun. At a sufficiently high level (in terms of bug fixes, features,
etc.) that most of the community interest will remain on MySQL and not turn to
forks or other Free databases that are outside of Oracles control. And keeping
the very tight control over the development that MySQL AB and Sun also had,
with the community having basically no influence over what goes into the code
or not. Then, should it ever become necessary, Oracle has the control it needs
to prevent or at least manage the above-mentioned horror scenario.
In fact, this is exactly what Oracle has done with InnoDB since
buying them four years ago. The development has continued more or less as
before, as far as I can tell at a similar pace and with the same team. And
while there is a fork
the Oracle-controlled InnoDB is good enough that by far the majority
of the community is using it and not XtraDB.
So basically, after buying InnoDB Oracle has done essentially nothing with it,
one way or the other. Notably, Oracle has not done any of the
following or similar bold and visionary steps with InnoDB:
- Transfered some of the technology from the Oracle RDBMS product into
InnoDB which is currently missing. Like multiple tablespaces which can be
assigned independently to tables (even though
has the syntax support for this). Or the use of multiple buffer pools to
control page eviction. Or online backup based on the transaction log
(innobackup is not part of the GPL InnoDB version, and there is no
integration with the new MySQL backup interface). Etc. etc.
- Opened up the development process like other Open Source projects, with
public revision control repository (as far as I know they have not even
switched to using bzr like the rest of the MySQL world), public mailing
lists for reviews and discussions, public bug tracker, etc.
- Taken steps to integrate the development process better with MySQL AB and
later Sun. As far as I know, changes to the InnoDB included in the MySQL
source tree still happens by manually sending patches from Oracle to MySQL
which are then manually committed to the MySQL tree! Even worse, much of the
development of new features has taken place on a separate product, the
InnoDB plugin, which is not enabled by default (it was not even in the MySQL
source tree until this Summer), and used by only a minority of the community.
- Given up any kind of control of the development to the community
(eg. as far as I know Oracle has taken no steps to work together with
Nothing I have seen in the statements or discussions so far seems to suggest
that Oracle would treat an acquisition of MySQL differently.
Will this be good or bad for MySQL? Without an alternative scenario to compare
with, I do not know. But it certainly is not sufficient! MySQL development has
been stalling for several years, and we need to invigorate it to make MySQL
meet the new challenges facing existing applications, and to improve MySQL for
use in applications where it is currently weak.
We need improved management of huge databases: tablespace management; buffer
pool control; backup infrastructure; etc. We need replication improvements:
binlog storage inside default storage engine for improved transaction
handling; interleaved logging of transactions; multi-threaded application of
row-based events in MVCC engines; robust automatic handling of fail-over
scenarios, etc. We need refactoring of the core server to enable future
development: new parser; separate abstract syntax tree; move to modern
multi-threading architecture with lock-free operations
etc. We need scalability improvements to multi-core computers. We need
versioned metadata for better support of on-line DDL. We need
server-side cache of already executed statements with access to per-statement
statistics and execution plans. We need merge and hash joins. We need better
integration of the many new storage engines being developed: inclusion by
default in source and binaries to make them easy to try and use; extensions to
the storage engine API to better interface to the new engines and fully
exploit each of their unique features. And lots more.
Will Oracle take the lead on some of these, and give up sufficient control for
the community to take the lead on the rest? Well, we do not know. It does seem
hard to find a motivation for Oracle to drive the development of MySQL into
new areas that will necessarily cannibalise their huge license revenues. On
the other hand, if they do, they will be most welcome, and we look forward to
hopefully working together with them. In any case, we must not blindly rely on
this to happen, not from Oracle or any other company which may end up with the
I sincerely hope that whatever happens to MySQL the company, a sufficient part
of the community will remember that we need not just a MySQL (under whatever
name) that is "good enough" today, we also need a MySQL for tomorrow. And for
this the community needs to support those that step up to lead future MySQL
development, whoever it will be.
So will it be MariaDB leading? We still have a way to go before we
have proven ourselves worthy to saying this. But what I can say is that
we are trying!
Tags: developmentprocess, freesoftware, mariadb, mysql, oracle