Saltar al contenido
uencoder

Phantom Read

Una lectura fantasma ocurre cuando la misma transacción ejecuta dos veces la misma consulta por rango y obtiene cantidades distintas de filas (otra transacción insertó/eliminó filas coincidentes); una anomalía que persiste en repeatable read.

Propósito

Comprender las filas fantasma en consultas por rango concurrentes y sus defensas (next-key locks / SSI).

Mecanismo

La transacción A ejecuta dos veces SELECT WHERE age>20; la transacción B inserta age=25 y confirma en medio, así que la segunda consulta de A devuelve una fila más (un fantasma). Defensas: candados de predicado, next-key locks (MySQL), SSI (PostgreSQL).

Casos de uso

  • Análisis de anomalías de concurrencia
  • Aislamiento de consultas por rango
  • Diseño de estrategias de bloqueo

Herramientas relacionadas

References