MySQL Cluster Adds NoSQL Option

MySQL Cluster 7.3 brings a JavaScript connector, foreign-key support and a wizard-driven auto installer to a highly scalable database.

Oracle on Tuesday announced a collection of must-have and nice-to-have upgrades with the release of MySQL Cluster 7.3, the high-scale, shared-nothing, auto-sharding version of the MySQL database management system. The key must-have is foreign key support, while one nice-to-have is a wizard-driven auto installer. A new JavaScript connector for NoSQL data access falls somewhere in between.

NoSQL technologies are getting a lot of attention these days, so it's no surprise that Tomas Ulin, VP, MySQL Engineering, is quick to point out that the open source MySQL database has offered options for direct, NoSQL access to data since 2004. That's in addition to standard SQL access and querying, of course.

"There's going to be part of your application where rapid development and a schema-less approach makes sense, and then there's going to be other parts of your application where you need SQL, you need structure and you need to be able to write complex queries without having to program it yourself," Ulin told InformationWeek. "With MySQL, we've shown that we can give you both."

[ Want more on open source wars in the big data arena? Read Oracle MySQL Upgrade Challenges NoSQL Onslaught. ]

The new JavaScript connector for node.js will make it simpler and faster to build services deployed across clusters, according to Oracle, and it adds to the list of NoSQL connection options. MySQL already offered connectors for direct access to the data store (bypassing SQL) via Memcached, Java, JPA and HTTP/REST. Adding JavaScript brings support for a popular language.

As for that must-have foreign-key support, that's been on the Cluster Edition wish list for years, Ulin admitted. InnoDB, the default storage engine or MySQL 5.6 (the standard MySQL server product), already supports foreign keys, but the lack of this feature has held back the MySQL Cluster edition.

"Foreign key support enables you to maintain consistency in relationships across multiple tables," Ulin explained.

Lots of applications have foreign key dependency, and support ensures that related data properties are preserved. In a human resources application, for example, one table might be used for employees and another for all the valid departments within the company. When you add a new worker to the employee table, a foreign key relationship verifies that the department listed for that employee actually exists in the department table.

Finally, the nice-to-have introduced with MySQL Cluster 7.3 is an auto installer that makes it much easier to install and configure the clustered database across multiple nodes, according to Ulin. You point the installer at the intended host computers and it automatically detects how many cores and how much RAM is available.

"Many parameters have to be set when you deploy, and you previously had to iterate through the settings on every cluster," said Ulin. "The auto installer will suggest configurations based on best practices developed through the years, and if you're happy with those you can stick with the auto suggestions."

Adding one more NoSQL connector to MySQL may not change many minds about the need for highly scalable NoSQL options such as Cassandra, Couchbase and Riak. But Ulin insists MySQL Cluster 7.3 has a strong case on scalability.

"MySQL Cluster offers transparent sharding, high performance, you can just add more data nodes to make it scale and you don't have to bother about scaling in your application," Ulin said. "In the end, as applications mature, you're going to want to do complex queries with SQL at some point, so our story is a good one."