MVCC
E717512
MVCC (Multi-Version Concurrency Control) is a database concurrency control method that allows multiple transactions to access data simultaneously by maintaining multiple versions of records, improving performance and reducing locking conflicts.
Statements (49)
| Predicate | Object |
|---|---|
| instanceOf | database concurrency control method ⓘ |
| abbreviationOf | Multi-Version Concurrency Control ⓘ |
| category |
database technology
ⓘ
transaction management technique ⓘ |
| contrastsWith |
pessimistic locking
ⓘ
two-phase locking ⓘ |
| fullName | Multi-Version Concurrency Control NERFINISHED ⓘ |
| hasPurpose |
allow multiple transactions to access data simultaneously
ⓘ
ensure transactional isolation ⓘ improve database performance ⓘ provide high concurrency ⓘ reduce locking conflicts ⓘ |
| implementsConcept |
concurrency control
ⓘ
optimistic concurrency control ⓘ snapshot isolation ⓘ |
| keyIdea |
each transaction sees a consistent snapshot of the database
ⓘ
maintains multiple versions of records ⓘ readers do not block writers ⓘ writers do not block readers in many workloads ⓘ |
| manages |
multiple versions of rows
ⓘ
multiple versions of tuples ⓘ |
| mayCause | write skew anomalies under snapshot isolation ⓘ |
| reduces |
blocking between concurrent transactions
ⓘ
lock contention ⓘ |
| requires |
garbage collection of old versions
ⓘ
vacuuming or cleanup processes ⓘ |
| supports |
ACID transactions
ⓘ
isolation levels ⓘ repeatable read semantics in some systems ⓘ snapshot isolation level ⓘ |
| tradeOff |
increased storage usage for multiple versions
ⓘ
more complex implementation logic ⓘ |
| usedBy |
CockroachDB
NERFINISHED
ⓘ
CouchDB NERFINISHED ⓘ FoundationDB NERFINISHED ⓘ Microsoft SQL Server (in snapshot-based features) NERFINISHED ⓘ MySQL InnoDB NERFINISHED ⓘ Oracle Database NERFINISHED ⓘ PostgreSQL NERFINISHED ⓘ SQLite (in WAL and versioned schemes) NERFINISHED ⓘ TiDB NERFINISHED ⓘ |
| usedIn |
NoSQL databases
ⓘ
database management systems ⓘ relational databases ⓘ transaction processing systems ⓘ |
| usesMechanism |
timestamps
ⓘ
transaction IDs ⓘ version numbers ⓘ visibility rules ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.