Most people think of MySQL Cluster as the distributed, high-performance, high-availability version of the popular open source database. But way back in its history -- before MySQL acquired the database in 2003 -- Cluster was known as NDB (Network Database), and it was architected as a NoSQL, in-memory database designed primarily for telecommunications companies.
MySQL Cluster was so ahead of its time, according to Tomas Ulin, vice president of engineering, that SQL query capabilities and disk-based tables had to be added to meet the database expectations of the time.
Not nearly as many organizations were as overloaded with data in 2003 as they are today, but telcos were already swamped. NDB offered a high-performance, NoSQL-style CRUD (create, read, update, and delete) interface that fit their application requirements.
[ Want more on this topic? Read 10 In-Memory Database Options Power Speedy Performance. ]
"We were there very early on, before people started talking about NoSQL," said Ulin in a phone interview with InformationWeek. "We added a SQL-query layer because people wanted to be able to handle the complex queries that they were used to."
As for MySQL Cluster's in-memory architecture, that, too, wasn't a trending topic in 2003. In fact, most people were afraid of RAM limitations and infrastructure costs.
"Customers complained that they couldn't fit their whole data set in-memory, so disk-based tables and attributes were added," Ulin said.
These days memory is much more affordable. As an example, MySQL Cluster 7.4, which was released Thursday, has been upgraded to run on 32-core processors with 56 processing threads and a whopping 256 gigabytes of RAM per node.
Telcos aren't the only ones handling certain tables or all of their data in memory these days. Mobile app, gaming app, and e-commerce app developers are also choosing MySQL Cluster for its low-latency and high throughput, according to Ulin.
Not to confuse matters, but Oracle offers two other choices for in-memory performance. Oracle Database last year added an In-Memory option, but that feature's columnar store is aimed primarily at speeding up analytic applications. MySQL Cluster is a row store, so it's aimed exclusive at low-latency transactional applications. Oracle also offers TimesTen, an in-memory database that's also used in Telco applications, but this product is most often used as either an embedded database or as a caching tier in front of Oracle Database.
MySQL Cluster 7.4 also improves support for geo-redundancy -- the ability to replicate across multiple, geographically dispersed data centers. To support active-active replication across multiple data centers, 7.4 offers enhanced rollback support for resolving conflicting transactions. Thus, developers can send reads and writes to dispersed data centers without worrying about consistency problems.
"Telcos in the US typically have three data centers: one in the East, one Central, and one on the West Coast," Ulin explains. "You do that to ensure availability, and in 7.4 we have beefed up the features that ensure consistency when you're updating across all data centers."
Geo-redundancy features are a calling card for NoSQL databases such as Cassandra, but Ulin says those platforms aren't usually considered for the sorts of ACID-compliant, low-latency roles filled by MySQL Cluster.
"Many of our customers value the best-of-both-worlds that we offer, with both a high-performance NoSQL interface, together with the powerful SQL querying you can do on the same data," Ulin said.
In other performance upgrade, MySQL Cluster 7.4 supports faster table scans for improved query performance, and five-times-faster node restart times, so admins can minimize downtime in the event of failures or scheduled maintenance. This is particularly important now that nodes are growing in size.
Cluster 7.4 also offers new reports on distributed memory usage so admins can see how memory is being used and allocated to different tables on different machines.
"This becomes relevant when you need to see whether the data is evenly distributed and whether parts of the data are being loaded more than others," Ulin said, noting the first step to balancing and workload optimization.
MySQL Cluster 7.4 is available immediately. The product remains unlikely to be mentioned in the same breath as in-memory databases like SAP Hana or distributed NoSQL databases like Cassandra. But it's interesting to note that MySQL Cluster offers broader applicability and more modern performance characteristics than many realized.
Attend Interop Las Vegas, the leading independent technology conference and expo series designed to inspire, inform, and connect the world's IT community. In 2015, look for all new programs, networking opportunities, and classes that will help you set your organization’s IT action plan. It happens April 27 to May 1. Register with Discount Code MPOIWK for $200 off Total Access & Conference Passes.