Oracle has updated its MySQL Cluster software to make it more appealing to large web service providers, among other users of large-volume distributed databases.
MySQL Cluster 7.2, which was released for general availability yesterday, "is a huge step forward for MySQL Cluster, taking it further into the web market," said Tomas Ulin, vice president of MySQL engineering for Oracle.
Two features in particular will help with such duties. The software now offers a Memcached API (application programming interface) that allows applications to access data directly rather than go through the SQL engine. The software also implements a speedier way of executing complex queries, or queries that involve joining data from multiple tables.
With these two new features, MySQL Cluster can offer the best attributes of both SQL and NoSQL databases, Ulin explained. It can rival the fast key value operations of NoSQL, while still offering the ability to do complex SQL queries of a regular SQL database.
MySQL Cluster is a version of the open source MySQL database that has been configured to run across multiple servers. It is designed in such a way that if one server, or node, fails, then the cluster retains all data and continues to operate without fail. It uses a shared-nothing architecture, in which the cluster has no shared memory or disk space, a trait that helps systems scale to an unlimited number or nodes.
Traditionally, MySQL Cluster has been widely deployed in the telecommunications field. "You can go to any continent and find mobile networks that have deployed MySQL Cluster," Ulin said. Telecommunications companies enjoy the cluster software's ability to scale easily, as well as the ability to recall data no matter how recently it was written to disk. They also enjoy the fact that MySQL Cluster can run on low-cost commodity servers, Ulin said.
With this release, Oracle has prepped MySQL Cluster with new features that should make it particularly well-suited for large-scale web applications, Ulin said. "We've seen telecoms and web merging together. The requirements for the telecommunications industry are becoming requirements for the web industry: [very] low latency, high availability and scaling. We see a very good fit here," Ulin said. The software would be suitable for web service tasks such as user profile management, session management, online gaming and high-volume OLTP (online transaction processing).
MySQL Cluster 7.2 is the first version to offer access to its data by way of a Memcached API. Used by many large web service providers such as Facebook, Memcached creates a hash table of commonly accessed database items that is stored in a server's working memory for quick access, by way of an API (application programming interface).
"Persistent Memcached is a useful thing," said Curt Monash of Monash Research, noting that sales of the Couchbase NoSQL database, built on Memcached, have been quite strong.
"MySQL has always given good performance when used just as a key-value store," Monash said. "So it's reasonable to hope the Memcached interface will have good performance out of the box."
MySQL Cluster did offer a similar direct-access capability before through another API called NDB (network database). That API was proprietary to Oracle, however. The use of Memcached will allow more administrators - those already familiar with Memcached - to work easily with MySQL Cluster.
The software also introduces a feature called adaptive query localisation, which can reduce the time it takes to execute complex queries. Complex joins have been the "Achilles' heel" of earlier versions of MySQL Cluster, Ulin admitted. Such queries involve combining data from multiple tables, which is a computationally intensive operation, especially with large data sets. In its previous incarnations, MySQL Cluster would execute complex queries by collecting all the data on a server and execute the join orders. "You might have to shuffle two gigabytes of data up to the MySQL server just to get only a few lines" of resulting data, Ulin said.
Oracle VM integration
Adaptive query localisation moves as much of the join computation as possible to the servers that hold the data. Much of the cross-indexing is done on the individual node before it is transferred to the server tasked with making the query. This approach can return results to queries up to 70 times faster than what previous versions of MySQL Cluster could do, Oracle claimed.
The new feature "can really broaden the uses for MySQL clustering," Ulin said.
The software comes with a number of other new features as well. One is the ability to spread individual data nodes out across multiple data centres. The software also allows administrators to share user privilege tables across different nodes, eliminating the need to define user privileges on each server.
In addition to updating MySQL Cluster, the company has also certified the software to work within Oracle VM environments. Oracle has also updated MySQL Cluster's stand-alone administrative package, MySQL Cluster Manager, which is now at version 1.1.4.
MySQL Cluster software is available as a free download. Oracle also offers a supported version, MySQL Cluster Carrier Grade Edition Subscription, starting at $10,000 (£6,500) for servers with one to four sockets.