Você está na página 1de 22

Control de Concurrencia

Sistemas de Datos
Curso: Ernesto Chinkes

Control de Concurrencia

Esquema de la clase

Conceptos Preliminares
Aspectos positivos y negativos de la ejecucin concurrente
Planificaciones y Secuencialidad
Recuperabilidad
Esquemas de Control de Concurrencia

Sistemas de Datos
Curso: Ernesto Chinkes

Control de Concurrencia

Conceptos Preliminares
Transaccin

Propiedades

Estados

Atomicidad

Parcialmente
Comprometida

Consistencia

Comprometida

Activa

Aislamiento
Durabilidad

Fallida

Abortada

Sistemas de Datos
Curso: Ernesto Chinkes

Control de Concurrencia

Ejecucin Concurrente
Aspectos positivos y negativos

Mayor Productividad
Mejor utilizacin de los recursos
Tiempo de espera reducido
Mayor probabilidad de inconsistencias

Control de Concurrencia

Sistemas de Datos
Curso: Ernesto Chinkes

Planificaciones

Secuencias de ejecucin 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 planificacin P es secuenciable en cuanto a conflictos si es


equivalente en cuanto a conflictos a una planificacin secuencial

Si una planificacin 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 operacin 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)

Planificacin 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)

Planificacin Secuenciable Planificacin 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 planificacin P es secuenciable en cuanto a vistas si es


equivalente en cuanto a vistas a una planificacin secuencial

3 condiciones:

Si la transaccin Ti lee el valor inicial de Q en P, entonces debe


hacerlo tambin en P.

Si la transaccin Ti ejecuta lee(Q) en P, y el valor lo ha producido


Tj , entonces debe hacerlo tambin en P.

La transaccin que realice la ltima operacin escribir(Q) en P,


debe hacerlo tambin 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)

Planificacin Secuencial

Escribir(Q)

Planificacin
Secuenciable
en cuanto a vistas

Planificacin
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

Interbloqueos
Inanicin

C
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

Duracin de
la transaccin
FIN

Estricto
Una transaccin debe conservar todos los
bloqueos exclusivos hasta que se comprometa.

evit

an

Riguroso
Una transaccin 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 lgico

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 ordenacin por marcas temporales
Ti ejecuta la operacin leer(Q)

MT(Ti) < mt-E (Q)

Rechazo de la operacin leer


Retroceso de Ti

MT(Ti) mt-E (Q)

Ejecucin de la operacin leer


Asignacin del mx. 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 operacin escribir(Q)


MT(Ti) < mt-L (Q)

MT(Ti) < mt-E (Q)

Rechazo de la operacin escribir


Retroceso de Ti

MT(Ti) mt-E (Q)

MT(Ti) mt-L (Q)

Ejecucin de la operacin escribir


Asignacin 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 ordenacin por marcas temporales

Secuencialidad en cuanto a
conflictos.
Ausencia de Interbloqueos.
Probabilidad de Inanicin.
Prob. de planificaciones no
recuperables y retrocesos en
cascada.

Control de Concurrencia

Sistemas de Datos
Curso: Ernesto Chinkes

Esquemas de Control de Concurrencia


Granularidad mltiple

Jerarqua 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 mltiple
Jerarqua de granularidad
Bloqueo intencional
de la BD

Bloqueo intencional
de la zona Z1

Intencional Exclusivo (IX)

BD

Z1

Bloqueo explcito
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 implcito de los registros


pertenecientes al archivo Aa

IX

IXC

Control de Concurrencia

Sistemas de Datos
Curso: Ernesto Chinkes

Esquemas de Control de Concurrencia


Granularidad mltiple
Protocolo de bloqueo de granularidad mltiple
BD

Bloquear 1 la raz del rbol, en cualquier modo.


Bloquear el nodo en modo C o IC slo si
el padre est bloqueado en modo IX o IC.
Bloquear el nodo en modo X, IXC o IX slo si
el padre est bloqueado en modo IX o IXC.
Bloquear el nodo slo si no ha desbloqueado
ningn nodo antes (dos fases).
Desbloquear el nodo slo 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:

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 multiversin
Ordenacin por marcas temporales multiversin

T1

MT(T1)

T2

MT(T2)

.
.
.

.
.
.

Tn

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 versin Q1

Marca temporal de la
transaccin que cre
la versin 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 multiversin
Ordenacin por marcas temporales multiversin

Sea Qk la versin de Q con mt-E(Qk) MT(Ti)


Ti ejecuta la operacin leer(Q)
Se muestra el contenido de la versin ms
reciente de Q [ mt-E(Q) < MT(Ti) ].
Ti ejecuta la operacin 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)

Creacin de una
nueva versin 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 multiversin
Bloqueo de dos fases multiversin

T1

MT(T1)

T2

MT(T2)

.
.

Tn

.
.

mt(Q)

Asegura secuencialidad.

n versiones
asociadas

Q1

Q2
.
.

Qn

Las transacciones de
slo lectura no tienen
que esperar.
Planif. recuperables y
sin cascada.
Prob. de Interbloqueos.

Transacciones de slo lectura


Ti ejecuta la operacin leer(Q)

(Una sola marca


temporal para Q)

Valor actual
contador_mt

MT(Tn)

Se muestra el contenido de la versin ms


reciente de Q [ mt(Q) < MT(Ti) ].

Transacciones de actualizacin
Realizan un bloqueo de 2 fases riguroso
Ti ejecuta la operacin leer(Q)

Compromiso de Ti :

Ti obtiene un bloqueo compartido sobre Q.


Ti lee la versin ms reciente de Q.

- Asigna mt(Q) (cont.+1)


a la versin creada

Ti ejecuta la operacin escribir(Q)

- Seteo Cont.= Cont.+1

Ti obtiene un bloqueo exclusivo sobre Q.


Ti crea una nueva versin de Q.

Você também pode gostar