News
New LLM GPT PHI-4 from Microsoft available now!
DF
Daniil Fedorov
February 25 2025
Updated February 25 2025

MVCC

MVCC (Multi-Version Concurrency Control) is a technology that allows multiple users to work with a database simultaneously without waiting for other operations to complete. Instead of directly modifying records, the system creates new versions of them, enabling parallel query processing without locks. This approach allows transactions to access data in the state it was in at the time they started, regardless of subsequent changes.

How MVCC Works

With MVCC, each transaction operates on the data as it was at the moment it began. When a user makes changes, the system does not overwrite existing information but instead creates a new version of the record. This ensures:

  • Avoiding locks during simultaneous reads and writes.
  • Transaction isolation, preventing mutual interference.
  • Improved performance under high loads by executing operations in parallel.

Advantages of MVCC

Lock-free reading — Read transactions do not block write transactions, significantly improving data processing speed.

Transaction isolation — Supports different isolation levels, including Snapshot Isolation, Read Committed, and Repeatable Read.

Reduced latency — Transactions do not have to wait for each other, increasing query execution speed.

Disadvantages of MVCC

Higher storage demands — Maintaining multiple record versions increases disk space usage.

Need for old version cleanup — A periodic Garbage Collection mechanism is required to remove outdated data.

Implementation complexity — Managing multiple versions demands additional logic in the DBMS, making development and administration more challenging.

Examples of MVCC Usage

MVCC is widely used in leading relational and NoSQL databases:

  • PostgreSQL — Uses MVCC to ensure high performance and concurrent access.
  • Oracle — Implements the UNDO mechanism to store old record versions.
  • MySQL (InnoDB) — Supports MVCC through UNDO logs.
  • Microsoft SQL Server (Snapshot Isolation) — Minimizes locking overhead by leveraging multi-version concurrency.

Final Thoughts

MVCC is a key mechanism that enables efficient multi-user database operations without delays caused by locks. Despite the complexities of managing data versions and the need for periodic cleanup, this method makes databases more scalable, resilient under load, and user-friendly.

We use cookies to make your experience on the Serverspace better. By continuing to browse our website, you agree to our
Use of Cookies and Privacy Policy.