Making Snapshot Isolation Serializable

Alan Fekete
University of Sydney

Thursday, October 26th, Volen 101, 2:10-3:10 pm. (Refreshments at 2:00pm)

Snapshot Isolation (SI) is a multi-version concurrency control algorithm. SI is attractive because it never delays read operations, not even when concurrent writes are occurring. SI has been implemented by Microsoft Exchange and Oracle (with certain variations), and it provides an isolation level that avoids many of the common concurrency anomalies. SI does not guarantee serializability, however. Like most protocols that fail to guarantee serializabiliy, SI can lead to arbitrarily serious violations of integrity constraints. Fortunately there are applications where the program logic guarantees that only serializable executions can take place, one example being the TPC-C benchmark. We present a new theory with which the DBA can examine the program logic of the application to achieve one of the following two goals:

1. To verify that only serializable executions will occur when running on a DBMS which has SI as its concurrency control algorithm.

2. If 1 fails, to modify the application programs so that such serializability will be guaranteed.

Our goal is to bring concurrency safety to the many applications running on systems with SI as the concurrency control mechanism.

(This is joint work with Dimitrios Liarokapis, Elizabeth O'Neil, and Patrick O'Neil (UMass/Boston), and Dennis Shasha (Courant Institute))

Host: Liuba Shrira