Back in the 1970s, the earliest databases had transactions. Then NoSQL abolished them. And now,
perhaps, they are making a comeback… but reinvented.
The purpose of transactions is to make application code simpler, by reducing the amount of failure
handling you need to do yourself. However, they have also gained a reputation for being slow and
unscalable. With the traditional implementation of serializability (2-phase locking), that
reputation was somewhat deserved.
In the last few years, there has been a resurgence of interest in transaction algorithms that
perform well and scale well. This talk answers some of the biggest questions about the bright new
landscape of transactions:
What does ACID actually mean? What race conditions can you get with weak isolation (such as “read
committed” and “repeatable read”), and how does this affect your application?
What are the strongest guarantees we can achieve, while maintaining high availability and high
performance at scale?
How do the new generation of algorithms for distributed, highly-available transactions work?
Linearizability, session guarantees, “consistency” and the much-misunderstood CAP theorem –
what’s really going on here?
When you move beyond a single database, e.g. doing stream processing, what are your options for
maintaining transactional guarantees?
Peter Bailis, Alan Fekete, Ali Ghodsi, Joseph M Hellerstein, and Ion Stoica:
“HAT, not CAP: Towards Highly Available Transactions,”
at 14th USENIX Workshop on Hot Topics in Operating Systems (HotOS), May 2013.
Peter Bailis, Ali Ghodsi, Joseph M Hellerstein, and Ion Stoica:
“Bolt-on Causal Consistency,”
at ACM International Conference on Management of Data (SIGMOD), June 2013.
Hal Berenson, Philip A Bernstein, Jim N Gray, et al.:
“A Critique of ANSI SQL Isolation Levels,”
at ACM International Conference on Management of Data (SIGMOD), May 1995.
Michael J Cahill, Uwe Röhm, and Alan Fekete:
“Serializable Isolation for Snapshot Databases,”
at ACM International Conference on Management of Data (SIGMOD), pages 729–738, June 2008.
Donald D Chamberlin, Morton M Astrahan, Michael W Blasgen, et al.:
“A History and Evaluation of System R,”
Communications of the ACM, volume 24, number 10, pages 632–646, October 1981.
Hector Garcia-Molina and Kenneth Salem: “Sagas,”
at ACM International Conference on Management of Data (SIGMOD), May 1987.
Jim N Gray, Raymond A Lorie, Gianfranco R Putzolu, and Irving L Traiger:
“Granularity of Locks and Degrees of Consistency in a Shared Data Base,”
in Modelling in Data Base Management Systems: Proceedings of the IFIP Working Conference on
Modelling in Data Base Management Systems, G.M. Nijssen, Editor. Elsevier/North Holland
Publishing, pages 364–394, 1976.
Dan R K Ports and Kevin Grittner:
“Serializable Snapshot Isolation in PostgreSQL,”
at 38th International Conference on Very Large Data Bases (VLDB), volume 5, number 12, pages
1850–1861, August 2012.