Introducing Highly Available Transactions: The Relationship Between CAP and ACID Transactions
Learning from Peter Bailis:
While the CAP Theorem is fairly well understood, the relationship between CAP and ACID transactions is not. If we consider the current lack of highly available systems providing arbitrary multi-object operations with ACID-like semantics, it appears that CAP and transactions are incompatible. This is partly due to the historical design of distributed database systems, which typically chose consistency over high availability. Standard database techniques like two-phase locking and multi-version concurrency control do not typically perform well in the event of partial failure, and the master-based (i.e., master-per-shard) and overlapping quorum-based techniques often adopted by many distributed database designs are similarly unavailable if users are partitioned from the anointed primary copies.
There’s also a paper (PDF) authored by Peter Bailis, Alan Fekete, Ali Ghodsi, Joseph m. Hellerstein, Ion Stoica. These names should tell you something.
Original title and link: Introducing Highly Available Transactions: The Relationship Between CAP and ACID Transactions (©myNoSQL)
via: http://www.bailis.org/blog/hat-not-cap-introducing-highly-available-transactions/