There seems to become a numerous NoSQL databases available nowadays:

  • CouchDB
  • MongoDB
  • Cassandra
  • Hadoop

Gleam boundary between these power tools and tools for example Redis that actually work like a memcached alternative.

Without hands waving and tossing a lot of buzz words - my real question is the next:

How do you smartly choose which tool here helps make the most sense for his or her project? Would be the projects similar enough to in which the response to this really is subjective, eg: Ruby is preferable to Python or Python is preferable to Ruby? Or shall we be speaking Apples and oranges here for the reason that they all of them solve different problems?

What's the easiest method to educate myself about this new trend?

Possibly one method to think about it's, programming has lately developed by using one general-purpose language for everything to presenting the overall-purpose language for many things, plus domain-specific languages for that appropriate parts. For instance, you may use Lua to script artificial intelligence of the character in a game title.

NoSQL databases may be similar. SQL may be the general purpose database using the longest and largest adoption. While it may be shoehorned for everyone many tasks, developers are beginning to utilise NoSQL like a domain-specific database when it's appropriate.

I'd argue, the 4 major gamers you named will have quite different featuresets and then try to solve different issues with different priority.

For example, so far as i understand Cassandra (and that i assume Hadoop) central focus is on massive installations.

MongoDb tries to become a better scaling option to classic SQL servers in supplying equally effective query functions.

CouchDB's focus is equally small-scale (won't shard whatsoever, "only" replicate), high sturdiness and simple synchronization of information.

You might like to take a look at http://nosql-database.org/ for more information.

I'm facing virtually exactly the same problem while you, and that i would say there's no real option to look whatsoever solutions at length.

Read this site: http://cattell.net/datastores/ and particularly the PDF linked at the end (CACM Paper). The second consists of a great discussion from the relative merits of numerous data store solutions.

It is not difficult. NoSQL databases are Acidity compliant databases minus some guarantees. So just choose which guarantees that you can do without and discover the database that matches. If you do not need sturdiness for instance, maybe redis is better. Or if you do not need multi-record transactions, then possibly consider mongodb.