« Twitter’s Plan to Analyze 100 Billion Tweets | Main | Scaling Ambition at StackOverflow »

Seven Signs You May Need a NoSQL Database

While exploring deep into some dusty old library stacks, I dug up Nostradamus' long lost NoSQL codex. What are the chances? Strangely, it also gave the plot to the next Dan Brown novel, but I left that out for reasons of sanity. About NoSQL, here is what Nosty (his friends call him Nosty) predicted are the signs you may need a NoSQL database...

  1. You noticed a lot of your database fields are really serialized complex objects in disguise. Why bother with a RDBMS at all then? Storing serialized objects in a relational database is like being on the pill while trying to get pregnant, a bit counter productive. Just use a schemaless database from the start.
  2. Using a standard query language has become too confining. You just want to be free. SQL is so easy, so convenient, and so standard, it's really not a challenge anymore. You need to be different. Then NoSQL is for you. Each has their own completely different query mechanism.
  3. Your toolbox only contains a hammer. Hammers while wonderfully versatile, can not make a nice latte. One size doesn't fit all. Right tool for the right job and all that jazz.
  4. You really feel like protesting something, but all the really cool causes are full up. Protesting the many centuries of relational database hegemony is a first rate cause you can be proud of. Think of all the stirring chants: "Let My Schema Go!" or "Give Me Primary Key Access or Give Me Indexes!" or "Don't Join On Me!"
  5. You stepped in a giant pile of impedance mismatch and need to wash off your shoes. Maybe whatever product you are trying to build would be better represented by a graph? Or a document model? Or a super model? Stop viewing the world from table colored glasses.
  6. Maintaining a completely separate object caching system on top of an already beefy table storage system, has started to seem a little silly. It's a massive duplication of effort, resources, and the consistency problems are brutal.
  7. The Four Horseman contract you to build a fast and infinitely scalable website to help crowd source their new startup: EndOfTheWorld.me.

Only time will tell if Nostradamus is as accurate with his NoSQL predictions as he has been with everything else.

Reader Comments (12)

Pretty funny. For the record here is how queries are done with MongoDB, the map/reduce mechanism is there as shown but really for aggregation: http://www.mongodb.org/display/DOCS/Advanced+Queries

February 16, 2010 | Unregistered Commenterdm

This post screams "Twitter" all over it...

February 16, 2010 | Unregistered CommenterGlass

Stupid post. Not really worth the time to read, but hey, we are actively fighting #6 so it's not all bad.

February 16, 2010 | Unregistered CommenterBryan

You really shatter me Glass.

February 16, 2010 | Registered CommenterTodd Hoff

The thing that bothers me with these NoSQL posts is the way that a lot of people don't have access to their own server box... Meaning we have to rely on shared infrastructures and MySQL / Postgres / what-ever is installed on the box. I'm fairly certain that hosted solutions will never introduce NoSQL products as a hosted "feature"?

February 16, 2010 | Unregistered CommenterJames


February 17, 2010 | Unregistered CommenterExpertInScalability

@James - Hosted NoSQL solutions are already available. The two best-known examples are Google BigTable and Amazon SimpleDB.

February 17, 2010 | Unregistered CommenterEric Knipp

I think the missing thing is: "you fight for the high availability and scalability in the same time". In the RDBMS world they contradict.

February 18, 2010 | Unregistered CommenterDavid Gruzman

@James I think you will see nosql products as hosted feature int he future. For example DreamHost supports MongoDB now.

February 22, 2010 | Unregistered Commenterdwight

Also, related in a series of presentation I've been giving to help people check if they need NoSQL (and also help me understand better all the different user cases out there):


February 23, 2010 | Unregistered Commentertunafish

The number 5 is the only one that makes sense for me. Its true, people do find it interesting to read if there are visuals, like graphs and stuffs.

I see this post is quite old so I suppose that NoSQL usage has grown since then. I'm also willing to start learning NoSQL techniques, and at this moment I'm searching for the best solution. As I could see from the search I did MongoDB is the most used one. Tell me if I'm wrong and if anyone here is having other proposition? Anyway, I think that traditional RDBMS will be no longer in use in couple of years...at least, not in large and complex systems....

September 4, 2011 | Unregistered Commentermilica

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>