As most of you will know, the big news recently in the MySQL world, besides the launch of the long-awaited MySQL 5, involves Oracle. Oracle has done two things that will catch the attention of MySQL users. First was the purchase of Finnish company Innobase OY, who develop the code for the InnoDB storage engine, and secondly Oracle's release of their free Express edition database software. Oracle Express is limited to single-processor machines, 4GB of data and 1GB memory, but is basically the same Oracle platform, allowing users to easily upgrade if needs be.
The InnoDB storage engine has been a critical part of MySQL's success. The default MyISAM (at least for most installations) storage engine does not support transactions, while InnoDB does. MySQL is still perceived in the market as not being as fully featured as the proprietary DBMS', nor even as its open source rivals Firebird and PostgreSQL. MySQL for a while has pointed to InnoDB as its most reliable, fully featured storage engine, so its purchase by Oracle has some potentially severe implications for MySQL.
Brilliant timing by Oracle
The timing of these announcements was well chosen by Oracle. Just as MySQL was about to bask in the glow of the accolades after the release of MySQL 5, which finally contains most of the features users have been crying out for, Oracle steals their thunder by taking ownership of a critical part of MySQL's success, and shortly after releasing Oracle Express to further muddy the waters. I am sure MySQL executives hearts skipped a few beats after Oracle made the announcement, and the company has been roundly criticized for allowing Oracle to take control of such a key element in this way. The negotiations for the InnoDB's continued use with MySQL are bound to be interesting, as negotiating with the tiny Innobase OY is certainly not the same as negotiating with the giant Oracle.
The release of the free Express version clouds the issue for price-conscious users who would have been tempted by MySQL. It is the old trick of the first hit being free, and Oracle will be hoping that users will pay for the upgrade as their needs grow. No matter what sort of database abstraction is used, migrating to another DBMS is never easy, and users who have already built their solutions on Oracle will most likely pay Oracle for a painless upgrade, rather than pay for a likely painful migration to another database.
In spite of Oracle's protestations to the contrary, MySQL has been poaching customers from Oracle. Oracle, positioned as they are as the premier DBMS, has not been affected as much as some of the other companies. We have already seen Informix sold to IBM, and Sybase desperately trying to position themselves as much more than just another database. MySQL may not stand up to a comparison with Oracle, but it does not do too badly with some of the others, and it is getting harder to differentiate them feature wise. So, the purchase has a number of benefits for Oracle. It creates uncertainty amongst potential MySQL customers, as they now seem reliant on Oracle. In this sense, the move is an aggressive move against MySQL. However, there is much more than that. It also helps Oracle tackle their other competitors. The middle range DBMS's are now under threat from two sides - their high-end customers may move to Oracle anyway because of the perception of Oracle as market leader, while their low-end customers, who may have been unwilling to take a chance on MySQL, can now either use Oracle Express, or MySQL with InnoDB, safe in the knowledge that it is supported by Oracle. The aims here are slightly contradictory. Oracle can make a great success of its partnership with MySQL, and really put the pressure on its other competitors. But MySQL too is a competitor, so it will be interesting to watch how they maneuver. My guess is they will initially work hard to ease the communities' fears, support InnoDB as well as they can, and target their other competitors first. The success of this will probably determine what follows.
Open and not so open source
The beauty of open source is that it is just that - open. The InnoDB code has been released under the GPL. If a future version is not, the opportunity exists for another party to continue development of the code. However, the InnoDB Hot Backup tool is proprietary, and it's a key part of InnoDB's high-end usability. If another party forks the code, Oracle's ownership of InnoDB Hot Backup means it holds the aces. In addition, InnoDB is dual-licensed in the same way that MySQL is. There is a GPL version for certain users, while others need to purchase a commercial license. Oracle has a number of options that can seriously affect MySQL. They can charge MySQL a premium for the commercial use of InnoDB, possibly forcing MySQL to drive the price of its commercial version up, reducing its attractiveness to customers. Alternatively, they could release InnoDB under the GPL for all users, leaving MySQL in the unenviable position of having a GPL version of its products that is more fully featured than the commercial version.
Oracle and SAP
A key competitor of Oracle is SAP. MaxDB is based on SAP DB, which SAP licensed to MySQL, and which the two companies jointly develop and market. It is aimed in particular at SAP implementations, just the market that Oracle has been targeting so aggressively with the purchase for example of PeopleSoft. Oracle and SAP now both have partnerships with MySQL, and you can be certain that Oracle will be targeting those customers considering SAP/MaxDB. Oracle is much more than just a database company. Their CRM and business software is just as important, and Oracle can use this leverage to their advantage.
Oracle and open source
Oracle seems to understand open source better than many of its proprietary rivals, and to use this in ways that benefit the company. Look for example at their successful campaigns aimed at running Oracle on Linux. I predict that they will continue to release InnoDB under the dual-license for the foreseeable future, secure in the knowledge that they can change strategy at any time, but using the opportunity to win goodwill amongst the open source community.
There is little doubt that MySQL will be concerned, in spite of what their press release says. The speed of its appearance probably only reaffirms their concern. However, MySQL is by no means helpless and beholden to Oracle. Even if Oracle does withhold InnoDB, MySQL does have a stable, fully-featured database in its arsenal. As mentioned earlier, that's MaxDB, or the old SAP DB. It has not received that much attention until now and perhaps MySQL has been a little lax in integrating it with the rest of their systems, what with their focus on version 5's release. However, MaxDB now assumes a much more important role, and MySQL should be working on integrating it as quickly as possible, to give customers an alternative to InnoDB. MySQL is also now placed in the position of middleman in the rivalry between SAP and Oracle. Both companies dwarf MySQL, but there is room for some tricky maneuvering. Also, don't forget Sleepycat software's BDB, which used to be the only MySQL storage engine (or table type as it was called then) that supported transactions. However, in spite of the length of time BDB has been integrated with MySQL, the interface is still only considered gamma quality. I am sure MySQL too will be prioritizing this, providing a 3rd alternative to users, and one that isn't (yet) part of the fiery SAP/Oracle rivalry. It is both a strength and a weakness that MySQL utilizes 3rd party storage engines. The strength being that MySQL can relatively easily make use of others' mature technology to enhance the codebase and provide more features, with little effort required from MySQL developers. The weakness, as Oracle has shown, is that those 3rd parties are outside MySQL's control, and may change the terms under which they work with MySQL.
MySQL needs development resources to answer the challenge - MaxDB integration and BDB integration, as well as adding transactions and key features to the core MyISAM storage engine, which is already part of the roadmap, all require serious work. MySQL may consider hiring InnoDB developers, but that comes at the cost of potentially damaging InnoDB itself, which MySQL is still heavily reliant on, and antagonizing its new business partner.
The advantages for Oracle are clear, and they have a wide scope to fine-tune their strategy. MySQL has more of a tightrope to walk, and the MySQL user community will be watching with interest, and some concern.