The first thing to understand is that database systems are not directly connected to the underlying storage infrastructure. There are many reasons for that but the most important are speed (e.g. cache management) and transactional capabilities (i.e. management of concurrent accesses). This layer that interfaces in between the Database and the Storage is called a Storage Engine and also sometimes a Table Engine or (1) Table handler.
MySQL historical storage engine is MyISAM (1) ISAM came first but was quickly replaced by MyISAM and because of it, MySQL had both the great quality to be extremely fast in reading data and the blatant drawback of not allowing transactions (unlike say PostGreSQL). This wasn’t a big hurtle at first since simple web applications needed speed and scalability before anything else; but as web applications grew more sophisticated, it became a major hindrance and prevented MySQL to penetrate new markets.
MySQL people realized this and decided to remediate the situation. As an alternative/complement, they would offer the commercial product InnoDB to their Enterprise customers (remember, MySQL is dual licensed) and offer the Open Source community to use (1) either InnoDB (dual-licensed GPL except for the hot-backup module which is fully proprietary) or BDB (Berkeley DB) (1) which never had much adoption. In the meantime, MySQL would work on Falcon, the transactional replacement for MyISAM.
But in the past 3 years, the landscape had started to change. Oracle acquired SleepyCat (who was dual licensing –and as such controlling- BDB) then acquired Innobase the maker of the commercial InnoDB (1)-and as such controlling InnoDB GPL- MySQL was starting to look like a giant with feet of clay (MySQL dropped BDB immediately after Oracle purchased of SleepyCat (1) as per Oracle request).
I’d venture to say that it was a way for Oracle to lock MySQL into accepting to get acquired or at least to give second thoughts to any other potential acquirer of MySQL. The beauty of the maneuver is that it cost peanuts to Oracle:
$3M for InnoDB, probably around $100M for SleepyCat (it was never disclosed officially). Also of interest is that InnoDB was custom modified by Google to run zillions of MySQL instances.
Now, without any decent “Storage Engine” (the new Falcon does anything but soaring in benchmarks (1)although some say that Falcon is not that bad), it’s going to be difficult for MySQL to keep both commercial and community momentum. (1) And as of today MySQL works in parallel on yet another competing storage engine candidate Maria .
Enters IBM that recently purchased SolidTech (the maker of SolidDB), a company much involved instorage engine (1) and grid computing (storage clusters and cloud computing need this kind of technology to distribute large databases).
As explained by Matt Asay, IBM released SolidDB as open source. SolidDB, which is GPLed on SourceForge/collabNet, seemed indeed to be a
good ((1) actually poor ) candidate for a storage engine that would allow MySQL to replace InnoDB or to wait for Falcon releases to improve. (1) In the meantime MySQL customer base depends on Oracle's goodwill to renew the contract between Innobase/Oracle an MySQL/SUN.
No doubt SUN engineers have the ability to do something. After all, SUN is a software company, right?
(1) update 04/21/08: corrections or additions brought to MTG by well-informed, reliable sources.