Multi-Version Concurrency Control
MVCC mantiene múltiples versiones por fila; las lecturas usan una instantánea consistente sin bloqueos, logrando alta concurrencia donde las lecturas no bloquean escrituras.
Propósito
Comprender el mecanismo central de las lecturas altamente concurrentes en las bases de datos modernas (PostgreSQL/Oracle/InnoDB).
Mecanismo
Cada fila lleva sellos de versión (xmin/xmax o IDs de transacción). Las lecturas eligen la versión visible según la instantánea de transacción, sin bloqueos. Las escrituras crean una versión nueva y marcan la antigua como expirada. Los interbloqueos y el write skew requieren detección adicional.
Casos de uso
- Optimización de lecturas de alta concurrencia
- Implementación de aislamiento por instantánea
- Interioridades de bases de datos