Dare Obasanjo, not impressed with what I have to say about CouchDB.
No pun intended, but I think a lot of Dare’s arguments have nothing to do with the consistency of what I wrote, but the consistency of what Dare reads. Take for example:
Me, in the opening statement: There are no indexes.
Dare: There are indexes, otherwise the system would be ridiculously slow since you would have to run the function and evaluate every single document in the database each time you ran one of these views (i.e. the equivalent of a full table scan).
Context: Opening statement was about that which you already know (tables), as I believe all good introductions should be, before transitioning to explain the difference, in this case computed tables (which they call views, but are not equivalent to RDBMS views).
Not having queryable indexes that update immediately on write is an issue, very easy to illustrate in a working example. So if you want to present counter argument, there’s enough material there. But instead Dare, you nitpick a statement out of context, and then follow to show that you actually understood what I meant to convey. So why not start with that understanding, and take the discussion to a higher level of abstraction?
I think our readers would be much more interested in reading that.
I also want to use this as an opportunity to go on the record on a couple of points:
The problem described by Pat isn’t a failure of relational databases vs. document oriented ones as Assaf’s implication would have us believe.
I implied no such thing.
Relational databases have failed the software industry in much the same way XML, Java and client-server failed the software industry. In other words, no failure to see here, move along. Those are all excellent technologies for solving a wide range of problems. Just that there are some problems they’re particularly poor at solving.
The “failure”, as the case maybe, has nothing to do with technology but with people. It’s the familiarity syndrome: the hammer you know is the hammer you use. They fail only when used outside their original specification.
What could be implied requires a reading of my post with zero sum eyes. As zero sum would have it, either RDBMS are the be all do all for data (not content) storage, or they’re piece of crap that needs to be thrown out with the trash. To zero sum eyes, pointing out that something is not the appropriate solution to all problems is the equivalent of tearing it from one extreme and implanting it in the other.
There are no hidden implications in ‘thinking beyond the RDBMS’. It’s a reprhase of, not even a witty one, ‘thinking outside the box’. And thinking outside the box is not an issue of whether you’re going to throw the box or recycle it. It’s giving consideration to alternatives beyond that which we already know.
It is the business reality that availability is more important than data consistency for certain classes of applications.
It is business reality that got me seriously involved with RDBMS, and it is business reality that got me interested in read consistency databases. Business reality is a wide spectrum of requirements that requires a wide range of solutions.
I trust that my readers are in the same position. That your interest in RDBMS has nothing to do with some executive decision made on the gold course of Oracle CIO Retreat, but from realizing how well it solves a certain class of business problems. And that you’re fully aware that for many business applications, using RDBMS is as appealing as running a marathon in your wedding shoes.
One last point. What you think read consistency vs write consistency means is not what I think it means, which is perfectly ok. I took the point before to mention that there’s a concept behind it that I still need to explain. In a future post.
as days pass by » Blog Archive » CouchDb