With all the noise about database and application software maker Oracle shelling out $5.6bn to acquire Sun Microsystems, the preview of the MySQL 5.4 relational database slipped through a lot of cracks when it was announced this week at the MySQL Conference & Expo in Santa Clara.
Sun just announced MySQL 5.1 back in December 2008, so people were probably not expecting a new release so soon - and certainly not one called 5.4. No one ever said that IT vendors had to be consistent.
The big enhancement coming with MySQL 5.4 is scalability, which was desperately needed if MySQL was to compete with alternatives such as
Oracle 11g, DB2, SQL Server, Sybase, and Informix. While MySQL is one of the underpinnings of the Web and is arguably the most popular database in the history of computing (over 100 million downloads), the money is in transaction processing back in boring old corporate data centers and MySQL, as Sun has demonstrated in its quarterly financial reports, just doesn't rake in the bucks ($133m in billions in the first six months of Sun's fiscal 2009 ended in December).
Corporate customers like big database engines, not clusters of smaller engines, because they are simpler to manage. The limited scalability of MySQL has therefore pushed it into relatively small database jobs or into clustered environments where large amounts of data need to be churned through.
Sun says that MySQL 5.4 will scale to 16 cores (or threads if they have simultaneous multithreading) on x64 systems and will scale to 64 cores (or threads) on multithreaded Sparc servers. In the current MySQL 5.1 using the InnoDB storage engine, MySQL can only span as far as four cores. (These tweaks to InnoDB were contributed by Mark Callaghan of Google, and Sun is looking at back-porting the tweaks to MySQL 5.1).
Four cores or threads is a low ceiling for a lot of workloads and is by far out of whack with current server iron. A new two-socket "Nehalem EP" Xeon 5500 server has 8 cores and 16 threads, which means it can max out this relatively small box. Ditto for Sun's top-end Sparc T Niagara-class box, using the "Victoria Falls" T2+ processor, which has four 8 core/64 thread processors in a single system image, for a total of 256 threads.
Opteron processors from Advanced Micro Devices don't have simultaneous multithreading, so oddly enough, MySQL 5.4 will be able to scale across all the cores in a four-socket "Shanghai" Opteron server, which it can't go beyond two sockets in a Xeon 550 box and one socket in a Niagara machine.
According to this post by Robin Schumacher, director of product management for MySQL at Sun, internal benchmark tests show MySQL 5.4 offering about 59 per cent better bang on x64 machines and 71 per cent more oomph moving from Niagara machines with 32 threads to ones with 64 threads. Response times have been radically improved, with up to a 90 per cent improvement on some tests.
What seems pretty obvious is that MySQL needs to scale to something more like 1,024 threads if it wants to compete with Oracle and DB2. But once Oracle is in charge of MySQL, it seems highly unlikely that the database maker will obsolete its eponymous database for a freebie product that generates very little dough. MySQL will likely be positioned as an alternative to Oracle Standard Edition One, which only runs on two-socket boxes.
Schumacher says that from here on out Sun (well, soon Oracle) will be doing regular and more frequent releases rather than trying to get every feature for a release done in that release. Some features will slip, and that's the way it goes in the software biz, which is far better than holding up an entire release. To that end, Schumacher says that a backup utility and support for a new transactional storage engine called Falcon will not make it into MySQL 5.4.
MySQL 5.4 has a bunch of other features, such as doing multi-way database joins inside of main memory to speed them up (particularly important on clustered MySQL databases, cutting down on server node round-tripping as the join is performed) and various subquery optimizations to make them run faster. Sun has also improved the use of DTrace, its low-level system monitoring tool, when used with MySQL 5.4 on Solaris 10 systems. Stored procedures - a feature that was missing from MySQL for many years, thereby limiting its appeal for enterprise-class applications - will also be made more robust.
The preview release of MySQL 5.4, which you can get here, is only available for Linux or Solaris 10. When it ships later this year - presuming Oracle doesn't change the schedule - it will be available on Red Hat's Enterprise Linux, Novell's SUSE Linux Enterprise, Canonical's Ubuntu, and other popular Linuxes as well as Microsoft's Windows, Apple's Mac OS X, FreeBSD Unix, IBM's AIX and i5/OS (using DB2/400 as a data store instead of InnoDB). Sun will put out a GA date for MySQL 5.4 once it gets enough feedback from the MySQL community. ®