This morning, Oracle gave a MySQL technology update that included the announcement that MySQL 5.5 is GA. The short list of exciting new and improved features is -
- InnoDB performance improvements
- Better instrumentation and diagnostics
- InnoDB recovery performance improvements
- Scalability improvements
- Semi-synchronous replication
The InnoDB and MySQL database improvements in 5.5 are impressive. Many of these improvments are gained through increased i/o subsystem improvements and removal of lock contention that has long been an issue when scaling on hosts above 4 cores.
The benchmark graphs that Oracle had in this morning’s call show improvements on multicore machines, at high levels of transactions and across read, write and mixed workloads.
With 5.5, InnoDB has become the default storage engine and thus out of the box, MySQL has ACID compliance, transactions, foreign keys and crash recovery.
The work on InnoDB additionally addresses some specific issues during crash recovery that many people have run into. The team was able to isolate an issue of memory allocation during crash recovery that drove the CPU utilization by doing an intensive check frequently to avoid over allocating memory. The second big win in crash recovery is in the handling of the flush_list (the list of dirty pages at the time of the crash). In regular database operations, the flush list is only inserted to at the head. However, during an InnoDB recovery, records are inserted after a linear search to determine the proper placement in the list. The InnoDB engineers added a dataconstruct during recovery that improves the efficiency of the inserts. This morning’s graphs show a better than fourfold increase in recovery speeds most of which happens during the log application phase of the recovery.
Much of this morning’s call was spent on performance improvements, but I’m most interested in the performance_schema and the replication enhancements that made it into this release. I’ll be spending more time investigating semi-synchronous replication, the enhanced SHOW ENGINE INNODB STATUS, and whether or not the performance_schema meets it’s design goal of causing no changes in server behavior.
After the announcement webinar this morning, I had an opportunity to record the first of the revived OurSQL podcasts with Sheeri Cabral. There are lots of tidbits in there about what we heard and saw in the release promotion and documentation. I’ll update this post with a link to that audio when it is posted.
MySQL 5.5 is the first GA release of MySQL Server under Oracle’s stewardship and the first in almost 2 years. I’m looking forward to digging further into 5.5 and applying these new features to existing client issues. Those of us who prefer to run GA for customers have been waiting for some of these features for a long time.
update: the December 15, 2010 OurSQL podcast is up