Part of an article originally published in the article MySQL Forks: Which one is right for me?, published in the June edition of php[architect]. The preceding portion of the article is available:

Oracle is the “official” distributor of MySQL .  MySQL AB had a policy of requiring outside code contributors to assign their copyrights to MySQL AB, so Oracle is the only company able to distribute MySQL on terms other than the GPL.  They have a large customer base for their Enterprise Edition of MySQL, which includes some enterprise features not available in the Community Edition.  Since most users of MySQL do not use the Enterprise Edition, I will focus on features included in the Community Edition.

As a company that grew up around enterprise databases, Oracle obviously had a great deal of database experience long before they bought Sun.  They’ve made several substantial optimizations in MySQL 5.5 and the recently released 5.6.  Version 5.5 features included:
* Scalability enhancements for multi-core systems
* Semisynchronous replication, which ensures that at least one slave knows about a transaction before it is committed to disk
* InnoDB as the default storage engine, rather than the non-transactional and non-durable MyISAM storage engine
* The Performance Schema is available for diagnosis of server slowdowns

The new 5.6 release includes several great new features as well, including:
* Index condition pushdown, which gives the storage engine more information about which rows to return and can result in less I/O for certain queries
* Multi-range reads, which allow the database to optimize sequential disk accesses on non-SSD disks
* Several InnoDB performance and scalability improvements
* A memcached API for InnoDB, which allows extremely fast reads and writes for single-row keyed lookups
* Several enhancements to replication, including allowing one slave thread per database for parallel execution

Clearly, Oracle has not left MySQL to die, as some pessimists predicted back when Oracle first purchased Sun.  On the contrary, Oracle has done much to improve the MySQL Community Edition and make it even more competitive.  The 5.6 release has raised the bar for MySQL servers, and shows me that Oracle intends for their official edition of MySQL to be the best out there.

There are still detractors, however.  Some of Oracle’s decisions have not gone over well in the MySQL community.  The MySQL Conference and Expo, an annual event since 2003, was discontinued after 2011.  More recently, it was revealed that Oracle is not publishing test cases for any bugs it deems to be security-related.  While intended to make life harder for malicious hackers, it also makes it more difficult for community distributions of MySQL to do regression testing on their versions of MySQL.

Another concern for some has been that many of the original core developers left for other companies after Sun and then Oracle took over.  After changing corporate owners twice, it’s fairly typical that some employees decided to leave.  Percona and Monty Program have both hired a number of former MySQL employees.  I don’t view this as a major problem, however.  Oracle still has a strong core of MySQL/InnoDB developers, and has plenty of database experience in-house.

Next week: Percona Server

Share →

8 Responses to MySQL Forks: The Current State of Oracle MySQL

  1. Steve Meyers says:

    Sheeri –

    Thanks for taking the time to read my post. In this article, I was trying to share both points of view. Whether you feel the criticism is warranted or not, it is being expressed by many in the wider MySQL community. There are many in the community who are concerned about Oracle owning MySQL, and will probably tend to view anything Oracle does as having an ulterior motive.

    The fact that they replaced the MySQL Conference and Expo with something else does not invalidate the feelings of many in the community about its demise. I think Oracle had lots of great reasons to make the change. First, it consolidated it with Oracle World. Second, it let them run the show instead of O’Reilly. There are probably other equally valid reasons. Whatever the reasons, there are many who were upset about shutting down the MySQL Conference.

    Regarding the test cases, the concern was not about Redhat and Fedora having access to them, but rather Percona and MariaDB. Things may have changed, but it was the Percona and MariaDB people who were complaining at the time, so I assumed their concern was accurate. If you have more recent information, I’d be happy to update my post.

    • Sheeri says:

      You say, “it let them run the show instead of O’Reilly” – this is a clear indication that you have not researched the actual issue. What happened was that O’Reilly abandoned the conference when it was not making money. So it’s not a matter of Oracle not wanting to work with O’Reilly – O’Reilly stopped doing the conference, period.

      This lends credence to the idea that you are merely spreading what you hear. Have you done any journalistic research, and perhaps *asked* the Percona and MariaDB folks if they have access to test cases? (their answer will be “yes” although they might grumble about some test cases being hidden for *customer privacy* reasons. Anyone who says they don’t have access is either lying or misinformed.

      • Steve Meyers says:

        I’m not a journalist, and have never pretended to be. I was asked to write an article about the various MySQL forks, and this bit was relevant to why the forks are where they’re at today.

        Oracle pulled out of the MySQL Conference before O’Reilly did. The last MySQL Conference’s major sponsor was EnterpriseDB (the PostgreSQL company).

        I have not talked to the Percona folks specifically about the test cases, but I have talked to people from MariaDB and Oracle. It’s possible the situation has changed since then (the article was written in May).

      • I am a MariaDB developer, and the answer is “NO, we don’t have access to most of testcases”.

        I even wrote about an example where testcase is not put in the tree, even if it happens to be publicly available (and so, “customer privacy” is not a concern): http://s.petrunia.net/blog/?p=87

        It seems, others are having trouble finding testcases, also: http://mysqlha.blogspot.ru/2013/11/where-are-tests.html

        • Sheeri says:

          This is great information. I will bring this up at the next MySQL Council meeting. Having the data points saying “this is public, why isn’t in in the tree?” is exactly what we need to get the word out to Oracle – writing blog posts is NOT the way to enact change, unfortunately.

  2. Sheeri says:

    Clearly you haven’t been keeping up to date – Oracle stopped supporting the MySQL Conference and Expo because they’ve been putting on MySQL Connect instead.

    As for the test cases, they’re available, just under different package names, and for software distributors (like Redhat, Fedora, etc). I wish that particular FUD would die because everyone complains about it, but the people who actually need/use it have access to it!

    • Sheeri, did you actually look at what is the contents of that package?

      I just did, just in case, and of course, it has the same tests that the bzr repo (or source tarball) has in mysql-test directory. That is, it doesn’t contain testcases for 99% of the bugs fixed in 5.6.14, for example.

      You can see for yourself – unpack MySQL-test-5.6.14-1.linux_glibc2.5.i386.rpm, then grab a bug number from http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-14.html and grep for it. You’ll find nothing.

      So, please don’t call this FUD. It is not.

      • Sheeri says:

        This may have to do with the fact that 90% of the bugs are in Oracle’s closed system and have nothing in the public bugs database. I can’t tell you details, but I can tell you that I know for a fact that Oracle is looking into bugs that should be open but currently aren’t. It’s very possible that once they’re open, their test cases will be open too. I think this is a symptom of the same problem here.

Leave a Reply

%d bloggers like this: