Oracle has begun working on the next version of the MySQL relational database and is focusing much of its efforts on improving the software's performance and replication capabilities.
The company's developers are making notable improvements to the core InnoDB storage engine, which should make the database system more responsive. Also, the ability to replicate a database to another location, always useful for backup and disaster recovery, is being enhanced in a number of ways, said Tomas Ulin, Oracle's MySQL vice president of engineering.
Such work is being applauded in the MySQL community.
"From an engineering standpoint, Oracle is doing the best work on MySQL that's ever been done," said Baron Schwartz, chief performance architect at Percona, which sells an optimized version of the database software.
Marten Mickos, ex-CEO of MySQL AB, has also praised Oracle's efforts with MySQL. MySQL AB was purchased in 2008 by Sun Microsystems, which itself was purchased by Oracle last year.
Oracle released the last version of MySQL, version 5.5, in December. The company has not set a release date for the next version, but last month Oracle released the first preview, or development milestone, version 5.6.
Much of the work now under way is going into making the database faster, Ulin said. The InnoDB storage engine and the optimiser have both been revamped for faster performance. The optimizer, for instance, can save its algorithms for a particular query, should the administrator be pleased with the performance of that query under the optimiser.
Schwartz said that this version of MySQL implements some of the performance enhancements his company built into its own version of MySQL, called Percona Server. "This means we won't have to maintain these features any longer," Schwartz said.
One such feature being mulled for inclusion in 5.6 is the ability to "pre-warm the buffer pool cache," Schwartz said. A database can build up a cache of frequently consulted entries. When a server is shut down, however, this cache disappears, and, upon restarting, it can take several hours to build the cache back up. In the meantime, however, users may experience slower-than-normal response from the database.
"This is a big problem with servers with lots of memory," Schwartz said. Pre-warming the cache simply means the database can recreate a cache after it is rebooted. It keeps a list of all the required entries, which it can fetch quickly from the database in an orderly manner.
The company is undertaking quite a bit of work on MySQL's replication capabilities, which automatically copy databases to secondary locations.
With this release, replication is being sped up though multithreaded support. Multithreaded replication is "an absolutely killer feature," Schwartz said. When data is replicated on a backup server, the software can now spawn multiple threads on the backup server to copy the material in parallel.
In earlier versions, "you could completely overpower a replica with even a moderately powered master server. That's been a serious problem for a long time," Schwartz said.
Also on the replication front, the company has introduced time-delay replication, where the copying process can be delayed by a preset length of time, which can be handy in those cases where an administrator makes a severe mistake, such as inadvertently dropping a database table. Because the replication is not instantaneous, the administrator can fetch the replicated dropped table before it vanishes too.
Ulin said the company plans to release some more milestone beta releases before the final launch. Also, the company is releasing different preview versions of MySQL, each one implementing a potentially new feature. This approach can ease the job of testing the software before putting it into a production environment, Schwartz said. "If I wanted to test a specific feature, I can test that without worrying about the influence of other features," Schwartz said.
Overall, Schwartz is pleased by the work that Oracle is doing.
Past releases of MySQL tended to have a lot of bugs, which then later had to be patched, he said. Version 5.5, however, which was largely overseen by Oracle, was a clean release and Schwartz expects that version 5.6 will be solid as well.
"Oracle is doing good, formal software engineering," he said.