Although I am not a big fan of the NoSQL movement (mostly because many of its advocates use arguments I do not agree with) there are a few things that I like about the NoSQL crowd and I want to write them down*. Most of what follows stems from discussions through the years with our DBA and some friends who are members of the “Greek Database Mafia“.
For more than two decades the dominance of the relational model (even though no commercial system fully implemented it†) was undisputed. Nobody ever got fired for choosing a commercial RDBMS for an application, where instead one would look suspicious if one dared to propose something different. This situation is no different than what Rob Pike described in “Systems Software Research is Irrelevant” for Operating Systems:
- For example it took 10+ years for the R-Tree to enter the commercial systems, although it was solving a real problem. In the meantime if you were lucky and your system offered extensibility you could write it on your own.
- No matter how novel the system, for it not to be marginalized it had to have an “SQL layer”. No SQL queries, no sales. Provide an SQL layer and all innovation of the product stays unused.
- Ones proposal for an RDBMS purchase had to be among three or four commercial products. Anything else would likely be considered “a hacker’s choice” because “We make money! We cannot go that way!”
You could say that databases outside academic research had come to a halt. You don’t believe me? Just ask Yannis Ioannidis who uses to say that “Databases are dead“‡ in the most emphatic way when he wants to stir things up in a conversation.
And this is what I like about the NoSQL crowd (== implementers, advocates and integrators) . They do not care about established standards. They are not afraid to experiment in a “real environment”. Some of them may focus on a single problem and solve it well. Others may aim at a wider range of problems. But no system is stopped from being developed and deployed because it not “SQL compilant” or not relational. And even though some of these solutions resemble CODASYLo, once again there is action in the field.
But please people, stop marketing them as a “one solution fits all”. For we will again end up in a stagnation era, just like when everyone was storing stuff in an RDBMS for lack and fear of better suited solutions. They do not invalidate relational systems. They fill in the gap left by them.
[*] – As I had promised.
[†] – By the way, did you know that GROUP BY works outside of the “relational box”?
[‡] – I have heard him say this while giving a speech.
[o] – “one usually gets a low-level record-at-a-time DBMS interface“, says Mike Stonebraker.
20 thoughts on “What I like about the NoSQL crowd”
How great was Pike’s text. No wonder his classic book is one of my all-time favorites.
Having said that, I disagree with him (and to a lesser extent with your post) in that computers are meant to be tools to get a job done. Much like cars. So it’s correct to stick with what works. Or with what works best, I might add.
Pike states that the art is lost and that research is irrelevant. I would say that art is irrelevant.
This is a very timely post, since today there is a related discussion over on Hacker News on Stonebraker’s post from yesterday:
Great post. I hope there aren’t too many NoSQL people out there marketing these new datastores as a “one solution fits all.” That is definitely not the case. In fact I’ve seen the NoSQL term referenced not to mean “No SQL” but as “Not only SQL.” The second translation is a kinder, gentler message and perhaps fits the temperament of the movement a little better. Generally speaking we are somewhat more “relaxed” than most.
I’m a NoSQL supporter, but I keep hearing similar post that describe people who see NoSQL alternatives as “one solution fits all”. Who are these people? I personally have not come across them, and I’m quite surprised its become such an issue that the NoSQL term/buzzword needs to be more clearly explained and justified. These people obviously don’t understand these new systems. To some *extent* database systems are like programming languages … tools designed for a certain problem domain. We should *all* understand them and *use* them where appropriate.
I don’t see many NoSQL advocates saying their one size fits all, largely because most have become quite accustomed to (and resentful of) folks like Stonebraker and Starkey claiming that *their* one size does fit all (or will once they’re finished working on their next magnum opus) so this NoSQL stuff is all silly. Mostly there seems to be a celebration of choice – that Dynamo is not quite like PNUTS, that Redis is not quite like Voldemort, that MongoDB is not quite like HBase, that some stores are optimized for large reads and others for small writes, that there are different data models and CAP tradeoffs everywhere, and so on.
It’s like we’ve all been locked in the same room for two decades, and now we get to explore the rest of the city. That’s how I feel about it, and I get the strong impression I’m not alone, but YMMV.
I totally agree.
Well personally I like Stonebraker, even though his recent article didn’t read too kindly. :) He’s obviously a smart man with a creditable history when it comes to database systems, so any intelligent person will care to *listen* to what he has to say. However, I consider BigTable (Google) to be a part of NoSQL, and I wouldn’t consider their work silly. They are intelligent engineers as well and that’s an understatement. Furthermore, “one size fits all” obviously doesn’t apply if Mr. Stonebraker has Vertica AD *and* VoltDB. Or was it intended to mean “one size fits all for OLTP”?
Regardless, I share your refreshing feeling of this DBMS renaissance age/time.
I generally agree with you that one has to use the right tool for the right job. It is just that sometimes the general perception is so strong about what the right tool is that one feels defenseless. That is the case with operating systems without POSIX layers (I do not know about mobile phones and PDAs though) and that was the case with RDBMS.
And do not forget that just like cars who have race boys the same stands for computers too.
“Who are these people?”
People who need persistence and who achieved that by using an RDBMS not as a relational system, but as a tabular one that could be queried over SQL. And did that the wrong way. Real example:
You get the picture. But if the above seems clueless (which it most certainly is), even people with a clue.
“It’s like we’ve all been locked in the same room for two decades, and now we get to explore the rest of the city.”
It is exactly what I am feeling. But I also feel that somehow we are reinventing what locked us into the room.
Salvador: I don’t think Stonebraker goes far enough. Yes, he said “one size does not fit all” but he doesn’t seem to extend that beyond one set of CAP/ACID tradeoffs. You can have any kind of army boots you like, but you can’t have running shoes. ;) There’s also a whiff of “only I’m allowed to disrupt this status quo” in his essay about NoSQL. Does that clarify?