SHARE
Facebook X Pinterest WhatsApp

Achieving Five Nines Availability Using Synchronous Cluster Replication for MySQL

Nov 23, 2011

“Let me tell you the difference between Facebook and everyone else, we don’t crash EVER! If our service is down for even a minute, our entire reputation is irreversibly destroyed!”
-The Social Network

If you believe the hype, it would seem that almost all data and database as a service (DaaS/DBaaS) cloud providers operate at a formidable 99.999 percent availability, more commonly known as the five nines.  Heck, Amazon’s S3 premium service promises ten nines – that’s 99.99999999 percent uptime!

While these claims often turn out to be unsubstantiated, you don’t need to go to the cloud to achieve it using your own infrastructure. One option that recently piqued my interest is a product called SchoonerSQL, a re-jigged MySQL database designed for applications that can experience only minimal downtime – mission-critical apps and such. Besides offering the coveted five nines, SchoonerSQL also guarantees no lost or stale data, instant automated failover over LAN and WAN, as well as unlimited read scaling, unlimited write scaling, and easy cluster administration. Being the curious type, I wanted to know more about how SchoonerSQL achieves all this. In the process, I learned quite a lot about data replication, which is what this article is about.

The Perils of Loosely-coupled Asynchronous and Semi-synchronous Replication

Schooner started with a standard MySQL build and modified its InnoDB storage engine in order to overcome some of its weaknesses. One of the big ones is how MySQL handles replication. MySQL has support for asynchronous (default) and semi-synchronous replications. MySQL 5.1 introduced asynchronous replication, while MySQL 5.5 provided semi-synchronous replication. Hence, those whose infrastructures require full synchronization would have to move to a different solution such as MySQL NDB Clustering, for example.

MySQL uses loosely-coupled MySQL asynchronous and semi-synchronous replication between the master database and slaves. The master node maintains a binary log file of all the changes performed in the database. The slave(s) periodically read(s) that file and perform the replication using one of the following replication types:

·       Statement Based Replication (SBR):
By default, the slave executes the exact same SQL statements that the master did in its database(s).

·       Row Based Replication (RBR):
Here the slave(s) change/replicate only the changed rows.

·       Mixed Based Replication (MBR):
Uses a combination of both the above replication types.

All these replication models have associated drawbacks.  A few significant ones include the following:

·       Reduced Service Availability:
When a Master fails, fail-over to a slave only occurs once all transactions in the relay logs have been committed and a new Master established, and the remaining slaves have been reconfigured.

·       Stale Data:
Due to the lag between the Master and slave(s) in reading and applying changes, slaves can return old (stale) data in response to read transactions.

·       High Administrative Complexity:
Database administrators (DBAs) often bear the brunt of the burden when things go wrong. That time of panic and frustration is not ideal for performing delicate manual processes! Even with a solid contingency plan in place, you can never be sure how things will go when it really counts. I personally know a DBA group that had to do an “all-nighter” after a crash just last week! Even when all is well, DBAs still have to perform tedious and error-prone common tasks such as slave migrations and additions as well as hardware and software upgrades.

Why Tightly-coupled Synchronous Cluster Replication is More Efficient

Unlike asynchronous and semi-synchronous replication described above, synchronous cluster replication exploits the capabilities of modern multi-core processors for parallel processing, or what we in the software programming biz refer to as multi-threading. Using multi-threaded processes allows the main database to concurrently communicate, replicate, and apply master update transactions to all the replicas. There is no concept of a “Slave” in a synchronous cluster. The Schooner people refer to all replicas as “Read Masters” rather than Slaves because, in synchronous replication, the Master and all Read Masters in a synchronous cluster are always consistent.

In the event of a master failure, a Read Master (replica) is automatically promoted to become the new Master, the Master’s Virtual IP addresses (VIPs) are instantly and automatically switched to the newly promoted Read Master, and updates continue to be processed without any service interruption. If a Read Master (replica) fails, its load is automatically switched and load balanced to surviving nodes. Fail-over is automatic and completes within a few seconds with no service interruption and no data loss. Moreover, using the synchronous cluster replication reduced downtime by 85% to 95% compared to the asynchronous or semi-synchronous replication in MySQL 5.5 and 5.6.

For more in-depth and technical information, you may want to check out these PDF format white papers on the Schooner site, entitled:

·       Top 10 Reasons why MySQL Experts Switch to SchoonerSQL

·       The Short Guide to MySQL HA Options

·       Mission-Critical MySQL and InnoDB

In case you’re wondering, Schooner is supported on all of the widely used x86 servers and blades from Dell, HP and IBM, running Red Hat Linux 5.4/5.5 or CentOS 5.4/5.5 along with any flash memory in SAS/SATA or PCIe formats, including drives qualified by Dell, HP and IBM or sold by Fusion-io, LSI, Unigen, Intel, OCZ and Pliant.

Website: www.schoonerinfotech.com/products/schooner_mysql

Licensing

Pricing is by annual subscription per server.  At $9500, it’s priced $500 less than a MySQL Cluster Carrier Grade Edition one year license and a whole lot less than the old $45,000 hardware appliances.  Schooner MySQL is available for download and 21 day free trial

Conclusion

While there can be little doubt that SchoonerSQL works and works well, at the end of the day, the question is whether or not to go with a DaaS or DBaaS cloud service as opposed to managing the infrastructure yourself. The key factor in answering this question to me is how open you are to the idea of someone else managing your private data. Here at Canada Border Services where I work, it’s an open and shut case. We will not hand over our data to anyone, period. That’s why I prefer a product like SchoonerSQL over the Cloud.

Rob Gravelle resides in Ottawa, Canada, and is the founder of GravelleConsulting.com. Rob has built systems for Intelligence-related organizations such as Canada Border Services, CSIS as well as for numerous commercial businesses. In his spare time, Rob has become an accomplished guitar player, and has released several CDs. His former band, Ivory Knight, was rated as one Canada’s top hard rock and metal groups by Brave Words magazine (issue #92).

See all articles by Rob Gravelle

 

Recommended for you...

SQL SORT BY Statement
Ronnie Payne
Mar 21, 2023
Working with NULL Values in SQL
Ronnie Payne
Mar 9, 2023
Working with SQL AND, OR, and NOT Operators
Ronnie Payne
Feb 21, 2023
How to Use Databases With Python
technologyadv
Feb 10, 2023
Database Journal Logo

DatabaseJournal.com publishes relevant, up-to-date and pragmatic articles on the use of database hardware and management tools and serves as a forum for professional knowledge about proprietary, open source and cloud-based databases--foundational technology for all IT systems. We publish insightful articles about new products, best practices and trends; readers help each other out on various database questions and problems. Database management systems (DBMS) and database security processes are also key areas of focus at DatabaseJournal.com.

Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.