I've done a ton of reading lately on NoSQL including articles dating back to c. 2000 up to some just recently published and I have to tell you I was impressed. Most claimed at least 1 or 2 magnitudes better performance, all scaled linearly or near linearly and all have some wonderful features.
Then I got to thinking, if these NoSQL solutions are so great then why do we still use Oracle, Microsoft SQL, DB2, and the like? Must be something else missing. Lets think about it...
Going with a NoSQL solution you're trading everything that ACID provides for eventually consistent but darn if it ain't quick! You get your results faster than ever and who cares if it's not accurate all the time. It's accurate enough. Sorry, I know people working in finance and logistics and what they want is the answer.
NoSQL means having a solution that doesn't require a fork-lift to upgrade. That's the argument anyways. Scale by adding commodity hardware anyone can pick up. Reality, you're spinning up many servers as virtual machines that reside on big hardware, as physical servers inside some blade unit or you're using that commodity hardware but need so much of it a fork-lift would come in handy. Go ahead and argue but the scaling without requiring the fork-lift isn't much of an argument.
What else is sacrificed in NoSQL? Table joins, sorting, oh yeah, and a standardized language. All that for the sake of getting possibly inconsistent query results really, really fast from a scalable platform. Since when did the platform dictate whether it was okay or not to have inconsistent results? It may be okay for Google, Facebook or Twitter but I doubt application owners in the non-search and non-social space would care for it.
I think what the NoSQL crowd is really griping about is an affordable, scalable database.
No comments:
Post a Comment