ABDConcurrencia

65
Administración de Base de Datos Concurrencia Prof Mercy Ospina Torres [email protected] Prof Renny A. Hernandez [email protected]

description

clase abd de concurrencia

Transcript of ABDConcurrencia

Page 1: ABDConcurrencia

Administración de Base de Datos

Concurrencia

Prof Mercy Ospina Torres [email protected] Renny A. Hernandez

[email protected]

Page 2: ABDConcurrencia

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

Page 3: ABDConcurrencia

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

Page 4: ABDConcurrencia

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

Page 5: ABDConcurrencia

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

Page 6: ABDConcurrencia

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

Page 7: ABDConcurrencia

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

Page 8: ABDConcurrencia

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

Page 9: ABDConcurrencia

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

Page 10: ABDConcurrencia

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

Page 11: ABDConcurrencia

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

Page 12: ABDConcurrencia

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

Page 13: ABDConcurrencia

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

Page 14: ABDConcurrencia

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

Page 15: ABDConcurrencia

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

Page 16: ABDConcurrencia

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

Page 17: ABDConcurrencia

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

Page 18: ABDConcurrencia

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.

Page 19: ABDConcurrencia

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

Page 20: ABDConcurrencia

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

Page 21: ABDConcurrencia

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

Page 22: ABDConcurrencia

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

Page 23: ABDConcurrencia

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

Page 24: ABDConcurrencia

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

Page 25: ABDConcurrencia

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

Page 26: ABDConcurrencia

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

Page 27: ABDConcurrencia

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

Page 28: ABDConcurrencia

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

Page 29: ABDConcurrencia

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

Page 30: ABDConcurrencia

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

Page 31: ABDConcurrencia

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

Page 32: ABDConcurrencia

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

Page 33: ABDConcurrencia

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

Page 34: ABDConcurrencia

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

Page 35: ABDConcurrencia

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

Page 36: ABDConcurrencia

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

Page 37: ABDConcurrencia

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

Page 38: ABDConcurrencia

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

Page 39: ABDConcurrencia

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

Page 40: ABDConcurrencia

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

Page 41: ABDConcurrencia

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

Page 42: ABDConcurrencia

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

Page 43: ABDConcurrencia

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

Page 44: ABDConcurrencia

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

Page 45: ABDConcurrencia

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

Page 46: ABDConcurrencia

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

Page 47: ABDConcurrencia

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

Page 48: ABDConcurrencia

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

Page 49: ABDConcurrencia

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

Page 50: ABDConcurrencia

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

Page 51: ABDConcurrencia

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

Page 52: ABDConcurrencia

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

Page 53: ABDConcurrencia

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

Page 54: ABDConcurrencia

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

Page 55: ABDConcurrencia

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

Page 56: ABDConcurrencia

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

Page 57: ABDConcurrencia

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

Page 58: ABDConcurrencia

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

Page 59: ABDConcurrencia

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

Page 60: ABDConcurrencia

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

Page 61: ABDConcurrencia

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

Page 62: ABDConcurrencia

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)

Page 63: ABDConcurrencia

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

Page 64: ABDConcurrencia

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

Page 65: ABDConcurrencia

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