Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porTomás Palma Ruiz Modificado hace 9 años
1
Administración de Base de Datos Concurrencia Prof Mercy Ospina Torres mercy.ospinat@gmail.com Prof Renny A. Hernandez renny.hernandez@ciens.ucv.ve
2
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Contenido Marzo 2012Administración de Base de Datos2 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
3
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Concurrencia Marzo 2012Administración de Base de Datos3 ¿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
4
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Concurrencia Marzo 2012Administración de Base de Datos4 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
5
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Problemas Marzo 2012Administración de Base de Datos5 Actualización perdida Concurrencia T1TiempoT2X T1FIND X100 FIND XT2100 T3X = X+100100 X=X-10T4100 T5UPDATE X200 UPDATE XT690 T7COMMIT90 COMMITT890 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 200 90
6
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Problemas Marzo 2012Administración de Base de Datos6 Dependencia no confirmada Concurrencia T1TiempoT2X T1FIND X100 T2X = X+100100 T3UPDATE X100 FIND XT4200 X=X-10T5200 T6 ROLLBACK 90 UPDATE XT790 COMMITT8190 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 100 190
7
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Problemas Marzo 2012Administración de Base de Datos7 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
8
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos8 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
9
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos9 Dadas las siguientes transacciones Concurrencia
10
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos10 Planificaciones secuenciales – Cada transacción se ejecuta completamente antes de la siguiente. – Para un conjunto de n transacciones hay n! planificaciones secuenciales Concurrencia
11
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos11 Pero se pueden definir un número m>>n! de planificaciones concurrentes Concurrencia T1T2 FIND X X = X – 50 FIND X TEMP = A*0,1 UPDATE X FIND Y A=A – TEMP UPDATE A FIND Y Y = Y + 50 UPDATE Y Y = Y + TEM UPDATE Y Planificaciones concurrentes Planificaciones secuenciales Planificaciones
12
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos12 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
13
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos13 Clasificación de Planificaciones Concurrencia Planificaciones secuenciales Planificaciones concurrentes Planificaciones serializables
14
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Niveles de aislamiento Marzo 2012Administración de Base de Datos14 Determina el tipo de problema que el sistema puede tolerar entre transacciones Concurrencia Nivel de aislamiento Lectura suciaLectura irrepetible Actualización fantasma READ UNCOMMITED Si READ COMMITED NoSi REPEATABLE READ No Si SERIALIZABLENo
15
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos15 ¿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
16
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos16 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
17
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos17 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
18
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos18 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.
19
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos19 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
20
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos20 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) 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
21
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Planificación de transacciones Marzo 2012Administración de Base de Datos21 Ejemplo Concurrencia T1T2 T3 T1T2T3 FIND(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
22
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos22 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
23
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos23 Bloqueo: técnica que regula el acceso concurrente a objetos compartidos (buffer de datos) – Granularidad: pueden aplicarse a diferentes unidades de dato Concurrencia Base de datos Tabla Registro Campo Grano mas fino Mayor concurrencia Mayor posibilidades de interbloqueo Mas costos de manejo de concurrencia
24
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos24 Tipos de Bloqueo – Bloqueo exclusivo (Protocolo: PX) Concurrencia B R Memoria principal Manejador de concurrencia Ti: XFIND(R) Área de trabajo de Ti Ri Cola de espera Tj, …Tn
25
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos25 Transacción 1TiempoTransacción 2 XFIND(R) COPY R.F INTO ATEMP 1 2XFIND R UPDATE R: REPLACE R.F BY ATEMP + 1 3 wait XRELEASE R4 5(reinicia XFIND R) COPY R.F INTO BTEMP 6UPDATE R: REPLACE R.F BY 2*BTEMP 7XRELEASE R
26
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas 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 2012Administración de Base de Datos26 Concurrencia B R Memoria principal Manejador de concurrencia Ti: SFIND(R) Área de trabajo de Ti Ri Cola de espera Bloqueo Exclusivo Tj, …Tn
27
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos27 ACC1 = 40 Transacción 1 ACC2 = 50 Tiempo ACC3 = 30 Transacción 2 SFIND ACC1 SUM = SUM + ACC1 (40) 1 SFIND ACC2 SUM = SUM + ACC2 (90) 2 3 4XFIND ACC3 UPD ACC3: ACC3 = ACC3 – 10 SFIND ACC3 WAIT 5 6RELEASE ACC3 SFIND ACC1 7COMMIT SUM = SUM + ACC3 (110) 8
28
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos28 ACC1 = 40 Transacción 1 ACC2 = 50 Tiempo ACC3 = 30 Transacción 2 SFIND ACC1 SUM = SUM + ACC1 1 SFIND ACC2 SUM = SUM + ACC2 2 3SFIND ACC3 XUPDXACC3: ACC3 = ACC3 – 10 4SFIND ACC1 5XUPD ACC1 wait SFIND ACC3 Wait 6wait 7 8 Interbloqueo
29
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas 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 2012Administración de Base de Datos29 Concurrencia B R Memoria principal Manejador de concurrencia Ti: UFIND(R) Área de trabajo de Ti Ri Cola de espera Bloqueo Exclusivo Tj, …Tn Cola de espera Bloqueo de actualización To, …Tq
30
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos30 Transacción 1TiempoTransacción 2 SFIND R COPY R.F INTO A.TEMP 1 2SFIND R COPY R.F INTO B.TEMP XUPD R Wait 3 wait 4XUPD R wait 5 6 Interbloqueo
31
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos31 Transacción 1TiempoTransacción 2 UFIND R COPY R.F INTO A.TEMP 1 2UFIND R Wait UPDX R REPLACE R.F By ATEMP +1 3Wait COMMIT4REINICIA Copy R.F into B.temp UPD R: Replace R.F By B.temp + 1 5COMMIT 6
32
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos32 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
33
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos33 Matriz de compatibilidad de bloqueos Concurrencia T1\T2XSU XNo S Si UNoSiNo
34
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos34 Ejemplo T1T2 SFIND X X = X – 50 SFIND X TEMP = X*0,1 XUPDATE X X=X – TEMP RELEASE(X) XUPDATE X (wait) SFIND Y XUPDATE X RELEASE X Y = Y + 50 XUPDATE Y RELEASE Y SFIND Y Y = Y + 2 XUPDATE Y (wait) ¿Qué pasa si T1 hace Rollback Dependencia no confirmada Concurrencia
35
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos35 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
36
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos36 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 t1t2t3 T1 T2 T3 Orden de precedencia
37
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos37 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 fases Concurrencia
38
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Manejo de Interbloqueos Marzo 2012Administración de Base de Datos38 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
39
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevención de Interbloqueos Marzo 2012Administración de Base de Datos39 Planificación de transacciones Rechazo de requerimientos Retroceso de la transacción (rollback) – Con marcas de tiempo – Sin marcas de tiempo Concurrencia
40
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevención de Interbloqueos Marzo 2012Administración de Base de Datos40 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
41
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevención de Interbloqueos Marzo 2012Administración de Base de Datos41 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
42
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevención de Interbloqueos Marzo 2012Administración de Base de Datos42 Retroceso de Transacciones Esta 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 tiempo Concurrencia
43
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevencion de Interbloqueos Marzo 2012Administración de Base de Datos43 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
44
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevencion de Interbloqueos Marzo 2012Administración de Base de Datos44 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 Ti Ti espera. Sino Ti Muere (RollBack) y se reinicia posteriormente 2.Wound-Wait Si 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
45
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Prevención de Interbloqueos Marzo 2012Administración de Base de Datos45 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
46
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Detección de Interbloqueos Marzo 2012Administración de Base de Datos46 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
47
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Detección de Interbloqueos Marzo 2012Administración de Base de Datos47 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
48
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Próxima clase Marzo 2012Administración de Base de Datos48 Ejercicio Control de Concurrencia con marcas de tiempo Control de Concurrencia Optimista (Validación) Concurrencia
49
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejemplo Marzo 2012Administración de Base de Datos49 TIEMPOT1T2T3T4 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
50
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejemplo Marzo 2012Administración de Base de Datos50 TIEMPOT1T2T3T4 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 + Bwait 11 UFIND X wait 12COMMIT wait 13 UFIND Y wait 14 UFIND Z XUPDATE 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
51
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejercicio Marzo 2012Administración de Base de Datos51 Dada la ejecución de las siguientes transacciones A y B, ejecute la planificación 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 prevención de Interbloqueo MT(A)<MT(B) y 2 unidades de tiempo para recomenzar la transacción Concurrencia
52
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos52 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
53
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos53 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
54
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia Marzo 2012Administración de Base de Datos54 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
55
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia optimistas Marzo 2012Administración de Base de Datos55 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
56
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia optimista Marzo 2012Administración de Base de Datos56 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
57
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia optimista Marzo 2012Administración de Base de Datos57 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
58
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control optimista Marzo 2012Administración de Base de Datos58 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
59
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnicas de control de concurrencia optimista Marzo 2012Administración de Base de Datos59 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
60
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejercicio Marzo 2012Administración de Base de Datos60 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
61
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejercicio Marzo 2012Administración de Base de Datos61 DatoFmaxUmax X Y Z W
62
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnica de control de concurrencia multiversion Marzo 2012Administración de Base de Datos62 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)
63
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnica de control de concurrencia multiversion Marzo 2012Administración de Base de Datos63 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
64
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnica de control de concurrencia multiversion Marzo 2012Administración de Base de Datos64 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 – Cada versión tiene asociado 3 valores Contenido UMAX FMAX
65
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Técnica de control de concurrencia multiversion Marzo 2012Administración de Base de Datos65 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=2 R2 ->Umax =6 R3 -> Umax =10
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.