TL;DR: Developers are beginning to realize that SQL's ACID transaction framework and NoSQL's focus on availability and elasticity need not be mutually exclusive. It is possible to mix and match components in your applications to ensure your customers' needs are met in the most efficient, reliable, and consistent manner possible. The key is to break through the virtual wall separating traditional relational DB design and modern distributed web-scale databases.
Once upon a time, there were SQL databases based on a solid framework that ensured their data was discrete, consistent, and reliable. Then the systems hosting the databases started to spread out -- way, way out. The SQL databases were soon stretched -- or scaled -- to their breaking points, both horizontally and vertically.
A group of intrepid developers soon responded by devising a database structure for widely distributed environments that's based on high-availability, fault tolerance, and perhaps most importantly, stretchability, a.k.a. elasticity or scalability. Web-scale architectures such as NoSQL are premised on the CAP theorem: consistency, availability, and partition tolerance.
The CAP theorem is also referred to as Brewer's theorem after UC Berkeley researcher Eric Brewer. From its introduction the CAP theorem has seemed to be incompatible with SQL's ACID framework: atomicity, consistency, isolation, and durability. ACID is a database transaction system devised by Jim Gray in the 1970s. In distributed systems with multiple nodes, managing transactions in such a framework gets complicated. Sometimes really complicated.
As usually happens when old meets new, the result is an amalgam of traditional approaches and innovative techniques that address changes in technology and users' needs. Now organizations are devising solutions to their app-development needs that adhere to many ACID principles while simultaneously realizing the benefits of Web scale systems.
Debunking the myths surrounding ACID-NoSQL incompatibilities
ACID is intended to ensure the reliability of the transactions that are the heart of any relational DBMS. Conversely, NoSQL emphasizes availability and elasticity over consistency -- promising only "eventual consistency," as DataStax CEO Billy Bosworth describes it in a July 24, 2013, article on InfoWorld.
Bosworth supports his claim that online applications don't require full ACID compliance by citing the mission-critical apps created by such firms as Netflix, eBay, and Instagram that are not ACID-compliant. These and other NoSQL databases are listed on the Planet Cassandra site.
It isn't uncommon for post-relational databases to sacrifice consistency for performance yet still adhere to ACID's atomicity, isolation, and durability requirements. Bosworth points to this ability to mix and match components to create apps representing the bet of both the old and new worlds.
After bumping up against the inherent limits of SQL databases in distributed environments, developers turn to clustering and sharding, but both techniques come with their own management headaches, as Wiqar Chaudry explains in a January 3, 2013, article on Database Trends and Applications.
Companies are taking creative approaches to address the need to maximize their investments in traditional SQL databases while adopting the new technologies required to meet their users' needs. At the MySQL Worldwide Conference & Expo held in April 2014, Tamar Bercovici, an engineering manager at Box, described the company's use of MySQL and the Apache HBase nonrelational distributed DBMS in an integrated production environment.
For Box, the best solution was sharding, which ensured that transactions, joins, and secondary indexes, which don't scale well, will respect all shard boundaries. Box's sharding solution entailed less work than the alternative approaches, but it provided developers with a robust data store they could build on in the long term.
This same configuration flexibility is available with the BitCan cloud storage service, which supports heterogeneous MySQL and MongoDB databases as well as Unix/Linux systems and files. BitCan encrypts your data at the communication and storage layers and offers an easy-to-use console for scheduling backups without requiring any client-side installs or plug-ins.
Visit the BitCan site to create a free 30-day trial account. When it comes to meeting tomorrow's distributed-database needs today, BitCan is ahead of the game.