Sei sulla pagina 1di 65

Administracin 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 El SMBD
Manejo de Memoria

Qu es la concurrencia en BD Problemas que ocasiona la concurrencia Planificacin de transacciones


Planificacin serial o secuencial Precedencia Seriabilidad Serializacin por conflicto

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Tcnicas de control de concurrencia


Pesimistas
Bloqueos Marcas de tiempo

Optimistas
Marzo 2012 Administracin de Base de Datos 2

Concurrencia
El DBA El SMBD
Manejo de Memoria

Qu es la concurrencia en BD?

Coordinacin de la ejecucin transacciones en un SBD multiprocesamiento


Ventajas

simultanea de que soporta

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Aumenta la productividad por la mejor utilizacin de los recursos y produce que el tiempo de espera de los usuarios se reduzca en promedio.
Una transaccin individual producir un estado correcto en la BD si se ejecuta de forma aislada

Marzo 2012

Administracin de Base de Datos

Concurrencia
El DBA El SMBD
Manejo de Memoria

Problemas

Restauracin

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 Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

Problemas
El DBA El SMBD
Manejo de Memoria

Actualizacin perdida
T1 FIND X X=X-10 Tiempo T1 T2 T3 T4 T5 T6 T7 T8 T2 FIND X X = X+100 UPDATE X X 100 100 100 100 200 200 90 90 90 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
5

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

UPDATE X
COMMIT

COMMIT

Marzo 2012

Administracin de Base de Datos

Problemas
El DBA El SMBD
Manejo de Memoria

Dependencia no confirmada
T1 Tiempo T1 T2 FIND X X=X-10 T3 T4 T5 T6 T7 T8 T2 FIND X X = X+100 UPDATE X X 100 100 1. T2 actualiza X a 200 2. T1 lee el nuevo valor de X 3. T2 hace rollback por lo que la actualizacin se deshace 4. T1 continua trabajando con el valor actualizado por lo que el nuevo valor de X es incorrecto
6

Restauracin

200 100
200 200 90 100 90 190 190

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

ROLLBACK

UPDATE X COMMIT

Marzo 2012

Administracin de Base de Datos

Problemas
El DBA El SMBD
Manejo de Memoria

Otros problemas
Suma incorrecta: Si una transaccin est calculando una suma sobre varios registros , mientras otras transacciones estn actualizando algunos de estos registros , la funcin suma puede tomar algunos valores antes de que sean actualizados y otros despus de ser actualizados .
Lectura irrepetible: En dos lecturas sucesivas de un elemento, la transaccin Ti recibe respuestas distintas.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Para n transacciones T1, T2, .. Tn, una planificacin:


Representa el orden cronolgico en el que se ejecutan las instrucciones de dichas transacciones en el sistema.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

La secuencia debe conservar el orden dentro de cada transaccin individual.

Una planificacin puede ser:


Secuencial (o serial)

Concurrente
Serializable No serializable

Marzo 2012

Administracin de Base de Datos

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Dadas las siguientes transacciones

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Planificaciones secuenciales

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Cada transaccin se ejecuta completamente antes de la siguiente. Para un conjunto de n transacciones hay n! planificaciones secuenciales
Administracin de Base de Datos 10

Marzo 2012

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Pero se pueden definir un nmero m>>n! de planificaciones concurrentes


T1 FIND X X = X 50 T2

Planificaciones
Planificaciones concurrentes

Restauracin

FIND X TEMP = A*0,1

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

UPDATE X FIND Y
A=A TEMP UPDATE A FIND Y Y = Y + 50 UPDATE Y Y = Y + TEM UPDATE Y

Planificaciones secuenciales
Marzo 2012 Administracin de Base de Datos 11

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Para que una planificacin concurrente sea correcta


Debe tener el mismo efecto que una planificacin secuencial

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Planificacin serializable
Es una planificacin concurrente, equivalente a una secuencial

Marzo 2012

Administracin de Base de Datos

12

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Clasificacin de Planificaciones
Planificaciones concurrentes

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Planificaciones serializables

Planificaciones secuenciales
Administracin de Base de Datos 13

Marzo 2012

Niveles de aislamiento
El DBA El SMBD
Manejo de Memoria

Determina el tipo de problema que el sistema puede tolerar entre transacciones


Nivel de aislamiento READ UNCOMMITED READ COMMITED REPEATABLE READ SERIALIZABLE Lectura sucia Si No No No Lectura irrepetible Si Si No No Actualizacin fantasma Si Si Si No

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

14

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Cmo saber si una planificacin es serializable?


Precedencia: Se tiene que una transaccin TA precede a una transaccin 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 planificacin concurrente es equivalente a una secuencial, es decir si TA TB o TB TA

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

15

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Serializacin 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 estn 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:

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

16

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Serializacin 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 instruccin FIND (Q) si se ve afectado.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

17

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Serializacin por conflictos


Se dice entonces que dos instrucciones Ii e Ij estn en conflicto si son de distintas transacciones, operan sobre el mismo elemento de datos, y al menos una de ellas actualiza dicho dato.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

18

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Grafo de precedencia
Determina si una planificacin es serializable por conflicto Cada transaccin es un nodo Los arcos determinan la precedencia, determinada por los conflictos definidos antes Si existe un ciclo, la planificacin no es serializable

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

19

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Algoritmo para hacer el grafo de precedencia


a) 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) despus 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).

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

20

Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria

Ejemplo
T1 T2 FIND(Z) FIND(Y) UPDATE(Y) T3

Y
T1

X
T3

T2

Y, Z
FIND(Y) FIND(Z)

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

FIND(X) UPDATE(X) UPDATE(Y) UPDATE(Z) FIND(X) FIND(Y) UPDATE(Y)

UPDATE(X)

Hay un ciclo -> no es serializable

Marzo 2012

Administracin de Base de Datos

21

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Su objetivo es garantizar que la ejecucin de un conjunto de transacciones sea serializable


Bloqueos Marcas de tiempo Validacin Pesimistas Optimistas

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Pesimistas: Se garantiza la seriabilidad antes de la ejecucin Optimistas: Se ejecuta y luego se verifica si la ejecucin es serializable

Marzo 2012

Administracin de Base de Datos

22

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Bloqueo: tcnica que regula el acceso concurrente a objetos compartidos (buffer de datos)
Granularidad: pueden aplicarse a diferentes unidades de dato
Base de datos Tabla Registro Grano mas fino Mayor concurrencia Mayor posibilidades de interbloqueo Mas costos de manejo de concurrencia
23

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Campo

Marzo 2012

Administracin de Base de Datos

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Tipos de Bloqueo
Bloqueo exclusivo (Protocolo: PX)
Memoria principal R rea de trabajo de Ti Ri

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

B
Ti: XFIND(R)
Manejador de concurrencia Tj, Tn Cola de espera

Marzo 2012

Administracin de Base de Datos

24

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Transaccin 1 XFIND(R) COPY R.F INTO ATEMP

Tiempo 1

Transaccin 2

2
Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

XFIND R wait

UPDATE R: REPLACE R.F BY ATEMP + 1 XRELEASE R

4 5 (reinicia XFIND R) COPY R.F INTO BTEMP UPDATE R: REPLACE R.F BY 2*BTEMP XRELEASE R
25

7
Marzo 2012 Administracin de Base de Datos

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Tipos de Bloqueo
Bloqueo Compartido (Protocolo: PS)
Memoria principal R rea de trabajo de Ti Ri
rea de trabajo de Ts

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

B
Ti: SFIND(R)
Ts: SFIND(R) Manejador de concurrencia Tj, Tn Cola de espera Bloqueo Exclusivo

Marzo 2012

Administracin de Base de Datos

26

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria
ACC1 = 40 Transaccin 1 SFIND ACC1 SUM = SUM + ACC1 (40) SFIND ACC2 SUM = SUM + ACC2 (90) ACC2 = 50 Tiempo 1 ACC3 = 30 Transaccin 2

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad


SFIND ACC3 WAIT

XFIND ACC3 UPD ACC3: ACC3 = ACC3 10

5 6 7 RELEASE ACC3 SFIND ACC1 COMMIT

Seguridad
SUM = SUM + ACC3 (110) Marzo 2012 8

Administracin de Base de Datos

27

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria
ACC1 = 40 Transaccin 1 SFIND ACC1 SUM = SUM + ACC1 SFIND ACC2 SUM = SUM + ACC2 ACC2 = 50 Tiempo 1 ACC3 = 30 Transaccin 2

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad


SFIND ACC3 Wait wait

SFIND ACC3 XUPDXACC3: ACC3 = ACC3 10 SFIND ACC1

5 6 7 8

XUPD ACC1 wait wait wait

Interbloqueo
28

Marzo 2012

Administracin de Base de Datos

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Tipos de Bloqueo
Bloqueo de Actualizacin (Protocolo: PU)
Memoria principal R rea de trabajo de Ti Ri
rea de trabajo de Ts

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

B
Ti: UFIND(R)
Ts: SFIND(R) Manejador de concurrencia To, Tq Cola de espera Bloqueo de actualizacin Tj, Tn Cola de espera Bloqueo Exclusivo
29

Marzo 2012

Administracin de Base de Datos

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria
Transaccin 1 SFIND R COPY R.F INTO A.TEMP Tiempo 1 Transaccin 2

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad


XUPD R Wait Wait wait wait wait wait wait 3 4

SFIND R COPY R.F INTO B.TEMP

XUPD R wait wait wait wait

5 6

Interbloqueo
Marzo 2012 Administracin de Base de Datos 30

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria
Transaccin 1 UFIND R COPY R.F INTO A.TEMP Tiempo 1 Transaccin 2

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad


5 6 UPDX R REPLACE R.F By ATEMP +1 COMMIT 3

UFIND R Wait Wait

REINICIA Copy R.F into B.temp UPD R: Replace R.F By B.temp + 1 COMMIT

Marzo 2012

Administracin de Base de Datos

31

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Conversin de bloqueos:
Una transaccin que ya posee un bloqueo de un tipo puede, bajo ciertas condiciones, convertir su bloqueo a otro
Promocin: Convertir un bloqueo a otro mas restrictivo

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

SFIND (R) XUPDATE (R) UFIND (R)


Cualquier transaccin que intente actualizar un registro debe promover el bloqueo a exclusivo (si no lo tiene)
Administracin de Base de Datos 32

Marzo 2012

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Matriz de compatibilidad de bloqueos


T1\T2 X S U X No No No S No Si Si U No Si No

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

33

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Ejemplo

T1 SFIND X X = X 50

T2

SFIND X TEMP = X*0,1 XUPDATE X X=X TEMP XUPDATE X (wait) XUPDATE X

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

RELEASE(X) SFIND Y

Qu pasa si T1 hace Rollback

RELEASE X
Y = Y + 50 XUPDATE Y RELEASE Y SFIND Y Y=Y+2 XUPDATE Y (wait)
Administracin de Base de Datos

Dependencia no confirmada

Marzo 2012

34

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Protocolo de bloqueo a dos fases


En los protocolos anteriores, si se libera un dato que es actualizado, antes de que la transaccin 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 transaccin debe adquirir un bloqueo sobre este dato. b) Despus de liberar un bloqueo, la transaccin no adquiere ningn otro bloqueo.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

35

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Protocolo de bloqueo a dos fases


Fase de crecimiento: la transaccin adquiere los bloqueos Fase de decrecimiento: la transaccin libera los bloqueos
Fase T1 T2 T3 crecimiento T. activa Fase decrecimiento Orden de precedencia

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

t1 t2 t3

Marzo 2012

Administracin de Base de Datos

36

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

Protocolos
PXC: Protocolo Exclusivo con bloqueo a 2 fases PSC: Protocolo Compartico con bloqueo a 2 fases PUC: Protocolo de actualizacin con bloqueo a 2 fases

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

37

Manejo de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Interbloqueo: Un sistema est en un estado de interbloqueo si para cada transaccin Ti en un conjunto de dos o ms transacciones, espera por la liberacin de un recurso que esta bloqueado por alguna otra transaccin Tj (i j). Los bloqueos pueden ser
prevenidos o detectados.

Marzo 2012

Administracin de Base de Datos

38

Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Planificacin de transacciones Rechazo de requerimientos Retroceso de la transaccin (rollback)


Con marcas de tiempo Sin marcas de tiempo

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

39

Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Planificacin de transacciones:
Se asegura que dos transacciones no sern ejecutadas concurrentemente si sus requerimientos de datos estn en conflicto. Exige que cada transaccin bloquee todos sus elementos de datos en un paso (de manera atmica), antes de su ejecucin. sto conlleva a dos inconvenientes principales:
Es difcil predecir, antes de que comience la transaccin, cules elementos de datos deben bloquearse. La utilizacin de elementos puede ser muy baja, ya que muchos pueden estar bloqueados pero sin usar.
Administracin de Base de Datos 40

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

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 transaccin que lo genero total o parcialmente.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

41

Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Retroceso de Transacciones
Esta tcnica 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 tiempo

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

42

Prevencion de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Retroceso con marcas de tiempo


Una marca de tiempo es un identificador unvoco creado por el SMDB para identificar el tiempo de inicio relativo de una transaccin.
Pueden generarse
Utilizando el valor del reloj del sistema en el momento de iniciarse la transaccin o
Incrementando un contador lgico cada vez que se inicia una nueva transaccin
Siendo MT(Ti) la marca de tiempo de la transaccin Ti y MT(Tj) la Marca de tiempo de la transaccin Tj Si MT(Ti) < MT(Tj) entonces Tj es ms joven que Ti

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

43

Prevencion de Interbloqueos
El DBA El SMBD
Manejo de Memoria

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 ms joven que Ti Ti espera. Sino Ti Muere (RollBack) y se reinicia posteriormente 2. Wound-Wait Si M(Ti) < MT(Tj) entonces #Tj es ms joven que Ti Ti hiere a Tj #Ti obliga a Tj a abortar. Tj muere (RollBack) y se reinicia posteriormente Sino Ti espera

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

44

Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Retroceso sin marcas de tiempo


No Espera
Si una transaccin no puede lograr un bloqueo, no espera y se reinicia tras un lapso de tiempo, sin comprobar si ha sucedido un interbloqueo.

Restauracin

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 Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

45

Deteccin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

La forma ms sencilla de implementarse es mediante un grafo de espera.


Se crea un nodo por transaccin activa. Se crea un arco dirigido, por cada transaccin 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 slo si existe un ciclo en el grafo.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

46

Deteccin de Interbloqueos
El DBA El SMBD
Manejo de Memoria

Recuperando el interbloqueo: Seleccin de una vctima:


Se debe tomar en cuenta:
Si existe ms de un ciclo, en cuntos ciclos est involucrada la transaccin

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Cuntos elementos de datos ha actualizado la transaccin.

Marzo 2012

Administracin de Base de Datos

47

Prxima clase
El DBA El SMBD
Manejo de Memoria

Restauracin

Ejercicio Control de Concurrencia con marcas de tiempo Control de Concurrencia Optimista (Validacin)

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

48

Ejemplo
TIEMPO T1 1 FIND X 2 FIND Y FIND A FIND B FIND X 3 FIND Z 4 5 6 7 UPDATE X: X + 20 T2 T3 T4

El DBA El SMBD
Manejo de Memoria

Restauracin

8 UPDATE Z: Z - 20
9 UPDATE Y: 80 UPDATE A: A + B FIND X FIND Y UPDATE Z: Z + 70 UPDATE X: X -30 COMMIT FIND Y ROLLBACK UPDATE Y: Y + Z FIND A UPDATE A: A - 10 FIND Z 10 11 12 COMMIT 13 14 15 16 17 18 19

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Ejecute la20 planificacin usando el 21 protocolo 22 PUC


Marzo 2012 Administracin de Base de Datos

COMMIT

49

Ejemplo
TIEMPO T1 1 UFIND X 2 UFIND Y 3 UFIND Z T2 T3 T4

El DBA El SMBD
Manejo de Memoria

4
5 6 7 XUPDATE X: X + 20 8 XUPDATE Z: Z - 20 9 XUPDATE Y: 80 10 11 12 COMMIT 13 UFIND X wait

UFIND A
UFIND B UFIND X wait wait XUPDATE A: A + B wait wait wait UFIND Y wait UFIND Z XUPDATE Z: Z + 70 XUPDATE X: X -30 COMMIT UFIND Y ROLLBACK XUPDATE Y: Y + Z UFIND A

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

14
15 16 17 18 19 20

21

XUPDATE A: A - 10

Marzo 2012

22

Administracin de Base de Datos

COMMIT

50

Ejercicio
El DBA El SMBD
Manejo de Memoria

Dada la ejecucin de las siguientes transacciones A y B, ejecute la planificacin usando:


1. Utilizando el protocolo PXC 2. 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 prevencin de Interbloqueo MT(A)<MT(B) y 2 unidades de tiempo para recomenzar la transaccin

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

51

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

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.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

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
Administracin de Base de Datos 52

Marzo 2012

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

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 operacin y Ti retrocede. b) Si MT(Ti) UMAX(X) entonces se ejecuta la operacin FIND(X) y se actualiza FMAX(X) al valor mximo entre FMAX(X) y MT(Ti)

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

53

Tcnicas de control de concurrencia


El DBA El SMBD
Manejo de Memoria

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 transaccin y se retrocede. b) Si MT(Ti) < UMAX(X) entonces se intenta escribir un valor de X obsoleto. Se rechaza la transaccin y se retrocede. c) En cualquier otro caso se ejecuta UPDATE y MT(Ti) se asigna a UMAX(X)

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

54

Tcnicas de control de concurrencia optimistas


El DBA El SMBD
Manejo de Memoria

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

En las tcnicas pesimistas se realiza una comprobacin antes de que se ejecute cualquier operacin. Esta comprobacin conlleva un costo de procesamiento En las tcnicas optimistas no se realiza comprobacin alguna mientras la transaccin se ejecuta.

Marzo 2012

Administracin de Base de Datos

55

Tcnicas de control de concurrencia optimista


El DBA El SMBD
Manejo de Memoria

Cada transaccin 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 validacin: Ti comprueba si alguna de las actualizaciones viola la seriabilidad, para comprobar si no existe violacin en la serializacin. Fase de escritura: Si la validacin es exitosa, entonces las actualizaciones efectivas se aplican a la base de datos y la transaccin se compromete, de lo contrario se descartan.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

56

Tcnicas de control de concurrencia optimista


El DBA El SMBD
Manejo de Memoria

La validacin se realiza mediante las siguientes marcas de tiempo


Inicio(Ti) Validacin(Ti) Fin(Ti) Se determina el orden secuencial a travs de la tcnica de ordenacin por marcas temporales entonces toda planificacin que se produzca debe ser equivalente a una planificacin secuencial

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

57

Tcnicas de control optimista


El DBA El SMBD
Manejo de Memoria

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 interseccin vaca con el conjunto de elementos de datos que lee Tj, Inicio(Tj) < Fin(Ti) < Validacin(Tj). Qu implica sto? Que las transacciones no se superpongan y se mantenga la secuencialidad.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

58

Tcnicas de control de concurrencia optimista


El DBA El SMBD
Manejo de Memoria

Conclusiones
La idea del control optimista es hacer todas las comprobaciones inmediatamente antes de la escritura.
Por lo tanto la ejecucin de una transaccin tiene un costo mnimo hasta alcanzar la fase de validacin, donde la mayora sern validas si son en su mayora de solo lectura, en caso contrario esta tcnica no funciona bien.

Restauracin

Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

59

Ejercicio
El DBA El SMBD
Manejo de Memoria

Dada la ejecucin de las siguientes transacciones A y B, ejecute la planificacin usando:


1. Utilizando la tcnica de control de concurrencia con marcas de tiempo con MT(A)<MT(B) 2. Espere dos unidades de tiempo antes de recomenzar la transaccin

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

60

Ejercicio
El DBA El SMBD
Manejo de Memoria

Dato X Y Z W

Fmax

Umax

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

61

Tcnica de control de concurrencia multiversion


El DBA El SMBD
Manejo de Memoria

Los esquemas anteriores aseguran la secuencialidad


Retrasando la operacin (bloqueos) Retrocediendo la transaccin que realiza la operacin(MT) Esto consume tiempo

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Se puede mejorar estos problemas si se mantienen copias anteriores de cada elemento de datos (versin)

Marzo 2012

Administracin de Base de Datos

62

Tcnica de control de concurrencia multiversion


El DBA El SMBD
Manejo de Memoria

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Cada operacin de escritura UPDATE(R) crea una nueva versin de R Cuando se realiza una operacin de escritura FIND(R) el gestor de concurrencia selecciona una de las versiones de R para leer El control de concurrencia debe asegurar que versin a leer asegure la secuencialidad

Marzo 2012

Administracin de Base de Datos

63

Tcnica de control de concurrencia multiversion


El DBA El SMBD
Manejo de Memoria

Multiversin con marcas temporales


A cada transaccin 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 versin tiene asociado 3 valores
Contenido UMAX FMAX

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Marzo 2012

Administracin de Base de Datos

64

Tcnica de control de concurrencia multiversion


El DBA El SMBD
Manejo de Memoria

Sea Rk la version de R cuya UMAX es la mayor marca temporal menor o igual a MT(Ti) R1 -> Umax=2 MT(Ti) = 8
R2 ->Umax =6 R3 -> Umax =10

Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad

Cuando una transaccin Ti ejecuta una operacin 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 versin de R con Umax =Fmax=MT(Ti)
Administracin de Base de Datos 65

Marzo 2012

Potrebbero piacerti anche