Monday, November 8, 2010

ACID Properties, Related Implications, In Particular Shared-Nothing Scalability

There is interesting blog on Daniel Abadi's blog site called The problems with ACID, and how to fix them without going NoSQL. It summarizes the current discussions and approaches around weakening the ACID properties of transactional DBMS in order to work around limitations (e.g. as outlined by the CAP theorem) and obstacles regarding scalability on shared-nothing architectures. Here, replication, as the most prominent method to achieve high availability, receives special attention. The blog seems to outline a research paper that has been presented at VLDB 2010.

The fundamental idea is to look at the isolation property in ACID. The authors argue that isolation still provides the freedom to (conceptually) execute transactions in an arbitrary sequential order. This arbitration translates into arbitrary - i.e. different - results depending on the chosen order. All results comply with the isolation property. Now, if the arbitration was removed, i.e. if a specific order was predefined, then a lot of the complexity of the (commit) protocols required for durability seem to go away. An example is the two-phase commit protocol.

I can follow the argument in the blog. I've not yet delved into all the details but I believe it's an interesting and promissing thought. At least, you get out a good summary of the current state of the discussion.