Correct Execution of Transactions at Different Isolation Levels
IEEE Transactions on Knowledge and Data Engineering
A read-only transaction anomaly under snapshot isolation
ACM SIGMOD Record
Allocating isolation levels to transactions
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Making snapshot isolation serializable
ACM Transactions on Database Systems (TODS)
Automatic workflow verification and generation
Theoretical Computer Science
Serializable isolation for snapshot databases
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Serializable isolation for snapshot databases
ACM Transactions on Database Systems (TODS)
DASFAA'08 Proceedings of the 13th international conference on Database systems for advanced applications
Strict serializability is harmless: a new architecture for enterprise applications
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
ConsAD: a real-time consistency anomalies detector
SIGMOD '12 Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data
How consistent is your cloud application?
Proceedings of the Third ACM Symposium on Cloud Computing
Consistency anomalies in multi-tier architectures: automatic detection and prevention
The VLDB Journal — The International Journal on Very Large Data Bases
Hi-index | 0.00 |
Many transaction processing applications execute at isolation levels lower than SERIALIZABLE in order to increase throughput and reduce response time. The problem is that non-serializable schedules are not guaranteed to be correct for all applications. The semantics of a particular application determines whether that application will run correctly at a lower isolation level, and in practice it appears that many applications do. Unfortunately, we know of no analysis technique that has been developed to test an application for its correctness at a particular level. Apparently decisions of this nature are made on an informal basis. In this paper we describe such a technique in a formal way.We use a new definition of correctness, semantic correctness, which is weaker than serializability, to investigate the correctness of such executions. For each isolation level, we prove a condition under which transactions that execute 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 (a variation of READ COMMITTED) and at the SNAPSHOT isolation level. We assume that different transactions can be executing at different isolation levels, but that each transaction is executing at least at the READ UNCOMMITTED level.