I think that the data model of some new database is more suitable for different use cases compared to relational DBs.<p>Also it's not just a matter of scalability: latency is a very important constraint.<p>Finally I see a lot of small sites, forums, blogs, that can't scale easily to small numbers using relational DBs, since with the relational model and current implementation you have the illusion that can design a few table and then invent your queries, and instead this does not work and is dramatically slow.<p>No need to have very large numbers to see how hard traditional DBs sucked. And the proof is the huge adoption of NoSQL in small companies: it's not just hype, people want to go home and sleep well and will not trow away working SQL solutions because there is the new hype. The reality is that they are experiencing serious problems even at the scale a small and mid-size company operates.
Hmm, Twitter is really big in using Scala.<p>The important message is this: "focus on the process to build a great company and great products... They didn’t become successful because they built these systems. They built these systems because they became successful."<p>The next unproven startup that uses NoSQL solution is just wasting their time. I know this because that happened to one of my previous workplaces (we use HBase).
Again this topic brings out the "Always use relational databases" folks.<p>Few say "Always use NoSQL stores".<p>Most of us who use NoSQL, use it in conjunction with other stores, some of which are relational databases and some aren't.<p>Lunch isn't free, blah blah, etc. However with NoSQL solutions, we can optimize the things we care about (reads and writes) over the things that happen rarely (changes to the schema, indexing, etc) if we want to. Sometimes our apps demand it, sometimes before the cash exists to even try to use oracle or the people you have to hire to properly support it.<p>I don't get why people steadfastly assume everything fits the paradigm they're most comfy with. It doesn't. People who are just as comfy with your paradigm found stuff that works better, easier for them.
Great article. But it only sheds light on the performance and scale aspect. Having used nosql in my last project, I found some other aspects:<p><pre><code> - Flexibility
- Replication
- License agreements
</code></pre>
Nosql allows easy and painless schema changes, because there is no hard-coded schema. Using a morphing library every object can be stored without any additional coding.<p>Some nosql DBs support two-way replication for nodes that can be offline for a long time (for instance mobile clients). This can be very handy if you need such a feature.<p>Some nosql DBs come in a very liberal apache license.<p>If find it great to have so much choices today.
NoSQL and RDBMS are not competing tools occupying the same solution space. It's not an either-or, and anyone who thinks that it is has <i>no idea what they're talking about</i>.<p>NoSQL doesn't give you a tool that scales better, it gives you a different tool that might fit what you're trying to better.
Some NoSQL products geared towards rapid prototyping, and not for scalability, like for example CouchDB. With CouchApps you can create entire Web App in Javascript, sitting in CouchDB.