Snapshot Isolation
El aislamiento de instantánea permite que una transacción lea una instantánea consistente (versiones de datos al inicio de la transacción), evitando lecturas sucias y no repetibles, pero permitiendo el write skew.
Propósito
Proporcionar un aislamiento eficiente de alta concurrencia sobre MVCC; el nivel por defecto de muchas bases de datos.
Mecanismo
Al inicio de la transacción se adquiere una instantánea consistente (sellos de versión visibles); las lecturas no toman bloqueos. Detección de conflictos de escritura: si dos transacciones solapadas escriben la misma fila, la que confirma después se aborta. El REPEATABLE READ de PostgreSQL es exactamente esto.
Casos de uso
- Aislamiento en MVCC
- Optimización de lecturas concurrentes
- Selección del nivel de aislamiento