ACM Home Page
Please provide us with feedback. Feedback
Making snapshot isolation serializable
Full text PdfPdf (723 KB)
Source ACM Transactions on Database Systems (TODS) archive
Volume 30 ,  Issue 2  (June 2005) table of contents
Pages: 492 - 528  
Year of Publication: 2005
ISSN:0362-5915
Authors
Alan Fekete  University of Sydney, Australia
Dimitrios Liarokapis  University of Massachusetts
Elizabeth O'Neil  University of Massachusetts
Patrick O'Neil  University of Massachusetts
Dennis Shasha  Courant Institute, New York, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 24,   Downloads (12 Months): 200,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1071610.1071615
What is a DOI?

ABSTRACT

Snapshot Isolation (SI) is a multiversion concurrency control algorithm, first described in Berenson et al. [1995]. SI is attractive because it provides an isolation level that avoids many of the common concurrency anomalies, and has been implemented by Oracle and Microsoft SQL Server (with certain minor variations). SI does not guarantee serializability in all cases, but the TPC-C benchmark application [TPC-C], for example, executes under SI without serialization anomalies. All major database system products are delivered with default nonserializable isolation levels, often ones that encounter serialization anomalies more commonly than SI, and we suspect that numerous isolation errors occur each day at many large sites because of this, leading to corrupt data sometimes noted in data warehouse applications. The classical justification for lower isolation levels is that applications can be run under such levels to improve efficiency when they can be shown not to result in serious errors, but little or no guidance has been offered to application programmers and DBAs by vendors as to how to avoid such errors. This article develops a theory that characterizes when nonserializable executions of applications can occur under SI. Near the end of the article, we apply this theory to demonstrate that the TPC-C benchmark application has no serialization anomalies under SI, and then discuss how this demonstration can be generalized to other applications. We also present a discussion on how to modify the program logic of applications that are nonserializable under SI so that serializability will be guaranteed.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
3
 
4
Berge, C. 1976. Graphs and Hypergraphs (2nd edition). North-Holland Mathematical Library, Volume 6.
 
5
 
6
7
8
 
9
Elnikety, S., Pedone, F., and Zwaenepoel, W. 2004. Generalized snapshot isolation and a prefix-consistent implementation. Tech. Rep. IC/2004/21, EPFL, Mar.
10
 
11
Fekete, A. 1999. Serializability and snapshot isolation. In Proceedings of the Australian Database Conference (Auckland, New Zealand, Jan.). 201--210.
12
 
13
Gray, J. (Ed.). 1993. The Benchmark Handbook (2nd edition). Morgan-Kaufmann, San Francisco, Calif.
 
14
15
 
16
Jacobs, K., Bamford, R., Doherty, G., Haas, K., Holt, M., Putzolu, F., and Quigley, B. 1995. Concurrency Control: Transaction Isolation and Serializability in SQL92 and Oracle7. Oracle White Paper, Part No. A33745 (July).
 
17
 
18
 
19
20
 
21
 
22
TPC-C Benchmark Specification, available at http://www.tpc.org/tpcc/.

CITED BY  13

Collaborative Colleagues:
Alan Fekete: colleagues
Dimitrios Liarokapis: colleagues
Elizabeth O'Neil: colleagues
Patrick O'Neil: colleagues
Dennis Shasha: colleagues