Oracle shoves aside NoSQL upstarts with smart 'Fabric' tech
Open source "MySQL Fabric" brings FREE high availability and auto-sharding to massive DB farms
After two years of development, Oracle has released a freely available, open source technology that closes the gap between its MySQL software and the capabilities of database upstarts.
The "MySQL Fabric" technology was announced by Oracle on Tuesday, and represents a big bet by the company's MySQL development team that it can upgrade the DBMS to work for companies that might otherwise move to a non-relational or non-Oracle-backed tech.
MySQL Fabric has been built to make it easier to manage large MySQL server clusters by giving admins a system that can handle automatic failure detection, and failover and automated data sharding.
These features matter because adding them into the tech means the database has gained some of the resilient traits that NoSQL databases such as Riak or Cassandra have used to distinguish themselves from incumbents, plus the ability to run more easily on large estates of commodity hardware. [A decision that runs contrary to Oracle's for-profit goal of deploying 'scale-up' database technologies on its own custom hardware.—Ed.].
"Fabric organizes servers in groups (called high-availability groups) for managing different shards or simply for providing high availability," Oracle explains in an FAQ on the tech. "For example, if standard asynchronous replication is in use, Fabric may be configured to automatically monitor the status of servers in a group. If the current master in a group fails, it elects a new one if a server in the group can become a master. Besides the high-availability operations such as failover and switchover, Fabric also permits shard operations such as shard creation and removal."
Oracle has been motivated to do this because large web properties like Google and Facebook have developed internal systems with some of these characters, and younger systems like Cassandra, Riak, and MongoDB have taken on some of these characteristics as well.
"Several web properties have built these solutions themselves and some of them have open sourced these solutions," explained Oracle's vice president of MySQL Engineering Tomas Ulin, in a chat with El Reg "We have regular conversations with all these bigger customers both in the web and in telecom space to make sure we incorporate as much as possible about the requirements. That's a very important part of how we work with the roadmap."
What MySQL Fabric does is "it gives smaller web shops a much shorter time to market to actually leverage what you can do with MySQL," Ulin explained. "Also, we're hoping that some of the lure in competitive solutions that have this out of the box – NoSQL solutions and so on – some of the attractions of these solutions are not particularly the document store, it's the ease of use around how you manage HA/scale-out.
"This is our first release. We believe it's going to capture a number of usecases. I'm looking forward to a quick-paced release stream," Ulin said. The company hopes to turf out a new release of the tech every six months or so.
Now, how do these two new features work? First up is a system that will let MySQL clusters recover from the failures of individual servers within them by nominating a new primary database and automatically re-routing transactions and load-balancing to the new leader.
This means you can now turn off the master server within a five-server MySQL cluster, and the server of the remaining four which has the most up-to-date information will automatically take charge and carry on dispensing queries to the rest.
"We're monitoring the status of the replication channel, basically pinging the servers on a regular basis to check that they are up; and if they don't respond, the fabric will take a decision and say 'OK you are no longer part of the cluster or the setup' so will promote another server as the master and set up the channels accordingly," explained Ulin. "The challenge of course is that it is poll-based. We'd rather have a system that would automatically – somehow quicker – tell you if something is wrong. That's of course always a challenge. For 5.7, the next release, we plan to add other things that will alleviate this somehow."
The second big feature is automated data sharding. Sharding is an important tech within databases because it lets admins horizontally scale databases by splitting off groups of rows onto other tables. Without sharding, scaling up a database on commodity hardware while maintaining good performance can be difficult.
"The system will know which server or group of servers are in charge of which shard," Ulin explains. "One thing we automate is, for one thing when you want to do a shard split, a number of steps you would want to take to do it yourself [are handled by the Fabric]. If you would write this yourself, you would have to manage this mapping yourself – that's also automated."
Previously, this type of fire-and-forget scaling has been most frequently associated with newer databases from startups.
With MySQL Fabric, Oracle has developed a system that will keep people from shifting away from the popular MySQL database, allowing the company to continue to exert influence on the open source database landscape. ®