Achieving Full Serializable Snapshot Isolation

Let's investigate how a serializable snapshot isolation algorithm helps to achieve full serializability preventing all anomalies.

Research in the field of concurrency control mechanism for achieving snapshot isolation level has resulted in an improved algorithm, called serializable snapshot isolation (SSI)M. J. Cahill, U. Rohm, and A. D. Fekete, “Serializable Isolation for Snapshot Databases,” Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, 2008., that can provide full serializability and has been integrated into commercial, widely used databases by Ports et al.D. R. K. Ports and K. Grittner, “Serializable Snapshot Isolation in PostgreSQL,” Proceedings of the VLDB Endowment, Volume 5 Issue 12, August 2012, 2012.

This algorithm is still optimistic and just adds some extensions on top of what we described in the previous lesson.

Serializable snapshot isolation (SSI)

The solution mechanics are based on a key principle of previous research that showed that all the non-serializable executions under snapshot isolation share a common characteristic.

Statement

SSI states this: in the precedence graph of any non-serializable execution, there are two rw-dependency edges that form consecutive edges in a cycle. These involve two transactions that have been active concurrently, as shown in the following illustration.

Get hands-on with 1400+ tech skills courses.