Analysing Snapshot Isolation

Snapshot isolation (SI) is a widely used consistency model for transaction processing, implemented by most major databases and some of transactional memory systems. Unfortunately, its classical definition is given in a low-level operational way, by an idealised concurrency-control algorithm, and this complicates reasoning about the behaviour of applications running under SI. We give an alternative specification to SI that characterises it in terms of transactional dependency graphs of Adya et al., generalising serialisation graphs. Unlike previous work, our characterisation does not require adding additional information to dependency graphs about start and commit points of transactions. We then exploit our specification to obtain two kinds of static analyses. The first one checks when a set of transactions running under SI can be chopped into smaller pieces without introducing new behaviours, to improve performance. The other analysis checks whether a set of transactions running under a weakening of SI behaves the same as when running under SI.

[1]  Hongseok Yang,et al.  Transaction Chopping for Parallel Snapshot Isolation , 2015, DISC.

[2]  L. Alvisi,et al.  High-performance ACID via modular concurrency control , 2015, SOSP.

[3]  Michael L. Scott,et al.  Software partitioning of hardware transactions , 2015, PPoPP.

[4]  Yang Zhang,et al.  Extracting More Concurrency from Distributed Transactions , 2014, OSDI.

[5]  Ali Ghodsi,et al.  Scalable atomic visibility with RAMP transactions , 2014, SIGMOD Conference.

[6]  David R. Cheriton,et al.  SI-TM: reducing transactional memory abort rates through snapshot isolation , 2014, ASPLOS.

[7]  Nuno Diegues,et al.  Time-warp: lightweight abort minimization in transactional memory , 2014, PPoPP '14.

[8]  B. Kemme,et al.  Consistency anomalies in multi-tier architectures: automatic detection and prevention , 2014, The VLDB Journal.

[9]  Marcos K. Aguilera,et al.  Consistency-based service level agreements for cloud storage , 2013, SOSP.

[10]  Marcos K. Aguilera,et al.  Transaction chains: achieving serializability with low latency in geo-distributed storage systems , 2013, SOSP.

[11]  Marc Shapiro,et al.  Non-monotonic Snapshot Isolation: Scalable and Strong Consistency for Geo-replicated Transactional Systems , 2013, 2013 IEEE 32nd International Symposium on Reliable Distributed Systems.

[12]  Marc Shapiro,et al.  On the Scalability of Snapshot Isolation , 2013, Euro-Par.

[13]  Nir Shavit,et al.  Towards Consistency Oblivious Programming , 2011, OPODIS.

[14]  Marcos K. Aguilera,et al.  Transactional storage for geo-replicated systems , 2011, SOSP.

[15]  Frank Dabek,et al.  Large-scale Incremental Processing Using Distributed Transactions and Notifications , 2010, OSDI.

[16]  Annette Bieniusa,et al.  Consistency in hindsight: A fully decentralized STM algorithm , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[17]  Mark Moir,et al.  Towards formally specifying and verifying transactional memory , 2009, Formal Aspects of Computing.

[18]  Michael J. Cahill Serializable isolation for snapshot databases , 2009, TODS.

[19]  R. Guerraoui,et al.  Elastic transactions , 2009, J. Parallel Distributed Comput..

[20]  Yi Lin,et al.  Snapshot isolation and integrity constraints in replicated databases , 2009, TODS.

[21]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

[22]  Ricardo Jiménez-Peris,et al.  Boosting Database Replication Scalability through Partial Replication and 1-Copy-Snapshot-Isolation , 2007, 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007).

[23]  S. Sudarshan,et al.  Automating the Detection of Snapshot Isolation Anomalies , 2007, VLDB.

[24]  Kenneth Salem,et al.  Lazy database replication with snapshot isolation , 2006, VLDB.

[25]  Fernando Pedone,et al.  Database replication using generalized snapshot isolation , 2005, 24th IEEE Symposium on Reliable Distributed Systems (SRDS'05).

[26]  Dennis Shasha,et al.  Making snapshot isolation serializable , 2005, TODS.

[27]  Kenneth Salem,et al.  Lazy database replication with ordering guarantees , 2004, Proceedings. 20th International Conference on Data Engineering.

[28]  Patrick E. O'Neil,et al.  Generalized isolation level definitions , 2000, Proceedings of 16th International Conference on Data Engineering (Cat. No.00CB37073).

[29]  Patrick Valduriez,et al.  Transaction chopping: algorithms and performance studies , 1995, TODS.

[30]  Jim Gray,et al.  A critique of ANSI SQL isolation levels , 1995, SIGMOD '95.

[31]  Marvin Theimer,et al.  Session guarantees for weakly consistent replicated data , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[32]  M. Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[33]  Alexey Gotsman,et al.  A Framework for Transactional Consistency Models with Atomic Visibility , 2015, CONCUR.

[34]  João Lourenço,et al.  Efficient and Correct Transactional Memory Programs Combining Snapshot Isolation and Static Analysis , 2011 .

[35]  Torvald Riegel,et al.  Snapshot Isolation for Software Transactional Memory , 2006 .

[36]  Barbara Liskov,et al.  Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions , 1999 .

[37]  Dennis Shasha,et al.  Efficient and correct execution of parallel programs that share memory , 1988, TOPL.