Control de Concurrencia

Anuncio
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.
Descargar