Yes to NoSQL

There seems to be some backlash building up against NoSQL with posts like Ted Dziuba  ";I Can't Wait for NoSQL to Die"; or Dennis Forbes'  ";The Impact of SSDs on Database Performance and the Performance Paradox of Data Explodification (aka Fighting the NoSQL mindset)";.

These are interesting articles to read and yes RDBMSs are not going the way of the dodo yet (I even said that in  ";The RDBMS is dead";, which by the way, was written before NoSQL was coined, but I digress ). Nevertheless, other options, namely various NoSQL choices, prove to be easier to work with, and  are  a better fit in some circumstances.

Few time (ok very few times), that's because of sheer size (The ";Google";s) but what about the rest of us, should we just stick to good-old-RDBMSs?

If you are have a good understanding of RDBMSs (and/or a great applicative DBA working in your team) then in many cases the answer would be yes. I had a chance to review a couple of systems recently that deal with large amounts of data (in the Petabytes) both systems had a very good DBA teams working on the solution to a point that even ORM was not that important for the solution.

However, in many other cases NoSQL can be a better option. For instance let's take the Digg case Dennis Forbes talks about. Assuming, for the sake of argument that Dennis completely nailed Digg's requirements(*) and his single computer +SSD solution is a reasonable solution for Digg. Still the fact is that the Digg's team where not able to solve their problem with an RDBMS and the same team was able to pull it off with a NoSQL solution. So even if we say the team is mediocre (something they are probably not), NoSQL made it easier to solve a problem they couldn't have otherwise - that's a good thing in my book. 

There are additional reasons to use NoSQL besides  sheer size and better alignment with developers' mind-share though. The more important ones of those are  to get cheaper (vs. comparable commercial RDBMS solutions) scalability and availability.  Again if we look at the Digg switch to Cassandra they cited  ";the lack of redundancy on the write masters is painful"; and the administrative overhead as main reasons.

In any event it It is important to keep in mind that  NoSQL is not a silver bullet. You need to assess whether or not it is suitable for the problem you have at hand for instance NoSQL solutions place emphasis on different parts of the CAP theorem than RDBMSs do is this what you need? etc.

 

 

* I think that Dennis over-simplify Diggs situation since they also, for example, have heavy concurrent writes etc. 



April 01, 2010
URL:http://www.drdobbs.com/architecture-and-design/yes-to-nosql/228700577

Terms of Service | Privacy Statement | Copyright © 2024 UBM Tech, All rights reserved.