Highly Available Transactions
With the CAP theorem dominating distributed systems design thinking, one particular characteristics has for the last couple of decades been written off completely in real time systems; transactions, particularly ACID transactions. However, a research group at UC Berkeley seems to have closed this theoretical gap through a somewhat more classy sounding theorem: the HAT theorem — with HAT referring to Highly Available Transactions.
In recent research at UC Berkeley, we show that high availability and transactions are not mutually exclusive: it is possible to match the semantics provided by many of today’s “ACID” and “NewSQL” databases without sacrificing high availability. While these Highly Available Transactions (HATs) do not provide serializability—which is not highly available under arbitrary read/write transactions—as I blogged about last week, many ACID databases provide a weaker form of isolation. The problem is that these databases do not implement their guarantees using highly available algorithms.
I can't wait to see what kind of implications this will have for the development of vastly distributed systems like Google's Spanner for us mere mortals.