Multiversion Concurrency Control

Learn about the mechanics of Multiversion concurrency control.

We'll cover the following

Introduction

Multiversion concurrency control (MVCC) is a concurrency control technique that allows multiple versions of the same record to exist simultaneously during a given time and provides a consistent view of the database at a point in the past identified by the timestamp.

With this method, every active transaction in the database sees a snapshot of the data at that point. The new transactions won’t see any changes made by other transactions until the database commits the transaction.

In addition, multiversion concurrency control techniques prevent nonrepeatable reads problems.

Implementation

When a database transaction starts, the database generates a unique, monotonically increasing transaction identifier (txid). The database tags every data inserted or updated with the txid.

Additionally, every record in the database has a created_by field that contains the txid that inserted a particular record. Similarly, every record has a deleted_by field that initially remains empty, but is updated with the new txid that modified the record.

When the database updates data, it creates a new version of the data instead of overwriting it. Thus, the implementation creates multiple versions of the same data at a given time. The most common isolation level implemented with MVCC is snapshot isolation.

Get hands-on with 1400+ tech skills courses.