Schooner beefs MySQL appliance with active clusters
Replication timing is everything
MySQL database clustering needs some help, and Schooner Information Technology thinks it has cooked up the code to help companies that rely on MySQL do a better job scaling out their databases.
"There's a widespread concern that MySQL clustering is a little kludgey, doesn't have great performance, and can sometimes lose transactions," Jerry Rudisin, Schooner's CEO, tells El Reg. Which is why Schooner has created Active Cluster, an extension to its own Appliance for MySQL 3.0, a software appliance that the company announced back in February, that as the name suggests provides active-active clustering for server nodes running a tuned-up version of the MySQL Enterprise Edition database.
Schooner burst onto the scene in April 2009 with appliances for accelerating the performance of MySQL databases and memcached Web application caches. These appliances were originally based on IBM's System x3650 M2 Xeon-based servers, outfitted with big chunks of main memory and flash drives to boost the I/O performance of the server and tweaks to the InnoDB database engine and memcached caching engine that not only took better advantage of the bandwidth in the memory and cache, but also made better use of multiple cores and processor threads than the open source variants of MySQL and memcached offered. Depending on the workload, Schooner claimed that one of its hardware appliances could replace anywhere from 10 to 20 physical servers running the open source MySQL or memcached code.
Flash-based solid state drives have gone mainstream in general-purpose servers, so in February Schooner ditched IBM's hardware, packaged up its goodies as two RPMs for Linux distros, and announced the Appliance for MySQL 3.0 and Appliance for Membrain 3.0. These software appliances – which are not virtualized for performance reasons – run on Red Hat Enterprise Linux 5.4 and 5.5 and their CentOS clones; flash drives from Fusion-io, LSI, Unigen, Intel, OCZ, and Pliant are supported inside of x64 servers from Hewlett-Packard, Dell, or IBM.
The Appliance for MySQL 3.0 software appliance does the scale up, and now the Active Cluster for MySQL Enterprise Edition is helping databases scale out using synchronous replication. Oracle, which took control of the MySQL database through its $5.6bn acquisition of Sun Microsystems in January 2010, offers a number of different clustering technologies. The replication feature inside of MySQL Enterprise does asynchronous replication, which means database changes are passed from a master database to one or more slave databases and queued up to be applied to the slave databases after the master files are changed. The time lag in asynchronous replication is useful if you are replicating over long distances or slow network connections, but it means that a master and its slaves can get out of synch.
"The slaves can get way behind, anywhere from minutes to hours," explains Rudisin. "And sometimes you have to slow down the master node to let the slaves catch up." This is obviously not a desirable situation.
MySQL Cluster, another Oracle add-on to the relational database, does synchronous replication across a cluster of database nodes and provides high availability failover, too. But MySQL Cluster does not support the InnoDB database engine that many MySQL shops prefer because of its high performance on transaction processing.
With the Active Cluster feature that Schooner has delivered for its software appliance, the company is providing synchronous replication between a master and up to seven slave database nodes while also supporting the InnoDB engine. (Schooner has licensed InnoDB from Oracle, which took control of that database engine before it acquired Sun.) Because the master and slave nodes are kept in lockstep, if a master fails, any one of the slaves can take over and be designated the new master in a cluster. You can also take down a master or slave node to apply updates or fix hardware without having to take the application that is smacking into the MySQL databases offline.
The Active Cluster appliance, which has been in beta testing since last November, is a superset of the MySQL appliance that Schooner already sells. The master and slave nodes are using the goosed version of the MySQL Enterprise Edition and InnoDB engine (which is not available in the open source version of the database) as well as the new synchronous clustering feature. A subscription to it costs $9,500 per server per year, the same price that Schooner is charging for the standalone MySQL database appliance. (The Membrain 3.0 Web caching appliance costs $8,500 per server per year for a subscription.) Schooner will be offering free trial downloads of Active Cluster at the end of April when the software begins to ship. ®
Chief technical Officer, Schooner Information Technology
MySQL 5.5 provides semi-synch replication, which can eliminate data loss in the event of a master failure. But it comes at a price in latency, and it does not resolve slave lag or provide automated fail-over or reduce downtime. 5.6 fixes data corruption issues, but the scaling improvements in 5.6 with parallel thread appliers only work for independent databases.
Chief technical Officer, Schooner Information Technology
In a typical scale out deployment for a MySQL service, granular sharding with small masters is required since the throughput and update rate of MySQL has been so limited. Also, each master is configured with many slaves to scale reads using MySQL asynchronous replication. The slaves lag behind the master causing stale and inconsistent data reads, and the slaves perform at a low performance level due to serial application of updates, increasing the number of required slaves. Failover of master or slaves is an error prone, manual, long process. These issues create a lot of pain for administrators, and negatively impact the quality of service (performance and availability) as well as capital and operating expenses.
Schooner MySQL core fully exploits commodity hardware allowing very large masters with extremely high performance and update traffic(effective scale-up), typically 4-20x the throughput of legacy MySQL. Schooner MySQL Active Cluster provides fully consistent data across the master and each of its slaves, very high perfromance with parallel synchronous replication, and instantaneous, transparent failover, In most cases, Schooner master performance is plenty for the natural database partitions, and master subsharding is not required (in contrast to legacy mysql). Read scaling with slaves is linear, with very simple administration to create, migrate, etc. This is coupled with fast automatic fail-over and recovery for masters or slaves. Descriptions of innovations, analysis, and benchmarks are available at www.SchoonerInfotech.com.
The net results of all of this is that building a scale-out MySQL service with excellent quality of service (high thoughput, low response time, high availability) and low TCO is much easier and cost effective with Schooner MySQL.
Dont use clustering but..
We recently painlessly upgraded to MySQL 5.5 and a lot of the replication issues we used to have seem to have been fixed. It looks like the recent 5.6 milestone release is also concentrating a lot on improving scaling, though it is still several months away from production use.
Were still proceeding cautiously with our MySQL projects but apart from the initial negative hype Oracle so far do seem to be putting good effort into improving the product.
Watch this space I guess