SEARCH:   GO
{Blog entries}
Mar 31

Written by: Javier Callico
3/31/2010  RssIcon

I've noticed that some voices in the .Net community are jumping into the NoSQL wagon and trying to get as much people aboard as possible. I see posts regarding NoSQL getting more and more frequent; see here and here for example.

I have the following confession to make:

I doubt that as per March 2010 open source implementations like MongoDb, CouchDB or Cassandra are going to outperform SQL relational databases like Oracle, MSSQL or even MySQL but hey I can thing of a few projects myself where a NoSQL approach could be used and will simplify development a lot, on the other hand I'm almost completely ignorant when it comes to NoSQL databases, all it's categories, features and performance.

I, for one, will start looking into these databases and consider them when presented with the right opportunity. Again if you practice the Persistence Ignorance principle in your projects, replacing the data storage is something perfectly possible without mayor retooling and one the advantages of such principle, right?

 

 

Tags: .NET , NoSQL
Categories:

3 comment(s) so far...


Gravatar

Re: The NoSQL train is about to leave the station. Are you in yet?

This is an interesting post illustrating one of the main disadvantages of using NoSQL storage at this moment: www.agmweb.ca/blog/andy/2254/
The comic is priceless and summarizes the post.

By Javier Callico on   4/9/2010
Gravatar

Re: The NoSQL train is about to leave the station. Are you in yet?

Think of it as expanding your toolset.

There's no doubt that Redis can severely outperform any relational database. It's a simple, in-memory, persistent key-value store. So if you really need something stupid fast, then maybe redis is a good solution (for part of your data).

Also, most of NoSQL solutions are AP or CP, whereas all databases are AC. So, if network partition is important (i.e, horizontal scaling), NoSQL solutions are certainly something that would be worth investigating.

So, for super-high performance, or complex scaling, NoSQL provides a good niche solution.

Where things get fuzzier is with the CouchDB, MongoDB and other document or object stores. These solutions aren't as stupid fast as the key-value or ColumnFamily NoSQL tools, but they are still fast (and by all accounts, faster than any relational databases, but I'll let you have your doubts). The point though is that these NoSQL solutions aren't targeting specific needs, but rather are meant to replace relational databases for every-day applications. The benefit that they bring is a lot less application code

So, if we can agree that maybe redis is really really really fast (at the cost of only being able to represent relatively simple data, i.e., u'll need to change ur app)..and ColumnFamily is really really fast, but also at the cost of really changing your app/data, then we can say these are technologies targeting a very specific need.

Where you might not agree with me, is with my view of the Document/Object stores. My opinion is that they are faster than RDBMS, but more importantly (since if speed is important, pick key-value or ColumnFamily), they are much easier to program against, with less code, less bugs, and less maintenance. If I'm right, than these solutions should become the workhorses, while RDBMS get pushed off to their own very specific problem (which would likely be complex reporting, but don't underestimate what you can do with map/reduce on NoSQL platforms).

Finally, I think the transition for the specific targets (performance and scale) are already happening. What hasn't happened yet (or what is happening much much more slowly) is the move towards document/object stores for your common application. The move is slower because the resistance is greater and the need is smaller.

By Karl on   4/9/2010
Gravatar

Re: The NoSQL train is about to leave the station. Are you in yet?

@Karl

Thanks for taking the time to comment on my post and to provide such a detailed and elaborate response covering the different scenarios where NoSQL solutions excel (Isn't it OK to call them NoSQL Databases?)

As for the performance comparison I'll have to trust your opinion, conditioned by having worked with both technologies already, until I'm able to have my own.

Either way I think NoSQL is here to stay and as this article puts it: It's about choice (and who doesn't like choices)

blog.couch.io/post/511008668/nosql-is-about

By Javier Callico on   4/12/2010

Your name:
Gravatar Preview
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Add Comment   Cancel