Lesson 8 of 82000–today7 min
NoSQL and when to use it
In 2007 Amazon engineers published the design of Dynamo, the store behind services such as the shopping cart. Their requirement was blunt: a customer must always be able to add an item, even while servers fail or the network splits. A cart that briefly shows an older version is acceptable; a cart that refuses a write is lost revenue.
Google's Bigtable paper had appeared a year earlier. Together they showed a different set of trade-offs from Codd's: give up joins and some consistency, and you can spread data across thousands of cheap machines. The open-source systems that followed are grouped under the loose label NoSQL.
The rest of this lesson is part of Pro
Create a free account to read the first lesson of every path, and go Pro for the rest.
Sources
- Dynamo: Amazon's Highly Available Key-value Store (DeCandia et al., SOSP 2007) — All Things Distributed (Werner Vogels)
- Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services (S. Gilbert and N. Lynch, 2002) — ACM SIGACT News
- Bigtable: A Distributed Storage System for Structured Data (OSDI 2006) — Google Research
- MongoDB manual: Data Modeling — MongoDB