Esquema de la clase Conceptos Preliminares Aspectos positivos y negativos de la ejecución concurrente Planificaciones y Secuencialidad Recuperabilidad Esquemas de
Conceptos Preliminares Transacción Propiedades Estados Atomicidad Consistencia Aislamiento Durabilidad Activa Parcialmente Comprometida Fallida Comprometida Abortada
Ejecución Concurrente Aspectos positivos y negativos Mayor Productividad Mejor utilización de los recursos Tiempo de espera reducido Mayor probabilidad de inconsistencias
Planificaciones Secuencias de ejecución de las instrucciones componentes de las transacciones Planificaciones Secuenciales T 1 T 2 T 1 T 2 A:= A 25 B:= B + 25 Temp:= A * 02 A:= A - Temp B:=B + Temp A:= A 25 B:= B + 25 Temp:= A * 02 A:= A - Temp B:=B + Temp
Planificaciones Planificaciones no Secuenciales Equivalente No Equivalente T 1 T 2 T 1 T 2 A:= A 25 B:= B + 25 Temp:= A * 02 A:= A - Temp B:=B + Temp A:= A 25 B:= B + 25 Temp:= A * 02 A:= A - Temp B:=B + Temp Estado inconsistente
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
Secuencialidad En cuanto a conflictos T 1 T 2 T 1 T 2 T 1 T 2 Planificación Secuencial Planificación Secuenciable en cuanto a conflictos Planificación no Secuenciable en cuanto a conflictos
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 T i lee el valor inicial de Q en P, entonces debe hacerlo también en P Si la transacción T i ejecuta lee(q) en P, y el valor lo ha producido T j, 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
Secuencialidad En cuanto a vistas T 1 T 2 T 3 T 1 T 2 T 3 Leer(Q) Escribir(Q) Leer(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Planificación Secuencial Planificación Secuenciable en cuanto a vistas Planificación no Secuenciable en cuanto a conflictos Escrituras a ciegas
Recuperabilidad T 1 T 2 A:= A 25 Temp:= A * 02 A:= A - Temp Fallo Planificaciones recuperables T j lee elementos de datos que ha escrito T i T i debe comprometerse antes que T j Planificaciones sin cascada T j lee elementos de datos que ha escrito T i T i debe comprometerse antes que T j lea dichos elementos de datos
Esquemas de Protocolos basados en el bloqueo Gestor de Control de Concurrencia concede Compartido (C) Lectura Bloqueos Exclusivo (X) Lectura Escritura Consistencia Interbloqueos Inanición C X Compatibilidad C X
Esquemas de Protocolo de bloqueo de dos fases Protocolos basados en el bloqueo Cantidad de bloqueos Punto de bloqueo bloquea Secuencialidad en cuanto a conflictos desbloquea Probabilidad de Interbloqueos Fase 1 Crecimiento INICIO Fase 2 Decrecimiento FIN Duración de la transacción evitan Prob de retroceso en cascada Estricto Riguroso Una transacción debe conservar todos los bloqueos exclusivos hasta que se comprometa Una transacción debe conservar todos los bloqueos hasta que se comprometa
Esquemas de Protocolos basados en marcas temporales Sistema de Base de Datos asigna Marcas Temporales Valor del reloj del sistema Contador lógico Transacciones T 1 T 2 T n MT(T 1 ) MT(T 2 ) MT(T n ) MT(T 1 ) < MT(T 2 ) < MT(T n ) Q Elementos de datos mt-e (Q) mt-l (Q)
Esquemas de Protocolos basados en marcas temporales Protocolo de ordenación por marcas temporales T i ejecuta la operación leer(q) MT(T i ) < mt-e (Q) MT(T i ) mt-e (Q) Rechazo de la operación leer Retroceso de T i Se asigna una nueva Marca Temporal a T i y se inicia de nuevo Ejecución de la operación leer Asignación del máx entre MT(T i ) y mt-l (Q), a mt-l (Q) T i ejecuta la operación escribir(q) MT(T i ) < mt-l (Q) ó MT(T i ) < mt-e (Q) MT(T i ) mt-e (Q) ó MT(T i ) mt-l (Q) Rechazo de la operación escribir Retroceso de T i Ejecución de la operación escribir Asignación de MT(T i ) a mt-e (Q) Se asigna una nueva Marca Temporal a T i y se inicia de nuevo
Esquemas de 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
Esquemas de Granularidad múltiple Jerarquía de granularidad BD Nodo de Base de Datos Z 1 Z 2 Nodos de Zona A a A b A c Nodos de Archivo r a1 r a2 r an r b1 r bk r c1 r cm Nodos de Registro
Esquemas de Granularidad múltiple Jerarquía de granularidad Modo de bloqueo intencional Bloqueo intencional de la BD BD Intencional Exclusivo (IX) Intencional Compartido (IC) Bloqueo intencional de la zona Z 1 Intencional Exclusivo y Compartido (IXC) Bloqueo explícito del archivo A a Z 1 Z 2 Compatibilidad IC IX C IXC X A a A b A c IC IX r a1 r a2 r an r b1 r bk r c1 r cm C IXC Bloqueo implícito de los registros pertenecientes al archivo A a X
Esquemas de Granularidad múltiple Protocolo de bloqueo de granularidad múltiple T i puede bloquear un nodo Q siguiendo estas reglas: BD Considerar la tabla de compatibilidad de bloqueos Bloquear 1º la raíz del árbol, en cualquier modo Bloqueo Z 1 A b Z 2 A c Desbloqueo 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 r b1 r bk r c1 r cm Asegura la secuencialidad Reduce sobrecarga de bloqueos Probabilidad de Interbloqueos
Esquemas de Ordenación por marcas temporales multiversión Esquemas multiversión T 1 T 2 T n MT(T 1 ) MT(T 2 ) MT(T n ) Marcas temporales asociadas a las transacciones Q Q 1 Q 2 Q 3 n versiones asociadas al elemento de datos Q Q 1 Q n Q 1 Q 2 contenido mt-e (Q 1 ) mt-l (Q 1 ) Q 3 Valor de la versión Q 1 Marca temporal de la transacción que creó la versión Q 1 > Marca temporal de las transacciones que leyeron con éxito Q 1
Esquemas de Esquemas multiversión Ordenación por marcas temporales multiversión Sea Q k la versión de Q con mt-e(q k ) MT(T i ) T i ejecuta la operación leer(q) Se muestra el contenido de la versión más reciente de Q [ mt-e(q) < MT(T i ) ] T i ejecuta la operación escribir(q) MT(T i ) < mt-l(q k ) Retroceso de T i 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) MT(Ti) > mt-l(qk) y MT(T i ) = mt-e(q k ) MT(Ti) > mt-l(qk) y MT(T i ) > mt-e(q k ) Sobreescritura del contenido de Q k Creación de una nueva versión de Q k Los conflictos se resuelven por medio de retrocesos Prob de planificaciones no recuperables y retrocesos en cascada
Esquemas de Bloqueo de dos fases multiversión Esquemas multiversión T 1 T 2 T n MT(T 1 ) MT(T 2 ) MT(T n ) Asegura secuencialidad Las transacciones de sólo lectura no tienen que esperar Planif recuperables y sin cascada Prob de Interbloqueos Valor actual contador_mt n versiones asociadas mt(q) (Una sola marca temporal para Q) Q 1 Q 2 Q n Compromiso de T i : Q Q - Asigna mt(q) (cont+1) a la versión creada - Seteo Cont= Cont+1 Transacciones de sólo lectura T i ejecuta la operación leer(q) Se muestra el contenido de la versión más reciente de Q [ mt(q) < MT(T i ) ] Transacciones de actualización Realizan un bloqueo de 2 fases riguroso T i ejecuta la operación leer(q) T i obtiene un bloqueo compartido sobre Q T i lee la versión más reciente de Q T i ejecuta la operación escribir(q) T i obtiene un bloqueo exclusivo sobre Q T i crea una nueva versión de Q