There are a number of different ways of achieving high availability and scalability with the open source MySQL database. One of those ways is with the Oracle MySQL Cluster solution, which is being updated today to version 7.3.
Tomas Ulin, vice president for MySQL Engineering at Oracle, explained to Database Journal that MySQL server on its own has replication where data can be replicated to one or more read slaves. The model for MySQL Cluster is a bit different.
MySQL database has a storage engine API that resides locally on the machine on which the database is running. With MySQL Cluster, the data is residing remotely over the network in a storage engine known as NDB. Ulin explained that NDB is a clustered storage engine that distributes the data across a number of nodes. Redundancy can be defined by an administrator enabling data to be on two or more data nodes at the same time.
"It's a shared nothing architecture where the data resides in memory, though we do have disk data options so you can choose to persist certain attributes in your data model on disk," Ulin said. "We do checkpointing to disk, so it's not like a typical in-memory database where the data is gone; you can bring the system back up and your data is still there."
Checkpoint speeds can be defined by the administrator down to half a second. Additionally any number of MySQL servers can connect to the same data store, which provides high-availability and scalability on the SQL layer.
"MySQL Cluster has been a NoSQL database from the get go, with an added SQL interface," Ulin said. "It has all the NoSQL properties around a direct access API and the ability to scale out."
MySQL Cluster 7.3 Features
For most of its history, MySQL Cluster has been getting much of its traction in the telecom space. With the 7.3 release, Oracle wants to further expand usage into the mass market of web use-cases. MySQL Cluster now supports Joins as well as Foreign Keys. Foreign Keys deliver a more advanced data modeling schema property.
The new auto-installer will also be a big boost that Oracle hopes will increase adoption.
"We hope to reach a new set of users that previously had been held back because they thought the cluster was too complex," Ulin said.
What the auto-installer does for administrators is detect how many CPUs and how much RAM is on a host. The installer asks a few questions about the type of workload that is set to be deployed and then will provide a workload optimized configuration.
MySQL Cluster 7.3 also provides connection thread scalability. Ulin explained that through a single thread toward the cluster, up to 7.5x more performance can now be achieved. The new cluster release also benefits from the myriad improvements that the core MySQL 5.6 database introduced when it debuted in February of this year.
While Oracle continues to invest and build out MySQL Cluster, as is the case with MySQL database, Ulin stressed that it continues to be an open source project.
Sean Michael Kerner is a senior editor at DatabaseJournal and InternetNews.com. Follow him on Twitter @TechJournalist.