Sunday, June 13, 2010

Debating foolish consistency

For the past thirty years, the model for databases has been the relational database with its SQL language for access. The tenets of relational databases have been noted with the acronym ACID, referring to the concepts of Atomicity, Consistency, Isolation, and Durability.

We are now debating those ideas. And high time, in my opnion.

The debate has been spurred by technology and the desire for performance. Applications like Twitter and Facebook have raised the bar for database size and performance. Facebook is approaching 500 million users, many of whom are on-line at the same time. The old model of centralized control and absolute consistency simply does not work for applications of this size.

Which is not to say that we must abandon the old ACID/SQL/centralized model for databases. They work for applications of certain sizes and certain transaction volume.

It used to be that ACID/SQL worked for the "high end" applications and the low end could be handled by plain text files.  This was a simple model, and vendors such as Microsoft and Oracle used it to their advantage.

The definition of "high end" has changed. It's been pushed far higher, and the new high end is beyond the capabilities of the old model. This has spurred people to develop the NoSQL model which which moves away from structured data and relaxes the requirement for consistency.

This issue is not without debate. Michael Stonebraker, in his article in the Communications of the ACM, debates the relaxaton of consistency requirements.

I'm not sure of the outcome of this debate. But I like the fact that we are having the debate. We selected the relational database model thirty years ago. The selection was made on little more than the say-so of E. F. Codd and IBM. Let's review the possibilities and discuss the mertis of different approaches.


No comments: