Performance of program modification techniques that ensure serializable executions with snapshot isolation DBMS

Snapshot Isolation (SI) is a multiversion concurrency control that has been implemented by several open source and commercial database systems (Oracle, Microsoft SQL Server, and previous releases of PostgreSQL). The main feature of SI is that a read operation does not block a write operation and vice versa, which allows higher degree of concurrency than traditional two-phase locking. SI prevents many anomalies that appear in other isolation levels, but it still can result in non-serializable executions, in which database integrity constraints can be violated. Several techniques are known to modify the application code based on preanalysis, in order to ensure that every execution is serializable on engines running SI. We introduce a new technique called External Lock Manager (ELM). In using a technique, there is a choice to make, of which pairs of transactions need to have conflicts introduced. We measure the performance impact of the choices available, among techniques and conflicts.

[1]  B. Brown,et al.  Concepts and Techniques , 1983 .

[2]  Shiyong Lu,et al.  Semantic conditions for correctness at different isolation levels , 2000, Proceedings of 16th International Conference on Data Engineering (Cat. No.00CB37073).

[3]  Alan Fekete,et al.  The Cost of Serializability on Platforms That Use Snapshot Isolation , 2008, 2008 IEEE 24th International Conference on Data Engineering.

[4]  Alan Fekete,et al.  Quantifying Isolation Anomalies , 2009, Proc. VLDB Endow..

[5]  David R. Cheriton,et al.  Leases: an efficient fault-tolerant mechanism for distributed file cache consistency , 1989, SOSP '89.

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

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

[8]  Alan Fekete,et al.  Serializable Executions with Snapshot Isolation: Modifying Application Code or Mixing Isolation Levels? , 2008, DASFAA.

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

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

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

[12]  Abraham Silberschatz,et al.  Database Systems Concepts , 1997 .

[13]  Marc Najork,et al.  Boxwood: Abstractions as the Foundation for Storage Infrastructure , 2004, OSDI.

[14]  Gregory R. Ganger,et al.  Network Support for Network-Attached Storage , 1999 .

[15]  Alan Fekete,et al.  A Robust Technique to Ensure Serializable Executions with Snapshot Isolation DBMS , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[16]  Michael Burrows,et al.  The Chubby Lock Service for Loosely-Coupled Distributed Systems , 2006, OSDI.

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

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

[19]  Heon Young Yeom,et al.  Performance of Serializable Snapshot Isolation on Multicore Servers , 2013, DASFAA.

[20]  Gustavo Alonso,et al.  Ganymed: Scalable Replication for Transactional Web Applications , 2004, Middleware.

[21]  Bettina Kemme,et al.  Postgres-R(SI): combining replica control with concurrency control based on snapshot isolation , 2005, 21st International Conference on Data Engineering (ICDE'05).

[22]  Patrick E. O'Neil,et al.  A read-only transaction anomaly under snapshot isolation , 2004, SGMD.

[23]  Irving L. Traiger,et al.  Granularity of Locks and Degrees of Consistency in a Shared Data Base , 1998, IFIP Working Conference on Modelling in Data Base Management Systems.

[24]  Patrick E. O'Neil,et al.  Precisely Serializable Snapshot Isolation (PSSI) , 2011, 2011 IEEE 27th International Conference on Data Engineering.

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

[26]  Philip S. Yu,et al.  Efficient LRU-Based Buffering in a LAN Remote Caching Architecture , 1996, IEEE Trans. Parallel Distributed Syst..

[27]  Michael Kifer,et al.  Database Systems : An Application-Oriented Approach , 2005 .

[28]  Alan Fekete,et al.  Serializable snapshot isolation for replicated databases in high-update scenarios , 2011, Proc. VLDB Endow..

[29]  Bettina Kemme,et al.  Real-time quantification and classification of consistency anomalies in multi-tier architectures , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[30]  Sameh Elnikety,et al.  One-copy serializability with snapshot isolation under the hood , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[31]  Ouri Wolfson The Virtues of Locking by Symbolic Names , 1987, J. Algorithms.

[32]  Mohammad Alomari,et al.  Ensuring Serializable Executions with Snapshot Isolation DBMS , 2009 .

[33]  Alan Fekete,et al.  Allocating isolation levels to transactions , 2005, PODS '05.

[34]  Ricardo Jiménez-Peris,et al.  Middleware based data replication providing snapshot isolation , 2005, SIGMOD '05.

[35]  Dan R. K. Ports,et al.  Serializable Snapshot Isolation in PostgreSQL , 2012, Proc. VLDB Endow..

[36]  Alan Fekete,et al.  Multi-version Concurrency via Timestamp Range Conflict Management , 2012, 2012 IEEE 28th International Conference on Data Engineering.

[37]  Sameh Elnikety,et al.  Performance Comparison of Middleware Architectures for Generating Dynamic Web Content , 2003, Middleware.