ABDConcurrencia
-
Upload
mercy-ospina -
Category
Documents
-
view
212 -
download
0
description
Transcript of ABDConcurrencia
Administración de Base de Datos
Concurrencia
Prof Mercy Ospina Torres [email protected] Renny A. Hernandez
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 2
El SMBD
Manejo de Memoria
Restauración
Contenido
Marzo 2012
• Qué es la concurrencia en BD• Problemas que ocasiona la concurrencia• Planificación de transacciones
– Planificación serial o secuencial– Precedencia– Seriabilidad– Serialización por conflicto
• Técnicas de control de concurrencia– Pesimistas
• Bloqueos• Marcas de tiempo
– Optimistas
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 3
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Marzo 2012
¿Qué es la concurrencia en BD?
• Coordinación de la ejecución simultanea de transacciones en un SBD que soporta multiprocesamiento
Ventajas
• Aumenta la productividad por la mejor utilización de los recursos y produce que el tiempo de espera de los usuarios se reduzca en promedio.
• Una transacción individual producirá un estado correcto en la BD si se ejecuta de forma aislada
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 4
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Marzo 2012
Problemas
• Cuando se ejecutan transacciones de manera concurrente puede haber interferencias entre ellas que produzcan resultados no correctos, debido a que no se cumple completamente la propiedad de aislamiento
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 5
El SMBD
Manejo de Memoria
Restauración
Problemas
Marzo 2012
• Actualización perdida
Concurrencia
T1 Tiempo T2 X
T1 FIND X 100
FIND X T2 100
T3 X = X+100 100
X=X-10 T4 100
T5 UPDATE X 200UPDATE X T6 90
T7 COMMIT 90COMMIT T8 90
1. Ambas transacciones guardan su copia de X
2. T1 y T2 realizan modificaciones diferentes en X
3. T2 actualiza su valor en memoria principal
4. T2 actualiza y se pierde la actualizacion de T1
20090
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 6
El SMBD
Manejo de Memoria
Restauración
Problemas
Marzo 2012
• Dependencia no confirmada
Concurrencia
T1 Tiempo T2 X
T1 FIND X 100
T2 X = X+100 100
T3 UPDATE X 100
FIND X T4 200
X=X-10 T5 200T6 ROLLBACK 90
UPDATE X T7 90COMMIT T8 190
1. T2 actualiza X a 200
2. T1 lee el nuevo valor de X
3. T2 hace rollback por lo que la actualización se deshace
4. T1 continua trabajando con el valor actualizado por lo que el nuevo valor de X es incorrecto
200
100190
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 7
El SMBD
Manejo de Memoria
Restauración
Problemas
Marzo 2012
• Otros problemas– Suma incorrecta: Si una transacción está
calculando una suma sobre varios registros , mientras otras transacciones están actualizando algunos de estos registros , la función suma puede tomar algunos valores antes de que sean actualizados y otros después de ser actualizados .
– Lectura irrepetible: En dos lecturas sucesivas de un elemento, la transacción Ti recibe respuestas distintas.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 8
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Para n transacciones T1, T2, .. Tn, una planificación:– Representa el orden cronológico en el que se
ejecutan las instrucciones de dichas transacciones en el sistema.
– La secuencia debe conservar el orden dentro de cada transacción individual.
• Una planificación puede ser:– Secuencial (o serial)
– Concurrente
• Serializable
• No serializable
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 9
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Dadas las siguientes transacciones
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 10
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Planificaciones secuenciales
– Cada transacción se ejecuta completamente antes de la siguiente.
– Para un conjunto de n transacciones hay n! planificaciones secuenciales
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 11
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Pero se pueden definir un número m>>n! de planificaciones concurrentes
Concurrencia
T1 T2FIND XX = X – 50
FIND XTEMP = A*0,1
UPDATE XFIND Y
A=A – TEMPUPDATE AFIND Y
Y = Y + 50UPDATE Y
Y = Y + TEMUPDATE Y
Planificaciones concurrentes
Planificaciones secuenciales
Planificaciones
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 12
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Para que una planificación concurrente sea correcta – Debe tener el mismo efecto que una
planificación secuencial
– Es una planificación concurrente, equivalente a una secuencial
Concurrencia Planificación serializable
ACID
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 13
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
Clasificación de Planificaciones
Concurrencia
Planificaciones secuenciales
Planificaciones concurrentes
Planificaciones serializables
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 14
El SMBD
Manejo de Memoria
Restauración
Niveles de aislamiento
Marzo 2012
• Determina el tipo de problema que el sistema puede tolerar entre transacciones
Concurrencia
Nivel de aislamiento
Lectura sucia Lectura irrepetible
Actualización fantasma
READ UNCOMMITED
Si Si Si
READ COMMITED
No Si Si
REPEATABLE READ
No No Si
SERIALIZABLE No No No
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 15
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• ¿Cómo saber si una planificación es serializable?– Precedencia: Se tiene que una transacción TA
precede a una transacción TB si TB ve un dato que TA modificó o si TA ve un dato que TB modificará y se denota TA TB.
– Seriabilidad: Proceso de determinar que una planificación concurrente es equivalente a una secuencial, es decir si TA TB o TB TA
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 16
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Serialización por conflictos– Se tienen dos instrucciones Ii e Ij,
pertenecientes a las transacciones Ti y Tj respectivamente (i ≠ j)
– Si Ii e Ij se refieren a distintos elementos de datos no están en conflicto y pueden ir en cualquier orden
– Si Ii e Ij se refieren al mismo elemento, entonces el orden es importante y se deben considerar cuatro casos:
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 17
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Serialización por conflictos– Casos
a) Ii = FIND (Q), Ij= FIND (Q): El orden de Ii e Ij no importa puesto que leen el mismo valor de Q.
b) Ii= FIND(Q), Ij = UPDATE (Q): Si Ii esta antes que Ij, entonces Ti lee un valor que Tj modificará (Ti Tj) en caso contrario Ti lee un valor que Tj modificó (Tj Ti).
c) Ij = FIND (Q), Ii = UPDATE (Q): Igual al caso anterior.
d) Ii = UPDATE (Q), Ij = UPDATE (Q):No afecta ni a Ti ni a Tj, sin embargo el valor que obtendrá la siguiente instrucción FIND (Q) si se ve afectado.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 18
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Serialización por conflictos
Concurrencia
Se dice entonces que dos instrucciones Ii e Ij están en conflicto si son de distintas transacciones, operan sobre el mismo elemento de datos, y al menos una de ellas actualiza dicho dato.
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 19
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Grafo de precedencia– Determina si una planificación es serializable
por conflicto– Cada transacción es un nodo– Los arcos determinan la precedencia,
determinada por los conflictos definidos antes– Si existe un ciclo, la planificación no es
serializable
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 20
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Algoritmo para hacer el grafo de precedenciaa) Cada vez que Ti ejecute UPDATE(Q) antes de
que Tj ejecute FIND(Q) crear un arco de Ti a Tj (Ti Tj).
b) Cada vez que Ti ejecute UPDATE(Q) después de que Tj ejecute FIND(Q) crear un arco de Tj a Ti (Tj Ti).
c) Cada vez que Ti ejecute UPDATE(Q) antes de que Tj ejecute UPDATE(Q) crear un arco de Ti a Tj, (Ti Tj).
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 21
El SMBD
Manejo de Memoria
Restauración
Planificación de transacciones
Marzo 2012
• Ejemplo
Concurrencia
T1 T2
T3
T1 T2 T3FIND(Z)
FIND(Y) UPDATE(Y) FIND(Y)
FIND(Z)FIND(X) UPDATE(X)
UPDATE(Y) UPDATE(Z)FIND(X)
FIND(Y) UPDATE(Y)
UPDATE(X)
Y
Y, Z
Y
X
Hay un ciclo -> no es serializable
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 22
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Su objetivo es garantizar que la ejecución de un conjunto de transacciones sea serializable– Bloqueos– Marcas de tiempo– Validación
– Pesimistas: Se garantiza la seriabilidad antes de la ejecución
– Optimistas: Se ejecuta y luego se verifica si la ejecución es serializable
Concurrencia
Pesimistas
Optimistas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 23
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Bloqueo: técnica que regula el acceso concurrente a objetos compartidos (buffer de datos)– Granularidad: pueden aplicarse a diferentes
unidades de dato
ConcurrenciaBase de
datos
Tabla
Registro
Campo
Grano mas finoMayor concurrenciaMayor posibilidades de interbloqueoMas costos de manejo de concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 24
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Tipos de Bloqueo– Bloqueo exclusivo (Protocolo: PX)
ConcurrenciaB
R
Memoria principal
Manejador de concurrencia
Ti: XFIND(R)
Área de trabajo de Ti
Ri
Cola de espera
Tj, …Tn
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 25
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
Transacción 1 Tiempo Transacción 2
XFIND(R) COPY R.F INTO ATEMP
1
2 XFIND R
UPDATE R:REPLACE R.FBY ATEMP + 1
3 wait
XRELEASE R 4
5 (reinicia XFIND R)COPY R.F INTO BTEMP
6 UPDATE R:REPLACE R.F BY 2*BTEMP
7 XRELEASE R
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 26
El SMBD
Manejo de Memoria
Restauración
• Tipos de Bloqueo– Bloqueo Compartido (Protocolo: PS)
Área de trabajo de Ts
Ts: SFIND(R)
Técnicas de control de concurrencia
Marzo 2012
ConcurrenciaB
R
Memoria principal
Manejador de concurrencia
Ti: SFIND(R)
Área de trabajo de Ti
Ri
Cola de espera Bloqueo Exclusivo
Tj, …Tn
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 27
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
ACC1 = 40Transacción 1
ACC2 = 50Tiempo
ACC3 = 30Transacción 2
SFIND ACC1SUM = SUM + ACC1 (40)
1
SFIND ACC2SUM = SUM + ACC2 (90)
2
3
4 XFIND ACC3UPD ACC3:ACC3 = ACC3 – 10
SFIND ACC3WAIT
5
6 RELEASE ACC3SFIND ACC1
7 COMMIT
SUM = SUM + ACC3 (110) 8
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 28
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
ACC1 = 40Transacción 1
ACC2 = 50Tiempo
ACC3 = 30Transacción 2
SFIND ACC1SUM = SUM + ACC1
1
SFIND ACC2SUM = SUM + ACC2
2
3 SFIND ACC3XUPDXACC3:ACC3 = ACC3 – 10
4 SFIND ACC1
5 XUPD ACC1wait
SFIND ACC3Wait
6 wait
wait 7 wait
8Interbloqueo
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 29
El SMBD
Manejo de Memoria
Restauración
• Tipos de Bloqueo– Bloqueo de Actualización (Protocolo: PU)
Área de trabajo de Ts
Ts: SFIND(R)
Técnicas de control de concurrencia
Marzo 2012
ConcurrenciaB
R
Memoria principal
Manejador de concurrencia
Ti: UFIND(R)
Área de trabajo de Ti
Ri
Cola de espera Bloqueo Exclusivo
Tj, …TnCola de espera Bloqueo de actualización
To, …Tq
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 30
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
Transacción 1 Tiempo Transacción 2
SFIND RCOPY R.F INTO A.TEMP
1
2 SFIND RCOPY R.F INTO B.TEMP
XUPD RWait
3
Waitwaitwait
4 XUPD Rwaitwait
wait 5 wait
waitwait
6 wait
Interbloqueo
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 31
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
Transacción 1 Tiempo Transacción 2
UFIND RCOPY R.F INTO A.TEMP
1
2 UFIND RWait
UPDX RREPLACE R.F By ATEMP +1
3 Wait
COMMIT 4 REINICIACopy R.F into B.tempUPD R:Replace R.F By B.temp + 1
5 COMMIT
6
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 32
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Conversión de bloqueos:– Una transacción que ya posee un bloqueo de
un tipo puede, bajo ciertas condiciones, convertir su bloqueo a otro
SFIND (R)
UFIND (R)
XUPDATE (R)
Promoción: Convertir un bloqueo a otro mas restrictivo
Cualquier transacción que intente actualizar un registro debe promover el bloqueo a exclusivo (si no lo tiene)
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 33
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Matriz de compatibilidad de bloqueos
Concurrencia
T1\T2 X S U
X No No No
S No Si Si
U No Si No
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 34
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Ejemplo T1 T2SFIND XX = X – 50
SFIND XTEMP = X*0,1
XUPDATE X
X=X – TEMP
RELEASE(X)
XUPDATE X (wait)
SFIND YXUPDATE X
RELEASE XY = Y + 50
XUPDATE Y
RELEASE YSFIND YY = Y + 2XUPDATE Y (wait)
¿Qué pasa si T1 hace Rollback
Dependencia no confirmada
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 35
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Protocolo de bloqueo a dos fases– En los protocolos anteriores, si se libera un
dato que es actualizado, antes de que la transacción termine, un ROLLBACK puede producir una “dependencia no confirmada”
– Teorema: Si todas las transacciones siguen las siguientes reglas cumplen el bloqueo a 2 fases
a) Antes de operar sobre cualquier elemento de datos la transacción debe adquirir un bloqueo sobre este dato.
b) Después de liberar un bloqueo, la transacción no adquiere ningún otro bloqueo.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 36
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Protocolo de bloqueo a dos fases– Fase de crecimiento: la transacción adquiere
los bloqueos– Fase de decrecimiento: la transacción libera los
bloqueos
Concurrencia
T. activa
Fase crecimiento
Fase decrecimiento
t1 t2 t3
T1 T2 T3
Orden de precedencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 37
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Protocolos– PXC: Protocolo Exclusivo con bloqueo a 2 fases– PSC: Protocolo Compartico con bloqueo a 2
fases– PUC: Protocolo de actualización con bloqueo a
2 fasesConcurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 38
El SMBD
Manejo de Memoria
Restauración
Manejo de Interbloqueos
Marzo 2012
• Interbloqueo: Un sistema está en un estado de interbloqueo si para cada transacción Ti en un conjunto de dos o más transacciones, espera por la liberación de un recurso que esta bloqueado por alguna otra transacción Tj (i ¹ j).
• Los bloqueos pueden ser – prevenidos o – detectados.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 39
El SMBD
Manejo de Memoria
Restauración
Prevención de Interbloqueos
Marzo 2012
• Planificación de transacciones• Rechazo de requerimientos• Retroceso de la transacción (rollback)
– Con marcas de tiempo– Sin marcas de tiempo
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 40
El SMBD
Manejo de Memoria
Restauración
Prevención de Interbloqueos
Marzo 2012
• Planificación de transacciones:– Se asegura que dos transacciones no serán
ejecutadas concurrentemente si sus requerimientos de datos están en conflicto.
– Exige que cada transacción bloquee todos sus elementos de datos en un paso (de manera atómica), antes de su ejecución. Ésto conlleva a dos inconvenientes principales:
• Es difícil predecir, antes de que comience la transacción, cuáles elementos de datos deben bloquearse.
• La utilización de elementos puede ser muy baja, ya que muchos pueden estar bloqueados pero sin usar.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 41
El SMBD
Manejo de Memoria
Restauración
Prevención de Interbloqueos
Marzo 2012
• Rechazo de Requerimientos– Implica rechazar cualquier requerimiento de
bloqueo, si al ser aceptado genera interbloqueo.
– Se implementa un grafo de espera, si un requerimiento produce un ciclo, este requerimiento se descarta y se retrocede la transacción que lo genero total o parcialmente.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 42
El SMBD
Manejo de Memoria
Restauración
Prevención de Interbloqueos
Marzo 2012
• Retroceso de TransaccionesEsta técnica requiere que alguna de las transacciones implicadas en un bloqueo deba hacer ROLLBACK y ser reiniciada. Existen dos enfoques:
– Con marcas de tiempo– Sin marcas de tiempoConcurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 43
El SMBD
Manejo de Memoria
Restauración
Prevencion de Interbloqueos
Marzo 2012
• Retroceso con marcas de tiempo– Una marca de tiempo es un identificador
unívoco creado por el SMDB para identificar el tiempo de inicio relativo de una transacción.
– Pueden generarse
• Utilizando el valor del reloj del sistema en el momento de iniciarse la transacción o
• Incrementando un contador lógico cada vez que se inicia una nueva transacción
Siendo MT(Ti) la marca de tiempo de la transacción Ti y MT(Tj) la Marca de tiempo de la transacción Tj
Si MT(Ti) < MT(Tj) entonces Tj es más joven que Ti
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 44
El SMBD
Manejo de Memoria
Restauración
Prevencion de Interbloqueos
Marzo 2012
• Retroceso con marcas de tiempo– Si Ti requiere un elemento de datos que esta
bloqueado por Tj de manera conflictiva 1. Wait-Die
Si M(Ti) < MT(Tj) entonces #Tj es más joven que TiTi espera.
Sino Ti Muere (RollBack) y se reinicia posteriormente
2. Wound-WaitSi M(Ti) < MT(Tj) entonces #Tj es más joven que Ti
Ti hiere a Tj #Ti obliga a Tj a abortar.Tj muere (RollBack) y se reinicia posteriormente
Sino Ti espera
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 45
El SMBD
Manejo de Memoria
Restauración
Prevención de Interbloqueos
Marzo 2012
• Retroceso sin marcas de tiempo– No Espera
• Si una transacción no puede lograr un bloqueo, no espera y se reinicia tras un lapso de tiempo, sin comprobar si ha sucedido un interbloqueo.
– Espera Cautelosa• Surge debido a la presencia de ROLLBACKS
innecesarios en el esquema de No Espera• Si Ti solicita un recurso X bloqueado por Tj
Si Tj está en espera entonces Ti retrocede sino Ti espera
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 46
El SMBD
Manejo de Memoria
Restauración
Detección de Interbloqueos
Marzo 2012
• La forma más sencilla de implementarse es mediante un grafo de espera.– Se crea un nodo por transacción activa.– Se crea un arco dirigido, por cada transacción
Ti, que espera por un elemento que mantiene bloqueado de manera conflictiva Tj (Ti -> Tj)
– Cuando Tj libera los bloqueos los arcos hacia él desaparecen (Si se usa el 2PL)
– Existe un interbloqueo si y sólo si existe un ciclo en el grafo.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 47
El SMBD
Manejo de Memoria
Restauración
Detección de Interbloqueos
Marzo 2012
Recuperando el interbloqueo:• Selección de una víctima:
– Se debe tomar en cuenta:• Si existe más de un ciclo, en cuántos ciclos está
involucrada la transacción
– Cuántos elementos de datos ha actualizado la transacción.Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 48
El SMBD
Manejo de Memoria
Restauración
Próxima clase
Marzo 2012
• Ejercicio• Control de Concurrencia con marcas de
tiempo• Control de Concurrencia Optimista
(Validación)Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 49
El SMBD
Manejo de Memoria
Restauración
Ejemplo
Marzo 2012
TIEMPO T1 T2 T3 T4
1FIND X
2 FIND Y
3FIND Z
4 FIND A
5 FIND B
6 FIND X
7UPDATE X: X + 20
8UPDATE Z: Z - 20
9 UPDATE Y: 80 FIND Z
10 UPDATE A: A + B
11 FIND X
12COMMIT
13 FIND Y
14 UPDATE Z: Z + 70
15 UPDATE X: X -30
16 COMMIT
17 FIND Y
18 ROLLBACK
19 UPDATE Y: Y + Z
20 FIND A
21 UPDATE A: A - 10
22 COMMIT
Ejecute la planificación usando el protocolo PUC
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 50
El SMBD
Manejo de Memoria
Restauración
Ejemplo
Marzo 2012
TIEMPO T1 T2 T3 T4
1UFIND X
2 UFIND Y
3UFIND Z
4 UFIND A
5 UFIND B
6 UFIND X
7XUPDATE X: X + 20 wait
8XUPDATE Z: Z - 20 wait
9 XUPDATE Y: 80
10 XUPDATE A: A + B wait
11 UFIND Xwait wait
12COMMIT wait
13 UFIND Ywait
14 UFIND ZXUPDATE Z: Z + 70
15 XUPDATE X: X -30
16 COMMIT
17 UFIND Y
18 ROLLBACK
19 XUPDATE Y: Y + Z
20 UFIND A
21 XUPDATE A: A - 10
22 COMMIT
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 51
El SMBD
Manejo de Memoria
Restauración
Ejercicio
Marzo 2012
• Dada la ejecución de las siguientes transacciones A y B, ejecute la planificación usando:1. Utilizando el protocolo PXC2. Utilizando el protocolo PSC 3. PUC si se actualiza y PSC si
no se va a actualizar
4. En el caso 2 use el algoritmo Wait-die para la prevención de Interbloqueo MT(A)<MT(B) y 2 unidades de tiempo para recomenzar la transacción
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 52
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Ordenamiento por marcas de tiempo Timestamp Ordering (TO)– Asegura que todas las operaciones UPDATE y
FIND conflictivas se ejecuten en el orden de las marcas temporales.
– Las marcas temporales aseguran el orden secuencial de las transacciones
• UMAX(X): Denota la mayor marca temporal de todas las transacciones que ejecutaron Update(X) con éxito
• FMAX(X): Denota la mayor marca temporal de todas las transacciones que ejecutaron FIND(X) con éxito
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 53
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
• Sean Ti y Tj dos transacciones (i ≠ j) y X un recurso compartido
Si Ti ejecuta LEER(X)a) Si MT(Ti) < UMAX(X)
entonces Ti necesita leer un valor de X ya sobreescrito, por lo que se rechaza la operación y Ti retrocede.
b) Si MT(Ti) ³ UMAX(X) entonces se ejecuta la operación FIND(X) y se actualiza FMAX(X) al valor máximo entre FMAX(X) y MT(Ti)
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 54
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia
Marzo 2012
Si Ti ejecuta UPDATE(X)a) Si MT(Ti) < FMAX(X)
entonces el valor X de Ti se necesita previamente y el sistema asume que dicho valor no se puede producir nunca. Se rechaza la transacción y se retrocede.
b) Si MT(Ti) < UMAX(X) entonces se intenta escribir un valor de X obsoleto. Se rechaza la transacción y se retrocede.
c) En cualquier otro caso se ejecuta UPDATE y MT(Ti) se asigna a UMAX(X)
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 55
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia optimistas
Marzo 2012
• En las técnicas pesimistas se realiza una comprobación antes de que se ejecute cualquier operación. Esta comprobación conlleva un costo de procesamiento
• En las técnicas optimistas no se realiza comprobación alguna mientras la transacción se ejecuta.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 56
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia optimista
Marzo 2012
• Cada transacción Ti se ejecuta en tres fases:– Fase de lectura: Se leen los elementos de datos
necesarios y se escriben las actualizaciones en las variables locales
– Fase de validación: Ti comprueba si alguna de las actualizaciones viola la seriabilidad, para comprobar si no existe violación en la serialización.
– Fase de escritura: Si la validación es exitosa, entonces las actualizaciones efectivas se aplican a la base de datos y la transacción se compromete, de lo contrario se descartan.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 57
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia optimista
Marzo 2012
• La validación se realiza mediante las siguientes marcas de tiempo– Inicio(Ti)– Validación(Ti)– Fin(Ti)
• Se determina el orden secuencial a través de la técnica de ordenación por marcas temporales entonces toda planificación que se produzca debe ser equivalente a una planificación secuencial
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 58
El SMBD
Manejo de Memoria
Restauración
Técnicas de control optimista
Marzo 2012
• Para dos transacciones Ti y Tj, se conoce que validacion(Ti) < validacion(Tj), entonces: – Fin(Ti) < Fin(Tj)– El conjunto de todos los elementos de datos
que escribe Ti tiene intersección vacía con el conjunto de elementos de datos que lee Tj,
– Inicio(Tj) < Fin(Ti) < Validación(Tj). ¿Qué implica ésto? Que las transacciones no se
superpongan y se mantenga la secuencialidad.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 59
El SMBD
Manejo de Memoria
Restauración
Técnicas de control de concurrencia optimista
Marzo 2012
Conclusiones– La idea del control optimista es hacer
todas las comprobaciones inmediatamente antes de la escritura.
– Por lo tanto la ejecución de una
transacción tiene un costo mínimo hasta alcanzar la fase de validación, donde la mayoría serán validas si son en su mayoría de solo lectura, en caso contrario esta técnica no funciona bien.
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 60
El SMBD
Manejo de Memoria
Restauración
Ejercicio
Marzo 2012
• Dada la ejecución de las siguientes transacciones A y B, ejecute la planificación usando:
1. Utilizando la técnica de control de concurrencia con marcas de tiempo con MT(A)<MT(B)
2. Espere dos unidades de tiempo antes de recomenzar la transacción
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 61
El SMBD
Manejo de Memoria
Restauración
Ejercicio
Marzo 2012
Dato Fmax Umax
X
Y
Z
W
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 62
El SMBD
Manejo de Memoria
Restauración
Técnica de control de concurrencia multiversion
Marzo 2012
• Los esquemas anteriores aseguran la secuencialidad – Retrasando la operación (bloqueos)– Retrocediendo la transacción que realiza la
operación(MT)– Esto consume tiempo
• Se puede mejorar estos problemas si se mantienen copias anteriores de cada elemento de datos (versión)
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 63
El SMBD
Manejo de Memoria
Restauración
Técnica de control de concurrencia multiversion
Marzo 2012
• Cada operación de escritura UPDATE(R) crea una nueva versión de R
• Cuando se realiza una operación de escritura FIND(R) el gestor de concurrencia selecciona una de las versiones de R para leer
• El control de concurrencia debe asegurar que versión a leer asegure la secuencialidad
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 64
El SMBD
Manejo de Memoria
Restauración
Técnica de control de concurrencia multiversion
Marzo 2012
• Multiversión con marcas temporales– A cada transacción Ti se le asigna una Marca
Temporal MT(Ti)– A cada elemento de datos R se le asocia una
secuencia de versiones <R1, R2, …, Rm>– Cada versión tiene asociado 3 valores
• Contenido• UMAX• FMAX
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 65
El SMBD
Manejo de Memoria
Restauración
Técnica de control de concurrencia multiversion
Marzo 2012
• Sea Rk la version de R cuya UMAX es la mayor marca temporal menor o igual a MT(Ti)– MT(Ti) = 8
• Cuando una transacción Ti ejecuta una operación sobre R.– Si ejecuta FIND(R) se lee Rk– Si se ejecuta UPDATE(R)
• Si MT(Ti) < Fmax(Rk) Ti retrocede, • Si MT(Ti) = Fmax(Rk) se sobrescribe el contenido
de Rk• Si MT(Ti) > Fmax(Rk) se crea una nueva versión
de R con Umax =Fmax=MT(Ti)
R1 -> Umax=2R2 ->Umax =6R3 -> Umax =10