Achieving Snapshot Isolation

In this lesson, we will learn the multi-version concurrency control mechanism, and discuss how it helps to achieve snapshot isolation.

Multi-version concurrency control (MVCC)

Multiversion Concurrency Control (MVCC) is a technique where multiple physical versions are maintained for a single logical data item. As a result, update operations do not overwrite existing records, but they write a new version of these records. Read operations can then select a specific version of a record, possibly an older one.

This is in contrast with the previous techniques, where updates are performed in place and there is a single record for each data item that can be accessed by read operations.

ReedD. P. Reed, “Naming and Synchronisation in a Decentralised Computer System,” Tech. Rep. MIT/LCS/TR-204, Dept. Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 1978. proposed the original protocol in a dissertation in 1978, but many different variations of the original idea have been proposed since then by SilberschatzA. Silberschatz, “A multi-version concurrency scheme with no rollbacks,” Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing, 1982. and Stearns et al.R. E. Stearns and D. J. Rosenkratz, “Distributed database concurrency controls using before-values,” Proceedings of the 1981 ACM SIGMOD international conference on Management of data, 1981.

As the name implies, this technique focuses on the multi-version aspect of storage so that it can be used, theoretically, with both optimistic and pessimistic schemes.

However, most variations use an optimistic concurrency control method to leverage the multiple versions of an item from transactions that run concurrently.

Create a free account to view this lesson.

By signing up, you agree to Educative's Terms of Service and Privacy Policy