Sobes.tech
Middle+

How do transactions work with versions in MVCC?

sobes.tech AI

Answer from AI

In MVCC (Multi-Version Concurrency Control), each transaction sees a snapshot of the data at the moment it started, which helps avoid read locks.

How it works with transactions:

  • When a transaction begins, it is assigned a unique identifier (e.g., timestamp or transaction ID).
  • Each version of a data row contains information about which transaction created it and possibly deleted it.
  • A transaction only sees data versions that were committed before it started and not deleted by the time it began.
  • When a transaction writes, it creates a new version of the row without altering the old one.

Thus, transactions work with data versions, ensuring isolation and consistency without read locks. This increases concurrency and performance.

Example: if transaction T1 starts, it will only see versions of rows created before its start. If concurrently, transaction T2 updates a row, creating a new version, T1 will not see it until T2 completes.