This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Serializable Isolation for Snapshot Databases Michael J. Cahill * [email protected] Uwe Röhm [email protected] Alan D. Fekete [email protected] School of Information Technologies University of Sydney NSW 2006 Australia ABSTRACT Many popular database management systems offer snap- shot isolation rather than full serializability. There are well- known anomalies permitted by snapshot isolation that can lead to violations of data consistency by interleaving trans- actions that individually maintain consistency. Until now, the only way to prevent these anomalies was to modify the applications by introducing artificial locking or update con- flicts, following careful analysis of conflicts between all pairs of transactions. This paper describes a modification to the concurrency con- trol algorithm of a database management system that auto- matically detects and prevents snapshot isolation anomalies at runtime for arbitrary applications, thus providing serial- izable isolation. The new algorithm preserves the proper- ties that make snapshot isolation attractive, including that readers do not block writers and vice versa. An implementa- tion and performance study of the algorithm are described, showing that the throughput approaches that of snapshot isolation in most cases. Categories and Subject Descriptors H.2.4 [ Database Management ]: Systems— Transaction processing General Terms Algorithms, Performance, Reliability Keywords Multiversion Concurrency Control, Serializability Theory, Snapshot Isolation * The author is also an employee of Oracle Corporation. This work was done while at the University of Sydney. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGMOD’08, June 9–12, 2008, Vancouver, BC, Canada. Copyright 2008 ACM 978-1-60558-102-6/08/06 ...$5.00. 1. INTRODUCTION Serializability is an important property when transactions execute because it ensures that integrity constraints are main- tained even if those constraints are not explicitly declared to the DBMS. If a DBMS enforces that all executions are seri- alizable, then developers do not need to worry that inconsis- tencies in the data might appear as artifacts of concurrency or failure. It is well-known how to use strict two-phase lock- ing (and various enhancements such as escrow locking and multigranularity locking) to control concurrency so that se- rializable executions are produced . Some other concur- rency control algorithms are known that ensure serializable execution, but these have not been adopted in practice, be- cause they usually perform worse than a well-engineered im- plementation of strict two-phase locking (S2PL).plementation of strict two-phase locking (S2PL)....
View Full Document
This note was uploaded on 10/06/2011 for the course CS 2434 taught by Professor Shasha during the Spring '11 term at NYU.
- Spring '11