MVCC

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

MVCC (англ. multiversion concurrency control — управление параллельным доступом посредством многоверсионности) — один из механизмов СУБД для обеспечения параллельного доступа к базам данных, заключающийся в предоставлении каждому пользователю так называемого «снимка» базы, обладающего тем свойством, что вносимые пользователем изменения невидимы другим пользователям до момента фиксации транзакции. Этот способ управления позволяет добиться того, что пишущие транзакции не блокируют читающих, и читающие транзакции не блокируют пишущих.

Первой СУБД, реализовавшей этот механизм, считается Rdb, аналогичные механизмы были реализованы в конце 1980-х годов у InterBase и Oracle Database[1]), в 1990-е годы механизм реализован у PostgreSQL, а в 2000-е годы — почти во всех развитых реляционных СУБД. В дальнейшем этим механизмом оснащён также ряд систем, относимых к классам NoSQL и NewSQL (включая MongoDB, CouchDB, CockroachDB[англ.] и многие другие), и даже некоторые программные системы, не относимые к категории СУБД (например, etcd[англ.], ehcache[англ.] и другие).

  1. Todd, Bill InterBase: What Sets It Apart (2000). Дата обращения: 8 февраля 2009. Архивировано 17 марта 2008 года. (англ.)