NoSQL

For whatever reason the term NoSQL flew under my radar until late January when I listened to the Hacker Medley podcast. Since then my eyes have been opened to just how popular this concept of structured storage is getting. The idea, as the name implies, is that SQL doesn’t have a place in this storage paradigm. This means the traditional way of thinking of persistence for our applications is shifted from tables, rows, and the schemas that define them to elements/objects and collections.

This method of persistence is gaining so much ground in computer science that many large and popular Internet sites use, and have been using for quite some time, a NoSQL solution. Take for instance BigTable from Google or Dynamo from Amazon.com the fact that either one of these giants is using NoSQL should give rise to your attention.

But, why?

Even though things seem to be popular one always has to ask, “Why should I invest the time to learn this stuff?” For me it is simple. Research into these topics is for my personal edification. I find it fun and exciting to learn these new things and the barrier to entry for NoSQL is really quite low. Just look at K. Scott Allen’s blog post on experimenting with MongoDB or Jason Alexander’s post to see just how easy it is to get started. When comparing the level of setup and difficulty of NHibernate with something like MongoDB it is clear that the path of least resistance is the latter.

This leads me to the point of answering the question, “Why use it in a project?” My answer is that it is just plain easy. Instead of trying to make the square peg (read: objects) fit in the round hole (read: relational databases) we are storing a near one-to-one object within the database. Granted I have yet to use one of these NoSQL implementations in my own projects, but plan to do so in the near future.

Conclusion

As a result of my piqued interest in this newfound topic, I plan on periodically posting about my research and experiences. The first database I will experiment with is MongoDB so stay tuned. For the meanwhile, check out the following resources:

3 Responses to “NoSQL”

  1. Alex Popescu says:

    I’d also suggest taking a look at MyNoSL (http://nosql.mypopescu.com) which should give you an easy way to follow what’s going on in the NoSQL space and learn more about all major NoSQL projects, use cases, etc.

  2. Nice to see you’re back up and blogging again. I’ve looked into a lot of NoSQL things, and I’m in the process of implementing Cassandra for a project. But I like your explanation the best, of square pegs and round holes. Also, when dealing with very large sets of data, you can give up certain aspects of ACID compliance that you don’t really need for bigger performance gains. It’ll be interesting to see which NoSQL solutions become popular and common place like MySQL, and which ones don’t.

  3. Thanks Justin! I wouldn’t call it “back up blogging again,” just because I never finish posts. I’ve been meaning to do multiple posts, but the time just gets away from me.

Leave a Reply