Tecnología de Bases de
Datos
Problemas de Concurrencia
a) Problema de la Actualización Perdida
b) Problema de la Dependencia No Confirmada
(actualización temporal) (lectura sucia) t T5 T6
c) Problema del Análisis Inconsistente t1 Leer (A)
t2 S=A
t T3 T4 t3 Leer (B)
t T1 T2
t1 Leer (A) t4 S=S+B
t1 Leer (A)
t2 A=A+N t5 Escribir (A)
t2 A=A+N
t3 Escribir (A) t6 Leer (C)
t3 Leer (A)
t4 Leer (A) t7 C=C+K
t4 A=A+M
t5 A=A+M t8 Escribir (C)
t5 Escribir (A)
t6 Escribir (A) t9 Leer (B)
t6 Escribir (A)
t7 Leer (B) t1 B=B+R
0
t8 (Rollback)
t11 Escribir (B)
t1 Leer (C)
2
t1 S=S+C
3
Técnicas de Control de Concurrencia
Control de uso compartido
Secuenciamiento
Bloqueo:
• Bloqueo binario
• Bloqueo multinivel
El problema de la escritura
Problema A - Bloqueo
OPCION 1
OPCION 2
t T1 T2
t T1 T2
t1 Solicita (BC; A)
t1 Solicita (BC; A)
t2 Leer (A)
t2 Leer (A)
t3 A=A+N
t3 A=A+N
t4 Solicita (BC; A)
t4 Solicita (BC; A)
t5 Leer (A)
t5 Leer (A)
t6 A=A+M
t6 A=A+M
t7 Solicita (BE; A)
t7 Solicita (BE; A)
t8 …
t8 …
t9 … Solicita (BE; A)
t9 … Solicita (BE; A)
t10 … …
t10 … …
t11 … …
t11 … …
t12 … …
t12 … …
t13 (resolución de interbloqueo)
t13 (vence ‘t’ y reinicia) …
t14 (reinicia)
t14 Escribir (A)
t15 Escribir (A)
Problema B - Bloqueo
OPCION 1
t T3 T4 OPCION 2
t1 Solicita (BC; A) t T3 T4
t2 Leer (A) t1 Solicita (BC; A)
t3 A=A+N t2 Leer (A)
t4 Solicita (BE; A) t3 A=A+N
t5 Escribir (A) t4 Solicita (BC; A)
t6 Solicita (BC; A) t5 Leer (A)
t7 … t6 A=A+M
t8 … t7 Solicita (BE; A)
t9 Leer (B) … t8 …
t10 Rollback … t9 … Solicita (BE; A)
t11 Leer (A) t10 … …
t12 A=A+M (Idem Caso Problema A)
t13 Solicita (BE; A)
t14 Escribir (A)
Problema C - Bloqueo
t T5 T6
t1 Solicita (BC; A)
t2 Leer (A)
t3 S=A
t4 Solicita (BC; B)
t5 Leer (B)
t6 S=S+B
t7 Solicita (BC; C)
t8 Leer (C)
t9 C=C+K
t10 Solicita (BE; C)
t11 Escribir (C)
t12 Solicita (BC; B)
t13 Leer (B)
t14 B=B+R
t15 Solicita (BE; B)
t16 Solicita (BC; C) …
t17 … …
t18 Idem Caso Problema A
Protocolo de Bloqueo en Dos Faces (B2F)
Básico:
• Fase “expansión”
• Fase “contracción”
Conservador: obtiene todos los bloqueos antes
de iniciar la ejecución de la primer instrucción
Estricto: no libera bloqueos exclusivos antes de
confirmar (o abortar) la transacción
Riguroso: no libera bloqueos antes de confirmar
(o abortar) la transacción
Granularidad de Bloqueo
Menor grado de concurrencia
Menor Granularidad Menor complejidad
Mayor grado de concurrencia
Mayor Granularidad Mayor complejidad
Marca Temporal
Por cada elemento:
• tL: marca de tiempo de la última transacción que leyó el
elemento
• tE: marca de tiempo de la última transacción que escribió el
elemento
Para Lectura: leer(x)
t(T) < tE(x) No permitido; reiniciar T
Otro caso Permitido
Para escritura: escribir(x)
t(T) < tL(x) No permitido; reinicia T
T(T) < tE(x) No permitido; reinicia T (*)
Otro caso Permitido
(*) Variante sin reiniciar
Control de Concurrencia
Comparativa de Técnicas
Características del Sistema de Información:
– Complejidad
– Tipo de información
– Cantidad de usuarios/procesos – Cantidad de datos compartidos