Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Esquema de la clase Conceptos Preliminares Aspectos positivos y negativos de la ejecución concurrente Planificaciones y Secuencialidad Recuperabilidad Esquemas de Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Conceptos Preliminares Transacción Propiedades Estados Atomicidad Parcialmente Comprometida Consistencia Comprometida Activa Aislamiento Durabilidad Fallida Abortada Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Ejecución Concurrente Aspectos positivos y negativos Mayor Productividad Mejor utilización de los recursos Tiempo de espera reducido Mayor probabilidad de inconsistencias Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Planificaciones Secuencias de ejecución de las instrucciones componentes de las transacciones. Planificaciones Secuenciales T1 Leer(A) A:= A – 25 Escribir(A) Leer(B) B:= B + 25 Escribir(B) T2 Leer(A) Temp:= A * 0.2 A:= A - Temp Escribir(A) Leer(B) B:=B + Temp Escribir(B) T1 T2 Leer(A) Temp:= A * 0.2 A:= A - Temp Escribir(A) Leer(B) B:=B + Temp Escribir(B) Leer(A) A:= A – 25 Escribir(A) Leer(B) B:= B + 25 Escribir(B) Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Planificaciones Planificaciones no Secuenciales Equivalente T1 Leer(A) A:= A – 25 Escribir(A) Leer(B) B:= B + 25 Escribir(B) No Equivalente T2 T1 Leer(A) A:= A – 25 Leer(A) Temp:= A * 0.2 A:= A - Temp Escribir(A) Leer(B) B:=B + Temp Escribir(B) Escribir(A) Leer(B) B:= B + 25 Escribir(B) T2 Leer(A) Temp:= A * 0.2 A:= A - Temp Escribir(A) Leer(B) B:=B + Temp Escribir(B) Estado inconsistente Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Secuencialidad En cuanto a conflictos Una planificación P es secuenciable en cuanto a conflictos si es equivalente en cuanto a conflictos a una planificación secuencial Si una planificación P se puede transformar en otra P’ por medio de una serie de intercambios de instrucciones no conflictivas. Si las instrucciones (de las distintas transacciones) a intercalar: No operan sobre el mismo elemento de datos Operan sobre el mismo elemento de datos, pero ninguna de ellas consituye una operación escribir. Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Secuencialidad En cuanto a conflictos T1 T2 T1 T2 Leer(A) Escribir(A) Leer(A) Escribir(A) Leer(B) Escribir(B) Leer(A) Leer(A) Escribir(A) Leer(A) Escribir(A) Leer(B) Escribir(B) Planificación Secuencial T1 Leer(B) Escribir(B) Leer(B) Escribir(B) T2 Leer(A) Escribir(A) Escribir(A) Leer(B) Escribir(B) Leer(B) Escribir(B) Planificación Secuenciable Planificación no Secuenciable en cuanto a conflictos en cuanto a conflictos Sistemas de Datos Curso: Ernesto Chinkes Control de Concurrencia Secuencialidad En cuanto a vistas Una planificación P es secuenciable en cuanto a vistas si es equivalente en cuanto a vistas a una planificación secuencial 3 condiciones: Si la transacción Ti lee el valor inicial de Q en P, entonces debe hacerlo también en P’. Si la transacción Ti ejecuta lee(Q) en P, y el valor lo ha producido Tj , entonces debe hacerlo también en P’. La transacción que realice la última operación escribir(Q) en P, debe hacerlo también en P’. Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Secuencialidad En cuanto a vistas T1 T2 T3 Leer(Q) Escribir(Q) T1 T2 T3 Leer(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Planificación Secuencial Escribir(Q) Planificación Secuenciable en cuanto a vistas Planificación no Secuenciable en cuanto a conflictos Escrituras a ciegas Sistemas de Datos Curso: Ernesto Chinkes T1 Leer(A) A:= A – 25 Escribir(A) Control de Concurrencia Recuperabilidad T2 Leer(A) Temp:= A * 0.2 A:= A - Temp Escribir(A) Planificaciones recuperables Tj lee elementos de datos que ha escrito Ti Fallo Ti debe comprometerse antes que Tj Planificaciones sin cascada Tj lee elementos de datos que ha escrito Ti Ti debe comprometerse antes que Tj lea dichos elementos de datos Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Protocolos basados en el bloqueo Gestor de Control de Concurrencia Compartido (C) concede Bloqueos Exclusivo (X) Lectura Lectura Escritura Compatibilidad Consistencia C Interbloqueos Inanición C X X Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Protocolos basados en el bloqueo Protocolo de bloqueo de dos fases Cantidad de bloqueos Punto de bloqueo Secuencialidad en cuanto a conflictos bloquea desbloquea Fase 1 Crecimiento INICIO Probabilidad de Interbloqueos Prob. de retroceso en cascada Fase 2 Decrecimiento Duración de la transacción FIN Estricto Una transacción debe conservar todos los bloqueos exclusivos hasta que se comprometa. evit an Riguroso Una transacción debe conservar todos los bloqueos hasta que se comprometa. Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Protocolos basados en marcas temporales Sistema de Base de Datos Valor del reloj del sistema asigna Marcas Temporales Contador lógico Transacciones T1 Elementos de datos MT(T1) T2 MT(T2) Tn MT(Tn) MT(T1) < MT(T2) < MT(Tn) mt-E (Q) Q mt-L (Q) Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Protocolos basados en marcas temporales Protocolo de ordenación por marcas temporales Ti ejecuta la operación leer(Q) MT(Ti) < mt-E (Q) Rechazo de la operación leer Retroceso de Ti MT(Ti) ≥ mt-E (Q) Ejecución de la operación leer Asignación del máx. entre MT(Ti) y mt-L (Q), a mt-L (Q) Se asigna una nueva Marca Temporal a Ti y se inicia de nuevo Ti ejecuta la operación escribir(Q) MT(Ti) < mt-L (Q) ó MT(Ti) < mt-E (Q) Rechazo de la operación escribir Retroceso de Ti MT(Ti) ≥ mt-E (Q) ó MT(Ti) ≥ mt-L (Q) Ejecución de la operación escribir Asignación de MT(Ti) a mt-E (Q) Se asigna una nueva Marca Temporal a Ti y se inicia de nuevo Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Protocolos basados en marcas temporales Protocolo de ordenación por marcas temporales Secuencialidad en cuanto a conflictos. Ausencia de Interbloqueos. Probabilidad de Inanición. Prob. de planificaciones no recuperables y retrocesos en cascada. Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Granularidad múltiple Jerarquía de granularidad BD Z1 Nodo de Base de Datos Z2 Nodos de Zona Aa Ab Ac Nodos de Archivo ra1 ra2 … ran rb1 … rbk rc1 … rcm Nodos de Registro Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Granularidad múltiple Jerarquía de granularidad Bloqueo intencional de la BD Bloqueo intencional de la zona Z1 Intencional Exclusivo (IX) BD Z1 Bloqueo explícito del archivo Aa Modo de bloqueo intencional Intencional Compartido (IC) Intencional Exclusivo y Compartido (IXC) Z2 Compatibilidad IC Aa Ab Ac IC IX C ra1 ra2 … ran rb1 … rbk rc1 … rcm IXC X Bloqueo implícito de los registros pertenecientes al archivo Aa IX C IXC X Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Granularidad múltiple Protocolo de bloqueo de granularidad múltiple BD Bloquear 1º la raíz del árbol, en cualquier modo. Bloquear el nodo en modo C o IC sólo si el padre está bloqueado en modo IX o IC. Bloquear el nodo en modo X, IXC o IX sólo si el padre está bloqueado en modo IX o IXC. Bloquear el nodo sólo si no ha desbloqueado ningún nodo antes (dos fases). Desbloquear el nodo sólo si no ha bloqueado ninguno de sus hijos. rb1 Z1 Z2 Ab Ac r … bk rc1 Desbloqueo Considerar la tabla de compatibilidad de bloqueos. Bloqueo Ti puede bloquear un nodo Q siguiendo estas reglas: r … cm Asegura la secuencialidad. Reduce sobrecarga de bloqueos. Probabilidad de Interbloqueos. Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Esquemas multiversión Ordenación por marcas temporales multiversión T1 MT(T1) T2 MT(T2) . . . . . . Tn Q Q1 Marcas temporales asociadas a las transacciones Q2 Q3 MT(Tn) . . . Qn Q1 Q1 contenido mt-E (Q1) n versiones asociadas al elemento de datos Q mt-L (Q1) Q2 Q3 Valor de la versión Q1 Marca temporal de la transacción que creó la versión Q1 > Marca temporal de las transacciones que leyeron con éxito Q1 Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Esquemas multiversión Ordenación por marcas temporales multiversión Sea Qk la versión de Q con mt-E(Qk) ≤ MT(Ti) Ti ejecuta la operación leer(Q) Se muestra el contenido de la versión más reciente de Q [ mt-E(Q) < MT(Ti) ]. Ti ejecuta la operación escribir(Q) MT(Ti) < mt-L(Qk) Retroceso de Ti MT(Ti) > mt-L(Qk) y MT(Ti) = mt-E(Qk) Sobreescritura del contenido de Qk MT(Ti) > mt-L(Qk) y MT(Ti) > mt-E(Qk) Creación de una nueva versión de Qk Asegura la secuencialidad. Las peticiones de lectura no fallan y no tienen que esperar. Las lecturas requieren actualizar el campo mt-L(Q) (acceso extra al disco). Los conflictos se resuelven por medio de retrocesos. Prob. de planificaciones no recuperables y retrocesos en cascada. Control de Concurrencia Sistemas de Datos Curso: Ernesto Chinkes Esquemas de Control de Concurrencia Esquemas multiversión Bloqueo de dos fases multiversión T1 MT(T1) T2 MT(T2) . . Tn . . mt(Q) Asegura secuencialidad. n versiones asociadas Q1 Q Q2 . . Qn Las transacciones de sólo lectura no tienen que esperar. Planif. recuperables y sin cascada. Prob. de Interbloqueos. Transacciones de sólo lectura Ti ejecuta la operación leer(Q) (Una sola marca temporal para Q) Valor actual contador_mt MT(Tn) Q Se muestra el contenido de la versión más reciente de Q [ mt(Q) < MT(Ti) ]. Transacciones de actualización Realizan un bloqueo de 2 fases riguroso Ti ejecuta la operación leer(Q) Compromiso de Ti : Ti obtiene un bloqueo compartido sobre Q. Ti lee la versión más reciente de Q. - Asigna mt(Q) (cont.+1) a la versión creada Ti ejecuta la operación escribir(Q) - Seteo Cont.= Cont.+1 Ti obtiene un bloqueo exclusivo sobre Q. Ti crea una nueva versión de Q.