Documente Academic
Documente Profesional
Documente Cultură
Contenido
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Optimistas
Marzo 2012 Administracin de Base de Datos 2
Concurrencia
El DBA El SMBD
Manejo de Memoria
Qu es la concurrencia en BD?
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
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
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
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
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
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Concurrente
Serializable No serializable
Marzo 2012
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
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
Planificaciones
Planificaciones concurrentes
Restauracin
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
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Planificacin serializable
Es una planificacin concurrente, equivalente a una secuencial
Marzo 2012
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
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
14
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
15
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
16
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
17
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
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
19
Planificacin de transacciones
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
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
UPDATE(X)
Marzo 2012
21
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
22
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
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
24
Tiempo 1
Transaccin 2
2
Restauracin Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad
XFIND R wait
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
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
26
Seguridad
SUM = SUM + ACC3 (110) Marzo 2012 8
27
5 6 7 8
Interbloqueo
28
Marzo 2012
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
5 6
Interbloqueo
Marzo 2012 Administracin de Base de Datos 30
REINICIA Copy R.F into B.temp UPD R: Replace R.F By B.temp + 1 COMMIT
Marzo 2012
31
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
Marzo 2012
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
33
Ejemplo
T1 SFIND X X = X 50
T2
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
RELEASE(X) SFIND Y
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
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
35
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
t1 t2 t3
Marzo 2012
36
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
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
38
Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
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
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
42
Prevencion de Interbloqueos
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
43
Prevencion de Interbloqueos
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
44
Prevencin de Interbloqueos
El DBA El SMBD
Manejo de Memoria
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
45
Deteccin de Interbloqueos
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
46
Deteccin de Interbloqueos
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
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
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
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
COMMIT
50
Ejercicio
El DBA El SMBD
Manejo de Memoria
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
51
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
53
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
54
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
55
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
56
Restauracin
Concurrencia Concurrencia
Diccionario Datos Proc. Consultas Integridad Seguridad
Marzo 2012
57
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
58
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
59
Ejercicio
El DBA El SMBD
Manejo de Memoria
Marzo 2012
60
Ejercicio
El DBA El SMBD
Manejo de Memoria
Dato X Y Z W
Fmax
Umax
Marzo 2012
61
Se puede mejorar estos problemas si se mantienen copias anteriores de cada elemento de datos (versin)
Marzo 2012
62
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
63
Marzo 2012
64
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
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