Making snapshot isolation serializable

Alan Fekete, Dimitrios Liarokapis, Elizabeth O'Neil, Patrick O'Neil, Dennis Shasha

Research output: Contribution to journalReview article

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.

Original languageEnglish (US)
Pages (from-to)492-528
Number of pages37
JournalACM Transactions on Database Systems
Volume30
Issue number2
DOIs
StatePublished - Jun 2005

Keywords

  • Anomaly
  • Concurrency control
  • Consistency
  • Multiversion concurrency
  • Serializability
  • Snapshot isolation
  • Weak isolation

ASJC Scopus subject areas

  • Information Systems

Fingerprint Dive into the research topics of 'Making snapshot isolation serializable'. Together they form a unique fingerprint.

  • Cite this