NoSQL 101: Database Performance and Scalability for the Web
Back in 2010 InformationWeek conducted a survey which revealed that 44% of business IT professionals had never heard of NoSQL, the database technology powering social games like FarmVille and Draw Something. Since then NoSQL has steadily gained traction, and today it’s a frequent topic of conversation in technology circles. Last May 10gen, NoSQL pioneer and developer of MongoDB secured $42M in series E funding. In June Cloudant launched a NoSQL data layer service for Windows Azure, and Amazon contributed a NoSQL data service called DynamoDB to the mix. All this activity has database laymen everywhere wondering—what is NoSQL?
Put simply, NoSQL (also known as “not only SQL”) is a broad term used to describe any database that varies from the relational database model—the traditional approach to database management where data items are stored in tables. The tabular nature of relational databases favors predictable, structured data elements. What many businesses have learned in recent years—particularly those that operate cloud-based, mobile, or social products—is that the data being created in these environments is unstructured and requires a more dynamic approach to database management than what the relational model can reliably handle.
This is where NoSQL comes in. Let’s say you’ve created a social game with Facebook integration and mobile capability. You start out with a modest base of 1,000 users, but the application goes viral and before you know it you have hundreds of thousands—even millions—of users accessing your game, generating massive quantities of data in the cloud, from a variety of sources. And it all happened insanely quickly.
If you’re running your operation on a relational database your primary concerns are performance issues, outages, and the inability to scale the system fast enough to keep up with booming growth. It’s a critical time for your company, because this viral event needs to maintain momentum to put you on the map.
NoSQL is designed to address these exact issues, and in fact the scenario described above is one that NoSQL player Couchbase successfully helped its client OMGPOP navigate after the release of Draw Something in March 2012. Within five weeks of launching, Draw Something had been downloaded 20 million times, and by the 50-day mark had reached 50 million downloads. During this rapid expansion Couchbase provided the foundation for managing the incoming data, offering scalability and performance 24/7.
If you do some digging you’ll find that almost every Internet company that has significant data storage requirements is employing NoSQL in some capacity. But this is not to say that NoSQL is trying to replace relational databases. It’s just that the current trends in technology today—big data, big users, and cloud computing—are better addressed by NoSQL.
NoSQL Key Players
MongoDB: Document-oriented database system developed by 10gen. Used by Craigslist, Foursquare, and MTV Networks, among others.
Apache Cassandra: Open source distributed database management system, initially created by Facebook to power the company’s Inbox Search feature. Currently being used by Netflix, Twitter, Reddit, Constant Contact, and others.
DynamoDB: A managed NoSQL service provided by Amazon.com and released in early 2012.
Riak: NoSQL database developed by Basho Technologies, currently in use by Comcast, Mozilla, AOL, Yammer, Ask.com, and others.
Neo4j: An open source graph database developed by Neo Technology, initially released in 2007 and offered in both community and commercial editions.
Learn More About NoSQL
If you’d like to explore the world of NoSQL more deeply, a good place to start is at NoSLQ-database.org. The site has a comprehensive list of NoSQL databases, a calendar of NoSQL events, forums, NoSQL news, and plenty more for the NoSQL enthusiast.
Want to read more insider-perspective posts on trends and other goings-on in the software world? Browse our entire archive of blog posts on news from the industry by visiting the News and Trends section of the Business-Software.com blog.