Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Concurrencia
Concurrencia
Concurrencia
• Aumenta la productividad por la mejor utilización
de los recursos y produce que el tiempo de espera
Diccionario Datos
de los usuarios se reduzca en promedio.
Proc. Consultas
• Una transacción individual producirá un estado
Integridad correcto en la BD si se ejecuta de forma aislada
Seguridad
Problemas
El DBA
• Cuando se ejecutan transacciones de manera
El SMBD
concurrente puede haber interferencias entre ellas
Manejo de Memoria que produzcan resultados no correctos, debido a
que no se cumple completamente la propiedad de
Restauración
aislamiento
Concurrencia
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
• Actualización perdida
El DBA
T1 Tiempo T2 X
El SMBD
1. Ambas
T1 FIND X 100 transacciones
Manejo de Memoria
FIND X T2 100 guardan su copia
Restauración T3 X = X+100 100 de X
2. T1 y T2 realizan
X=X-10 T4 100 modificaciones
Concurrencia
Concurrencia
T5 UPDATE X 200
200 diferentes en X
Diccionario Datos UPDATE X T6 90
90 3. T2 actualiza su
T7 COMMIT 90 valor en
Proc. Consultas COMMIT T8 90 memoria
principal
Integridad 4. T2 actualiza y se
pierde la
Seguridad actualizacion de
T1
• Dependencia no confirmada
El DBA
T1 Tiempo T2 X
El SMBD
1. T2 actualiza X a
T1 FIND X 100 200
Manejo de Memoria
T2 X = X+100 100 2. T1 lee el nuevo
Restauración T3 UPDATE X 200
100 valor de X
3. T2 hace rollback
FIND X T4 200 por lo que la
Concurrencia
Concurrencia
X=X-10 T5 200 actualización se
Diccionario Datos T6 ROLLBACK 100
90 deshace
UPDATE X T7 90
190 4. T1 continua
Proc. Consultas COMMIT T8 190 trabajando con
el valor
Integridad actualizado por
lo que el nuevo
Seguridad valor de X es
incorrecto
Integridad
Seguridad
El DBA
• Dadas las siguientes transacciones
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Manejo de Memoria
Restauración
Concurrencia
Concurrencia
Diccionario Datos
Proc. Consultas
– Cada transacción se ejecuta completamente
Integridad
antes de la siguiente.
Seguridad
– Para un conjunto de n transacciones hay n!
planificaciones secuenciales
Concurrencia
Concurrencia
Planificación serializable
Diccionario Datos
– Es una planificación concurrente, equivalente
Proc. Consultas
a una secuencial
Integridad
Seguridad
Restauración
Concurrencia
Concurrencia
Diccionario Datos
Planificaciones
Proc. Consultas serializables
Integridad
Seguridad Planificaciones
secuenciales
Manejo de Memoria
Nivel de Lectura sucia Lectura Actualización
aislamiento irrepetible fantasma
Restauración
READ Si Si Si
UNCOMMITED
Concurrencia
Concurrencia
READ No Si Si
Diccionario Datos COMMITED
Proc. Consultas
REPEATABLE No No Si
READ
Integridad SERIALIZABLE No No No
Seguridad
Integridad
Seguridad
Seguridad
Manejo de Memoria
Se dice entonces que dos
instrucciones Ii e Ij están en conflicto
Restauración
si son de distintas transacciones,
Concurrencia
Concurrencia
operan sobre el mismo elemento de
datos, y al menos una de ellas
Diccionario Datos actualiza dicho dato.
Proc. Consultas
Integridad
Seguridad
Integridad
Seguridad
El DBA • Ejemplo
Y
El SMBD T1 T2 T3
FIND(Z) T1 T2
Manejo de Memoria
FIND(Y) X
UPDATE(Y) Y, Z
Restauración FIND(Y)
FIND(Z)
Y T3
Concurrencia
Concurrencia FIND(X)
UPDATE(X)
Diccionario Datos UPDATE(Y)
UPDATE(Z)
Proc. Consultas FIND(X)
FIND(Y)
Integridad UPDATE(Y) Hay un ciclo -> no es
UPDATE(X) serializable
Seguridad
Concurrencia
– Validación Optimistas
Concurrencia
Diccionario Datos
– Pesimistas: Se garantiza la seriabilidad antes
Proc. Consultas de la ejecución
Integridad – Optimistas: Se ejecuta y luego se verifica si la
ejecución es serializable
Seguridad
Restauración R Ri
Concurrencia
Concurrencia
B
Diccionario Datos Ti: XFIND(R)
Proc. Consultas
Manejador de
Integridad concurrencia
Seguridad
Tj, …Tn
Cola de espera
Área de
Restauración R Ri trabajo de Ts
Concurrencia
Concurrencia
B
Diccionario Datos Ti: SFIND(R)
Proc. Consultas Ts: SFIND(R)
Manejador de
Integridad concurrencia
Seguridad
Tj, …Tn
Cola de espera Bloqueo Exclusivo
Marzo 2012 Administración de Base de Datos 26
Técnicas de control de
concurrencia
ACC1 = 40 ACC2 = 50 ACC3 = 30
El DBA Transacción 1 Tiempo Transacción 2
SFIND ACC1 1
El SMBD SUM = SUM + ACC1 (40)
Restauración
3
Restauración
3 SFIND ACC3
XUPDXACC3:
Concurrencia ACC3 = ACC3 – 10
4 SFIND ACC1
Diccionario Datos
8
Interbloqueo
Área de
Restauración R Ri trabajo de Ts
Concurrencia
Concurrencia
B
Diccionario Datos Ti: UFIND(R)
Proc. Consultas Ts: SFIND(R)
Manejador de
Integridad concurrencia
To, …Tq
Seguridad
Tj, …Tn
Cola de espera Bloqueo
de actualización Cola de espera Bloqueo Exclusivo
El SMBD SFIND R 1
COPY R.F INTO A.TEMP
Manejo de Memoria
2 SFIND R
COPY R.F INTO B.TEMP
Restauración
XUPD R 3
Concurrencia Wait
Wait 4 XUPD R
Diccionario Datos wait wait
wait wait
Proc. Consultas
wait 5 wait
Integridad
wait 6 wait
Seguridad wait
Interbloqueo
El SMBD UFIND R 1
COPY R.F INTO A.TEMP
Manejo de Memoria
2 UFIND R
Wait
Restauración
UPDX R 3 Wait
Concurrencia REPLACE R.F
By ATEMP +1
Diccionario Datos COMMIT 4 REINICIA
Copy R.F into B.temp
UPD R:
Proc. Consultas
Replace R.F
By B.temp + 1
Integridad
5 COMMIT
Seguridad 6
Concurrencia
Concurrencia SFIND (R)
Diccionario Datos
XUPDATE (R)
Proc. Consultas
UFIND (R)
Integridad
Concurrencia
Concurrencia
U No Si No
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
X=X – TEMP
Restauración
XUPDATE X
(wait)
Concurrencia
Concurrencia RELEASE(X) ¿Qué pasa si T1 hace
SFIND Y Rollback
Diccionario Datos XUPDATE X
RELEASE X
Proc. Consultas
Y = Y + 50
Integridad XUPDATE Y
RELEASE Y Dependencia no
Seguridad SFIND Y confirmada
Y=Y+2
XUPDATE Y
(wait)
Marzo 2012 Administración de Base de Datos 34
Técnicas de control de
concurrencia
Seguridad
t1 t2 t3
El DBA • Protocolos
– PXC: Protocolo Exclusivo con bloqueo a 2 fases
El SMBD
– PSC: Protocolo Compartico con bloqueo a 2
Manejo de Memoria
fases
Restauración – PUC: Protocolo de actualización con bloqueo a
2 fases
Concurrencia
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Proc. Consultas
• Los bloqueos pueden ser
Integridad
– prevenidos o
Seguridad – detectados.
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Proc. Consultas
Integridad
Seguridad
Proc. Consultas
Integridad
Seguridad
Seguridad
Seguridad
Proc. Consultas
Integridad
Seguridad
El DBA • Ejercicio
El SMBD
• Control de Concurrencia con marcas de
Manejo de Memoria
tiempo
• Control de Concurrencia Optimista
Restauración
(Validación)
Concurrencia
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
El SMBD 3 FIND Z
4 FIND A
5 FIND B
Manejo de Memoria
6 FIND X
7 UPDATE X: X + 20
Restauración 8 UPDATE Z: Z - 20
9 UPDATE Y: 80 FIND Z
Concurrencia
Concurrencia 10 UPDATE A: A + B
11 FIND X
protocolo 22
PUC
21 UPDATE A: A - 10
COMMIT
El SMBD 3 UFIND Z
4 UFIND A
5 UFIND B
Manejo de Memoria
6 UFIND X
7 XUPDATE X: X + 20 wait
Restauración 8 XUPDATE Z: Z - 20 wait
9 XUPDATE Y: 80
10 XUPDATE A: A + B wait
Concurrencia
Concurrencia UFIND X
11 wait wait
Diccionario Datos 12 COMMIT wait
UFIND Y
13 wait
Proc. Consultas UFIND Z
14 XUPDATE Z: Z + 70
15 XUPDATE X: X -30
Integridad
16 COMMIT
17 UFIND Y
Seguridad 18 ROLLBACK
19 XUPDATE Y: Y + Z
20 UFIND A
21 XUPDATE A: A - 10
22 COMMIT
Marzo 2012 Administración de Base de Datos 50
Ejercicio
El DBA
• Dada la ejecución de las siguientes transacciones A y B,
El SMBD
ejecute la planificación usando:
1. Utilizando el protocolo PXC
Manejo de Memoria 2. Utilizando el protocolo PSC
3. PUC si se actualiza y PSC si
Restauración
no se va a actualizar
Concurrencia
Concurrencia
4. En el caso 2 use el algoritmo
Diccionario Datos
Wait-die para la prevención de
Proc. Consultas Interbloqueo MT(A)<MT(B) y
2 unidades de tiempo para
Integridad recomenzar la transacción
Seguridad
Concurrencia
Concurrencia
b) Si MT(Ti) < UMAX(X)
Diccionario Datos entonces se intenta escribir un valor de X
Proc. Consultas
obsoleto. Se rechaza la transacción y se
retrocede.
Integridad
Integridad
Seguridad
Seguridad
El DBA Conclusiones
– La idea del control optimista es hacer
El SMBD
todas las comprobaciones
Manejo de Memoria inmediatamente antes de la escritura.
Restauración
– Por lo tanto la ejecución de una
Concurrencia
Concurrencia transacción tiene un costo mínimo hasta
Diccionario Datos alcanzar la fase de validación, donde la
mayoría serán validas si son en su
Proc. Consultas
mayoría de solo lectura, en caso contrario
Integridad esta técnica no funciona bien.
Seguridad
El DBA
• Dada la ejecución de las siguientes transacciones A y B,
El SMBD
ejecute la planificación usando:
Proc. Consultas
Integridad
Seguridad
El DBA
Dato Fmax Umax
El SMBD
X
Manejo de Memoria
Y
Restauración
Concurrencia Z
Diccionario Datos
W
Proc. Consultas
Integridad
Seguridad