En informática , en el campo de las bases de datos , un conflicto de lectura y escritura , también conocido como lecturas irrepetibles , es una anomalía computacional asociada con la ejecución intercalada de transacciones. En concreto, un conflicto de lectura y escritura se produce cuando una "transacción solicita leer una entidad para la que una transacción no cerrada ya ha realizado una solicitud de escritura". [1]
Dado un horario S
En este ejemplo, T1 ha leído el valor original de A y está esperando que T2 termine. T2 también lee el valor original de A, sobrescribe A y confirma.
Sin embargo, cuando T1 lee desde A, descubre dos versiones diferentes de A y T1 se vería obligado a abortar , porque no sabría qué hacer. Esta es una lectura irrepetible. Esto nunca podría ocurrir en una programación en serie, en la que cada transacción se ejecuta en su totalidad antes de que comience otra. El bloqueo estricto de dos fases (Strict 2PL) o el aislamiento de instantáneas serializable (SSI) evitan este conflicto.
Alice y Bob están usando un sitio web para reservar entradas para un espectáculo específico. Solo queda una entrada para ese espectáculo específico. Alice se registra primero y ve que solo queda una entrada y la encuentra cara. Alice tarda un tiempo en decidir. Bob se registra y también ve que queda una entrada y la pide al instante. Bob compra y cierra la sesión. Alice decide comprar una entrada y descubre que no quedan entradas. Esta es una situación de conflicto de lectura y escritura típica.