Locks y seriabilización

Locks y seriabilización

de Ignacio Federico Alesina Acuña -
Número de respuestas: 1

Hola, buenos días. Haciendo un ejercicio con 2 transacciones T1 y T2 ambas en 2pl basico, y generando una historia entre las mismas pude generar una historia no serializable. Viendo porque me pudo haber dado ese resultado note que en la historia primero realizo read_lock1(X), luego read_lock2(X) y por ultimo write_lock1(X). Luego de liberar los locks de 1 sobre X realizo un write_lock2(X) y al escribir en X se me generan las aristas en el grafo en dos sentidos por ende me queda no serializable. 

Supongo que mi error está en hacer read_lock2 y luego hacer write_lock1. Es decir, que no podría en una historia hacer un read_lock de una transacción y que luego otra transacción realice un write_lock sobre la misma. Pero al no encontrar eso en el teórico prefiero preguntar por acá. 

Saludos

En respuesta a Ignacio Federico Alesina Acuña

Re: Locks y seriabilización

de Camila Sanz -
Hola Ignacio,

lo que decís es correcto.
Si un ítem está bloqueado para lectura por una transacción, ninguna otra lo puede bloquear para escritura. Entonces en tu ejemplo, luego del read_lock_2(X) no podrías hacer el write_lock1(X) hasta que la transacción 2 haga u2(X).

Saludos!