“NoSQL” is among the hottest terms in web infrastructure; there’s no denying that much. In fact, the fascination with all things NoSQL goes well beyond just talk – statistics show that job listings requiring Hadoop and NoSQL database skills are skyrocketing in number, and implementations are popping up across the web. Still, Hadoop and NoSQL combined don’t come near matching the current popularity of their web-centric cousin, cloud computing. What’s fascinating, however, is that while it’s a younger concept garnering far less public debate, NoSQL is better understood (for what it is and is not) than is the cloud.
A prime example is the general understanding that NoSQL is not a panacea that will creep into data centers and instantly displace relational databases. Sure, NoSQL databases have strong suits – particularly scalability and low-latency serving of unstructured web data – and some are predicting the end of the MySQL-plus-memcached era (or at least suggesting it might be upon us), but others note that advances in flash memory and solid-state storage could mitigate perceived performance hits with relational databases. Even the most ardent MySQL supporters acknowledge the product has shortcomings, some of which have been filled in by NoSQL developers, but believe it has legs to survive with a few tweaks. And while Facebook is a leader in Cassandra development, it still relies heavily on its MySQL and memcached investments.
It’s not that everybody is in agreement over which model is better, or to what degree NoSQL will replace relational databases, it’s just that everybody seems to understand that every database – regardless of its label – has its strong suits. Depending on the tasks being performed, web applications might rightly utilize multiple databases.
From my perspective, it took the cloud-computing discussion much longer to come to this realization. First, everything was going to move into the cloud. Then, enterprises would only ever use private clouds. Then, hybrid clouds were floated as a possibility, albeit somewhat fantastical. It’s only now, however, that everybody seems to agree that hybrid models are how cloud computing will be done, and we’re seeing products emerge to that end. To the degree that NoSQL and cloud computing are related, the former camp seems to have gotten a handle on the old-world-meets-new-world reality much faster.
What’s the significance of this distinction? Web-application infrastructure is advancing fast, and in a relatively uniform manner. By the time organizations are ready to start moving their applications into the cloud en masse, the database best practices, at least, should be in place. To give customers what they need, cloud providers must catch on to the reality of NoSQL-plus-relational database layers faster than they did the reality of hybrid-cloud delivery models.