stringtranslate.com

Conflicto de lectura-escritura

En informática , en el campo de las bases de datos , el conflicto de lectura-escritura , también conocido como lecturas irrepetibles , es una anomalía computacional asociada con la ejecución entrelazada de transacciones. Específicamente, un conflicto de lectura-escritura ocurre cuando una "transacción solicita leer una entidad para la cual 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 de A, descubre dos versiones diferentes de A, y T1 se vería obligado a abortar , porque T1 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 (2PL estricto) o el aislamiento de instantáneas serializables (SSI) evitan este conflicto.

Ejemplo del mundo real

Alice y Bob utilizan un sitio web para reservar entradas para un espectáculo específico. Sólo queda una entrada para el espectáculo específico. Alice se registra primero para ver que solo queda un boleto y lo encuentra caro. Alice se toma tiempo para decidir. Bob se registra y también encuentra un boleto restante y lo pide al instante. Bob compra y cierra sesión. Alice decide comprar un boleto y descubre que no hay boletos. Ésta es una situación típica de conflicto de lectura-escritura.

Ver también

Referencias

  1. ^ Stearns, Richard E .; Rosenkrantz, Daniel J. (1981). Controles de simultaneidad de bases de datos distribuidas que utilizan valores anteriores. 1981 Conferencia Internacional ACM SIGMOD sobre Gestión de Datos. Nueva York, Estados Unidos: Asociación de Maquinaria de Computación . págs. 74–83. doi :10.1145/582318.582330. ISBN 0-89791-040-0.