Archive for 19th October 2005

MySQL, Innodb, and Oracle — Looking through the FUD

There has been a lot of buzz going around lately about Oracle’s recent aquizition of Innobase Oy the company that produces the innodb storage engine for MySQL. Most of this buzz is centered around MySQL being doomed or at least being set back to the years before it was considered enterprise quality. None of this is true.

First a bit of background. MySQL is unique (as far as I know) in the relational database industry with the concept of storage engines. This gives users the choice of many different features for storage making MySQL the most flexible database in the world (opinion of course, rebut if you dare ;) ) innodb is only one of several storage engines available to users. Contrary to popular belief it is not the only storage engine that supports transactions. MySQL also supports the bdb storage engine created by Sleepycat software. Innodb is recognized as the better of the two but the choice is still there.

Now back the point. The big question is, “What will MySQL do now?” This is the wrong question. The ball isn’t in MySQL AB’s court anymore. It’s securely in the hands or Oracle. They have a few choices. Since innodb is open source they could have been developing a product to compete against MySQL for some time. They could allow direct importing of innodb data which would be an easier migration path to full blown Oracle. While this is a good point it’s not complete. When migrating databases the hardest part is migrating the application code, not the data. This means that Oracle won’t steal any existing MySQL customers by putting out a competing product, but they might gain some new ones. Since these customers are new anyway Oracle doesn’t gain much benefit in buying innodb vs developing their own lighter weight storage technology. Except of course saving the cost of doing the actual development.

The two big questions now are, “What is Oracle going to do with innodb hot backup?” and, “What is going to happen with the current contact for commercial licenses with MySQL AB?” This is where Oracle loses some of their traction. MySQL can do a few things. They can try to renagotiate the contract with Oracle as soon as possible or they can work under the assumption that Innodb will no long be available after that contract expires. Choice B is the safest. The major sticking point with Oracle buying Innobase is not the storage engine. It’s innodb hot backup. Right now Oracle could choose to make innodb backup licenses very expensive. This again would be a small blow. They can’t make innodb hot backup licenses more expensive that an average MySQL slave server. People would just buy more hardware and run a mysql slave which they could shutdown to do a backup.

They could also have bought innodb as a direct blow against MySQL. This again is a good theory but it doesn’t hold much weight. This could actually end up helping MySQL more than hurting them. Had this buyout occured a few years ago MySQL might be in serious trouble. It didn’t. It happened now. MySQL AB has ~80 developers. Innobase has essentially one good developer. Losing 1/80th of an engineering team usually isn’t enough to collapse a company or a product. The same is true for MySQL. MySQL can rebuild part of the functionality of innodb into the storage engine level gifting that to all the underlying storage engines. I’m talking about hot backup for all storage engines, posting advanced reads and other things that are currently only part of innodb. Hot backup on the storage engine layer would make innodb hot backup worthless. MyISAM is already blazing fast. Imagine how much faster it will be with advanced reads :)