Correct execution of transactions at different isolation levels

Many transaction processing applications execute at isolation levels lower than SERIALIZABLE in order to increase throughput and reduce response time. However, the resulting schedules might not be serializable and, hence, not necessarily correct. The semantics of a particular application determines whether that application will run correctly at a lower level and, in practice, it appears that many applications do. The decision to choose an isolation level at which to run an application and the analysis of the correctness of the resulting execution is usually done informally. We develop a formal technique to analyze and reason about the correctness of the execution of an application at isolation levels other than SERIALIZABLE. We use a new notion of correctness, semantic correctness, a criterion weaker than serializability, to investigate correctness. In particular, for each isolation level, we prove a condition under which the execution of transactions at that level will be semantically correct. In addition to the ANSI/ISO isolation levels of READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ, we also prove a condition for correct execution at the READ-COMMITTED with first-committer-wins and at SNAPSHOT isolation. We assume that different transactions in the same application can be executing at different levels, but that each transaction is executing at least at READ UNCOMMITTED.

[1]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[2]  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.

[3]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[4]  R. Smith Beryllium report disputed by listed author. , 1981, Science.

[5]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[6]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[7]  Jan A. Bergstra,et al.  Expressiveness and the Completeness of Hoare's Logic , 1982, J. Comput. Syst. Sci..

[8]  Arthur J. Bernstein,et al.  Concurrency in programming and database systems , 1993 .

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

[10]  Arthur J. Bernstein,et al.  Design and performance of an assertional concurrency control system , 1998, Proceedings 14th International Conference on Data Engineering.

[11]  Arthur J. Bernstein,et al.  Concurrency control for step-decomposed transactions , 1999, Inf. Syst..

[12]  Shiyong Lu,et al.  Using Transaction Semantics to Increase Performance , 1999 .

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

[14]  Mark Ryan,et al.  Logic in Computer Science: Modelling and Reasoning about Systems , 2000 .

[15]  T. Nipkow Hoare Logics in Isabelle/HOL , 2002 .

[16]  H. Schwichtenberg,et al.  Proof and System-Reliability , 2002 .

[17]  Arthur J. Bernstein,et al.  Transaction decomposition using transaction semantics , 1996, Distributed and Parallel Databases.

[18]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.