Está en la página 1de 61

Administración de Base de Datos

Concurrencia

Prof Mercy Ospina Torres


mercy.ospinat@gmail.com
Prof Renny A. Hernandez
renny.hernandez@ciens.ucv.ve
Contenido

El DBA • Qué es la concurrencia en BD


El SMBD
• Problemas que ocasiona la concurrencia
Manejo de Memoria
• Planificación de transacciones
– Planificación serial o secuencial
Restauración
– Precedencia
Concurrencia
Concurrencia – Seriabilidad
Diccionario Datos – Serialización por conflicto
Proc. Consultas • Técnicas de control de concurrencia
– Pesimistas
Integridad
• Bloqueos
Seguridad • Marcas de tiempo
– Optimistas
Marzo 2012 Administración de Base de Datos 2
Concurrencia

¿Qué es la concurrencia en BD?


El DBA
• Coordinación de la ejecución simultanea de
El SMBD
transacciones en un SBD que soporta
Manejo de Memoria multiprocesamiento
Restauración Ventajas

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

Marzo 2012 Administración de Base de Datos 3


Concurrencia

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

Marzo 2012 Administración de Base de Datos 4


Problemas

• 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

Marzo 2012 Administración de Base de Datos 5


Problemas

• 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

Marzo 2012 Administración de Base de Datos 6


Problemas

El DBA • Otros problemas


– Suma incorrecta: Si una transacción está
El SMBD
calculando una suma sobre varios registros ,
Manejo de Memoria mientras otras transacciones están actualizando
algunos de estos registros , la función suma puede
Restauración tomar algunos valores antes de que sean
actualizados y otros después de ser actualizados .
Concurrencia
Concurrencia
– Lectura irrepetible: En dos lecturas sucesivas de
Diccionario Datos un elemento, la transacción Ti recibe respuestas
Proc. Consultas
distintas.

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 7


Planificación de transacciones

El DBA • Para n transacciones T1, T2, .. Tn, una


planificación:
El SMBD
– Representa el orden cronológico en el que se
Manejo de Memoria
ejecutan las instrucciones de dichas transacciones
en el sistema.
Restauración
– La secuencia debe conservar el orden dentro de
Concurrencia
Concurrencia cada transacción individual.
Diccionario Datos
• Una planificación puede ser:
Proc. Consultas – Secuencial (o serial)
Integridad – Concurrente
Seguridad • Serializable
• No serializable

Marzo 2012 Administración de Base de Datos 8


Planificación de transacciones

El DBA
• Dadas las siguientes transacciones

El SMBD

Manejo de Memoria

Restauración

Concurrencia
Concurrencia

Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 9


Planificación de transacciones

El DBA • Planificaciones secuenciales


El SMBD

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

Marzo 2012 Administración de Base de Datos 10


Planificación de transacciones

El DBA • Pero se pueden definir un número m>>n!


de planificaciones concurrentes
El SMBD
T1 T2
Planificaciones
Manejo de Memoria
FIND X
X = X – 50
Restauración FIND X Planificaciones
TEMP = A*0,1 concurrentes
Concurrencia
Concurrencia UPDATE X
FIND Y
Diccionario Datos A=A – TEMP
UPDATE A
Proc. Consultas FIND Y
Y = Y + 50
Integridad UPDATE Y
Y = Y + TEM
Seguridad UPDATE Y
Planificaciones
secuenciales
Marzo 2012 Administración de Base de Datos 11
Planificación de transacciones

El DBA • Para que una planificación concurrente


sea correcta
El SMBD
– Debe tener el mismo efecto que una
Manejo de Memoria
planificación secuencial
Restauración

Concurrencia
Concurrencia
Planificación serializable
Diccionario Datos
– Es una planificación concurrente, equivalente
Proc. Consultas
a una secuencial
Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 12


Planificación de transacciones

El DBA Clasificación de Planificaciones


El SMBD Planificaciones
Manejo de Memoria concurrentes

Restauración

Concurrencia
Concurrencia

Diccionario Datos
Planificaciones
Proc. Consultas serializables
Integridad

Seguridad Planificaciones
secuenciales

Marzo 2012 Administración de Base de Datos 13


Niveles de aislamiento

El DBA • Determina el tipo de problema que el


sistema puede tolerar entre transacciones
El SMBD

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

Marzo 2012 Administración de Base de Datos 14


Planificación de transacciones

El DBA • ¿Cómo saber si una planificación es


serializable?
El SMBD
– Precedencia: Se tiene que una transacción TA
Manejo de Memoria
precede a una transacción TB si TB ve un dato
Restauración que TA modificó o si TA ve un dato que TB
modificará y se denota TA TB.
Concurrencia
Concurrencia
– Seriabilidad: Proceso de determinar que una
Diccionario Datos planificación concurrente es equivalente a una
Proc. Consultas secuencial, es decir si TA TB o TB TA

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 15


Planificación de transacciones

El DBA • Serialización por conflictos


El SMBD
– Se tienen dos instrucciones Ii e Ij,
pertenecientes a las transacciones Ti y Tj
Manejo de Memoria
respectivamente (i ≠ j)
Restauración – Si Ii e Ij se refieren a distintos elementos
de datos no están en conflicto y pueden ir
Concurrencia
Concurrencia
en cualquier orden
Diccionario Datos
– Si Ii e Ij se refieren al mismo elemento,
Proc. Consultas entonces el orden es importante y se deben
considerar cuatro casos:
Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 16


Planificación de transacciones

El DBA • Serialización por conflictos


El SMBD
– Casos
a) Ii = FIND (Q), Ij= FIND (Q):
Manejo de Memoria
El orden de Ii e Ij no importa puesto que leen el mismo
valor de Q.
Restauración
b) Ii= FIND(Q), Ij = UPDATE (Q):
Concurrencia
Concurrencia 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
Diccionario Datos modificó (Tj Ti).

Proc. Consultas c) Ij = FIND (Q), Ii = UPDATE (Q):


Igual al caso anterior.
Integridad
d) Ii = UPDATE (Q), Ij = UPDATE (Q):
Seguridad
No afecta ni a Ti ni a Tj, sin embargo el valor que obtendrá
la siguiente instrucción FIND (Q) si se ve afectado.

Marzo 2012 Administración de Base de Datos 17


Planificación de transacciones

El DBA • Serialización por conflictos


El SMBD

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

Marzo 2012 Administración de Base de Datos 18


Planificación de transacciones

El DBA • Grafo de precedencia


El SMBD
– Determina si una planificación es serializable
por conflicto
Manejo de Memoria
– Cada transacción es un nodo
Restauración – Los arcos determinan la precedencia,
determinada por los conflictos definidos antes
Concurrencia
Concurrencia
– Si existe un ciclo, la planificación no es
Diccionario Datos serializable
Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 19


Planificación de transacciones

El DBA • Algoritmo para hacer el grafo de


precedencia
El SMBD
a) Cada vez que Ti ejecute UPDATE(Q) antes de
Manejo de Memoria
que Tj ejecute FIND(Q) crear un arco de Ti a
Restauración Tj (Ti Tj).
b) Cada vez que Ti ejecute UPDATE(Q) después
Concurrencia
Concurrencia
de que Tj ejecute FIND(Q) crear un arco de Tj
Diccionario Datos a Ti (Tj Ti).
Proc. Consultas c) Cada vez que Ti ejecute UPDATE(Q) antes de
que Tj ejecute UPDATE(Q) crear un arco de Ti
Integridad
a Tj, (Ti Tj).
Seguridad

Marzo 2012 Administración de Base de Datos 20


Planificación de transacciones

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

Marzo 2012 Administración de Base de Datos 21


Técnicas de control de
concurrencia

El DBA • Su objetivo es garantizar que la ejecución


de un conjunto de transacciones sea
El SMBD
serializable
Manejo de Memoria
– Bloqueos
– Marcas de tiempo Pesimistas
Restauración

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

Marzo 2012 Administración de Base de Datos 22


Técnicas de control de
concurrencia

El DBA • Bloqueo: técnica que regula el acceso


concurrente a objetos compartidos (buffer
El SMBD
de datos)
Manejo de Memoria
– Granularidad: pueden aplicarse a diferentes
Restauración unidades de dato
Base de
Concurrencia
Concurrencia datos
Diccionario Datos Tabla
Proc. Consultas
Registro Grano mas fino
Integridad Mayor concurrencia
Mayor posibilidades de
Seguridad Campo interbloqueo
Mas costos de manejo
de concurrencia

Marzo 2012 Administración de Base de Datos 23


Técnicas de control de
concurrencia

El DBA • Tipos de Bloqueo


– Bloqueo exclusivo (Protocolo: PX)
El SMBD
Memoria principal Área de trabajo de Ti
Manejo de Memoria

Restauración R Ri

Concurrencia
Concurrencia
B
Diccionario Datos Ti: XFIND(R)
Proc. Consultas
Manejador de
Integridad concurrencia

Seguridad
Tj, …Tn
Cola de espera

Marzo 2012 Administración de Base de Datos 24


Técnicas de control de
concurrencia
Transacción 1 Tiempo Transacción 2
El DBA
XFIND(R) 1
COPY R.F INTO
El SMBD
ATEMP
Manejo de Memoria
2 XFIND R
Restauración UPDATE R: 3 wait
REPLACE R.F
Concurrencia BY ATEMP + 1
XRELEASE R 4
Diccionario Datos
5 (reinicia XFIND R)
Proc. Consultas COPY R.F INTO
BTEMP
Integridad
6 UPDATE R:
Seguridad REPLACE R.F
BY 2*BTEMP
7 XRELEASE R
Marzo 2012 Administración de Base de Datos 25
Técnicas de control de
concurrencia

El DBA • Tipos de Bloqueo


– Bloqueo Compartido (Protocolo: PS)
El SMBD
Memoria principal Área de trabajo de Ti
Manejo de Memoria

Á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)

Manejo de Memoria SFIND ACC2 2


SUM = SUM + ACC2 (90)

Restauración
3

Concurrencia 4 XFIND ACC3


UPD ACC3:
Diccionario Datos ACC3 = ACC3 – 10
SFIND ACC3 5
Proc. Consultas WAIT
6 RELEASE ACC3
Integridad SFIND ACC1
7 COMMIT
Seguridad

SUM = SUM + ACC3 8


(110)

Marzo 2012 Administración de Base de Datos 27


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

Manejo de Memoria SFIND ACC2 2


SUM = SUM + ACC2

Restauración
3 SFIND ACC3
XUPDXACC3:
Concurrencia ACC3 = ACC3 – 10
4 SFIND ACC1
Diccionario Datos

Proc. Consultas 5 XUPD ACC1


wait
Integridad SFIND ACC3 6 wait
Wait
Seguridad wait 7 wait

8
Interbloqueo

Marzo 2012 Administración de Base de Datos 28


Técnicas de control de
concurrencia

El DBA • Tipos de Bloqueo


– Bloqueo de Actualización (Protocolo: PU)
El SMBD
Memoria principal Área de trabajo de Ti
Manejo de Memoria

Á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

Marzo 2012 Administración de Base de Datos 29


Técnicas de control de
concurrencia

El DBA Transacción 1 Tiempo Transacción 2

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

Marzo 2012 Administración de Base de Datos 30


Técnicas de control de
concurrencia

El DBA Transacción 1 Tiempo Transacción 2

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

Marzo 2012 Administración de Base de Datos 31


Técnicas de control de
concurrencia

El DBA • Conversión de bloqueos:


– Una transacción que ya posee un bloqueo de un
El SMBD
tipo puede, bajo ciertas condiciones, convertir
Manejo de Memoria su bloqueo a otro
Promoción: Convertir un
Restauración bloqueo a otro mas restrictivo

Concurrencia
Concurrencia SFIND (R)
Diccionario Datos
XUPDATE (R)
Proc. Consultas
UFIND (R)
Integridad

Seguridad Cualquier transacción que intente actualizar un registro


debe promover el bloqueo a exclusivo (si no lo tiene)

Marzo 2012 Administración de Base de Datos 32


Técnicas de control de
concurrencia

El DBA • Matriz de compatibilidad de bloqueos


El SMBD
T1\T2 X S U
Manejo de Memoria
X No No No
Restauración S No Si Si

Concurrencia
Concurrencia
U No Si No

Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 33


Técnicas de control de
concurrencia
T1 T2
El DBA • Ejemplo SFIND X
X = X – 50
El SMBD SFIND X
TEMP = X*0,1
Manejo de Memoria XUPDATE X

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

El DBA • Protocolo de bloqueo a dos fases


– En los protocolos anteriores, si se libera un
El SMBD
dato que es actualizado, antes de que la
Manejo de Memoria transacción termine, un ROLLBACK puede
producir una “dependencia no confirmada”
Restauración
– Teorema: Si todas las transacciones siguen las
Concurrencia
Concurrencia siguientes reglas cumplen el bloqueo a 2 fases
Diccionario Datos
a) Antes de operar sobre cualquier elemento de
datos la transacción debe adquirir un bloqueo
Proc. Consultas sobre este dato.
b) Después de liberar un bloqueo, la transacción no
Integridad
adquiere ningún otro bloqueo.
Seguridad

Marzo 2012 Administración de Base de Datos 35


Técnicas de control de
concurrencia

El DBA • Protocolo de bloqueo a dos fases


– Fase de crecimiento: la transacción adquiere
El SMBD
los bloqueos
Manejo de Memoria
– Fase de decrecimiento: la transacción libera los
bloqueos
Restauración Orden de
precedencia
Concurrencia
Concurrencia Fase T1 T2 T3 Fase
crecimiento decrecimiento
Diccionario Datos

Proc. Consultas T. activa


Integridad

Seguridad
t1 t2 t3

Marzo 2012 Administración de Base de Datos 36


Técnicas de control de
concurrencia

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

Marzo 2012 Administración de Base de Datos 37


Manejo de Interbloqueos

El DBA • Interbloqueo: Un sistema está en un


estado de interbloqueo si para cada
El SMBD
transacción Ti en un conjunto de dos o
Manejo de Memoria
más transacciones, espera por la
Restauración liberación de un recurso que esta
Concurrencia
Concurrencia
bloqueado por alguna otra transacción Tj
(i  j).
Diccionario Datos

Proc. Consultas
• Los bloqueos pueden ser
Integridad
– prevenidos o
Seguridad – detectados.

Marzo 2012 Administración de Base de Datos 38


Prevención de Interbloqueos

El DBA • Planificación de transacciones


El SMBD
• Rechazo de requerimientos
Manejo de Memoria
• Retroceso de la transacción (rollback)
– Con marcas de tiempo
Restauración
– Sin marcas de tiempo
Concurrencia
Concurrencia

Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 39


Prevención de Interbloqueos

El DBA • Planificación de transacciones:


– Se asegura que dos transacciones no serán
El SMBD
ejecutadas concurrentemente si sus
Manejo de Memoria requerimientos de datos están en conflicto.
Restauración
– Exige que cada transacción bloquee todos sus
elementos de datos en un paso (de manera
Concurrencia
Concurrencia atómica), antes de su ejecución. Ésto conlleva
a dos inconvenientes principales:
Diccionario Datos
• Es difícil predecir, antes de que comience la
Proc. Consultas transacción, cuáles elementos de datos deben
bloquearse.
Integridad
• La utilización de elementos puede ser muy baja,
Seguridad ya que muchos pueden estar bloqueados pero sin
usar.

Marzo 2012 Administración de Base de Datos 40


Prevención de Interbloqueos

El DBA • Rechazo de Requerimientos


– Implica rechazar cualquier requerimiento de
El SMBD
bloqueo, si al ser aceptado genera
Manejo de Memoria interbloqueo.
Restauración
– Se implementa un grafo de espera, si un
requerimiento produce un ciclo, este
Concurrencia
Concurrencia requerimiento se descarta y se retrocede la
transacción que lo genero total o parcialmente.
Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 41


Prevención de Interbloqueos

El DBA • Retroceso de Transacciones


Esta técnica requiere que alguna de las
El SMBD
transacciones implicadas en un bloqueo deba
Manejo de Memoria hacer ROLLBACK y ser reiniciada. Existen dos
enfoques:
Restauración
– Con marcas de tiempo
Concurrencia
Concurrencia – Sin marcas de tiempo
Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 42


Prevencion de Interbloqueos

El DBA • Retroceso con marcas de tiempo


El SMBD
– Una marca de tiempo es un identificador
unívoco creado por el SMDB para identificar el
Manejo de Memoria
tiempo de inicio relativo de una transacción.
Restauración – Pueden generarse
Concurrencia
Concurrencia • Utilizando el valor del reloj del sistema en el
momento de iniciarse la transacción o
Diccionario Datos
• Incrementando un contador lógico cada vez que
Proc. Consultas se inicia una nueva transacción
Integridad Siendo MT(Ti) la marca de tiempo de la transacción Ti y MT(Tj)
la Marca de tiempo de la transacción Tj
Seguridad Si MT(Ti) < MT(Tj) entonces Tj es más joven que Ti

Marzo 2012 Administración de Base de Datos 43


Prevencion de Interbloqueos

El DBA • Retroceso con marcas de tiempo


– Si Ti requiere un elemento de datos que esta
El SMBD
bloqueado por Tj de manera conflictiva
Manejo de Memoria 1. Wait-Die
Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti
Restauración
Ti espera.
Concurrencia Sino
Concurrencia
Ti Muere (RollBack) y se reinicia posteriormente
Diccionario Datos 2. Wound-Wait
Proc. Consultas
Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti
Ti hiere a Tj #Ti obliga a Tj a abortar.
Integridad Tj muere (RollBack) y se reinicia posteriormente
Sino
Seguridad
Ti espera

Marzo 2012 Administración de Base de Datos 44


Prevención de Interbloqueos

El DBA • Retroceso sin marcas de tiempo


– No Espera
El SMBD
• Si una transacción no puede lograr un bloqueo,
Manejo de Memoria no espera y se reinicia tras un lapso de tiempo,
sin comprobar si ha sucedido un interbloqueo.
Restauración
– Espera Cautelosa
Concurrencia
Concurrencia • Surge debido a la presencia de ROLLBACKS
innecesarios en el esquema de No Espera
Diccionario Datos
• Si Ti solicita un recurso X bloqueado por Tj
Proc. Consultas Si Tj está en espera entonces Ti retrocede sino Ti
espera
Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 45


Detección de Interbloqueos

El DBA • La forma más sencilla de implementarse


es mediante un grafo de espera.
El SMBD
– Se crea un nodo por transacción activa.
Manejo de Memoria
– Se crea un arco dirigido, por cada transacción
Restauración Ti, que espera por un elemento que mantiene
bloqueado de manera conflictiva Tj (Ti -> Tj)
Concurrencia
Concurrencia
– Cuando Tj libera los bloqueos los arcos hacia él
Diccionario Datos desaparecen (Si se usa el 2PL)
Proc. Consultas – Existe un interbloqueo si y sólo si existe un
ciclo en el grafo.
Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 46


Detección de Interbloqueos

El DBA Recuperando el interbloqueo:


El SMBD
• Selección de una víctima:
– Se debe tomar en cuenta:
Manejo de Memoria
• Si existe más de un ciclo, en cuántos ciclos está
Restauración involucrada la transacción
– Cuántos elementos de datos ha actualizado la
Concurrencia
Concurrencia
transacción.
Diccionario Datos

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 47


Próxima clase

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

Marzo 2012 Administración de Base de Datos 48


Ejemplo
TIEMPO T1 T2 T3 T4
El DBA 1 FIND X
2 FIND Y

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

Diccionario Datos 12 COMMIT


13 FIND Y
14 UPDATE Z: Z + 70
Proc. Consultas
15 UPDATE X: X -30
16 COMMIT
Integridad 17 FIND Y
18 ROLLBACK
Seguridad 19 UPDATE Y: Y + Z

Ejecute la20planificación usando el FIND A

protocolo 22
PUC
21 UPDATE A: A - 10
COMMIT

Marzo 2012 Administración de Base de Datos 49


Ejemplo
TIEMPO T1 T2 T3 T4
El DBA 1 UFIND X
2 UFIND Y

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

Marzo 2012 Administración de Base de Datos 51


Técnicas de control de
concurrencia

El DBA • Ordenamiento por marcas de tiempo


Timestamp Ordering (TO)
El SMBD
– Asegura que todas las operaciones UPDATE y
Manejo de Memoria
FIND conflictivas se ejecuten en el orden de las
Restauración
marcas temporales.
– UMAX(X): Denota la mayor marca temporal de
Concurrencia
Concurrencia
todas las transacciones que ejecutaron
Diccionario Datos Update(X) con éxito
Proc. Consultas – FMAX(X): Denota la mayor marca temporal de
todas las transacciones que ejecutaron FIND(X)
Integridad
con éxito
Seguridad

Marzo 2012 Administración de Base de Datos 52


Técnicas de control de
concurrencia

El DBA • Sean Ti y Tj dos transacciones (i ≠ j) y X


un recurso compartido
El SMBD
Si Ti ejecuta LEER(X)
Manejo de Memoria
a) Si MT(Ti) < UMAX(X)
Restauración entonces Ti necesita leer un valor de X ya
sobreescrito, por lo que se rechaza la operación y
Concurrencia
Concurrencia Ti retrocede.
Diccionario Datos
b) Si MT(Ti)  UMAX(X)
Proc. Consultas
entonces se ejecuta la operación FIND(X) y se
Integridad actualiza FMAX(X) al valor máximo entre FMAX(X)
y MT(Ti)
Seguridad

Marzo 2012 Administración de Base de Datos 53


Técnicas de control de
concurrencia
Si Ti ejecuta UPDATE(X)
El DBA
a) Si MT(Ti) < FMAX(X)
El SMBD
entonces el valor X de Ti se necesita previamente
Manejo de Memoria y el sistema asume que dicho valor no se puede
producir nunca. Se rechaza la transacción y se
Restauración retrocede.

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

Seguridad c) En cualquier otro caso se ejecuta UPDATE y


MT(Ti) se asigna a UMAX(X)

Marzo 2012 Administración de Base de Datos 54


Técnicas de control de
concurrencia optimistas

El DBA • En las técnicas pesimistas se realiza una


comprobación antes de que se ejecute
El SMBD
cualquier operación. Esta comprobación
Manejo de Memoria
conlleva un costo de procesamiento
Restauración • En las técnicas optimistas no se realiza
Concurrencia
Concurrencia comprobación alguna mientras la
Diccionario Datos
transacción se ejecuta.
Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 55


Técnicas de control de
concurrencia optimista

El DBA • Cada transacción Ti se ejecuta en tres


fases:
El SMBD
– Fase de lectura: Se leen los elementos de datos
Manejo de Memoria necesarios y se escriben las actualizaciones en las
variables locales
Restauración
– Fase de validación: Ti comprueba si alguna de las
Concurrencia
Concurrencia actualizaciones viola la seriabilidad, para comprobar
si no existe violación en la serialización.
Diccionario Datos
– Fase de escritura: Si la validación es exitosa,
Proc. Consultas entonces las actualizaciones efectivas se aplican a la
base de datos y la transacción se compromete, de lo
Integridad
contrario se descartan.
Seguridad

Marzo 2012 Administración de Base de Datos 56


Técnicas de control de
concurrencia optimista

El DBA • La validación se realiza mediante las


siguientes marcas de tiempo
El SMBD
– Inicio(Ti)
Manejo de Memoria
– Validación(Ti)
Restauración – Fin(Ti)
Concurrencia
Concurrencia
• Se determina el orden secuencial a través de la
Diccionario Datos
técnica de ordenación por marcas temporales
Proc. Consultas entonces toda planificación que se produzca debe
ser equivalente a una planificación secuencial
Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 57


Técnicas de control optimista

El DBA • Para dos transacciones Ti y Tj, se conoce


que validacion(Ti) < validacion(Tj),
El SMBD
entonces:
Manejo de Memoria
– Fin(Ti) < Fin(Tj)
Restauración – El conjunto de todos los elementos de datos
que escribe Ti tiene intersección vacía con el
Concurrencia
Concurrencia
conjunto de elementos de datos que lee Tj,
Diccionario Datos – Inicio(Tj) < Fin(Ti) < Validación(Tj).
Proc. Consultas ¿Qué implica ésto?
Integridad
Que las transacciones no se superpongan y
se mantenga la secuencialidad.
Seguridad

Marzo 2012 Administración de Base de Datos 58


Técnicas de control de
concurrencia optimista

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

Marzo 2012 Administración de Base de Datos 59


Ejercicio

El DBA
• Dada la ejecución de las siguientes transacciones A y B,
El SMBD
ejecute la planificación usando:

Manejo de Memoria 1. Utilizando la técnica de


control de concurrencia con
Restauración marcas de tiempo con
MT(A)<MT(B)
Concurrencia 2. Espere dos unidades de
tiempo antes de recomenzar
Diccionario Datos la transacción

Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 60


Ejercicio

El DBA
Dato Fmax Umax
El SMBD
X
Manejo de Memoria

Y
Restauración

Concurrencia Z
Diccionario Datos
W
Proc. Consultas

Integridad

Seguridad

Marzo 2012 Administración de Base de Datos 61

También podría gustarte