Está en la página 1de 45

IBD

Clase 18

Entornos concurrentes

Existen varias razones para permitir la concurrencia (aunque es ms sencillo que las transacciones se ejecuten secuencialmente):

Una transaccin consiste de varios pasos. Algunos pasos implican operaciones de E\S, otros implican operaciones de CPU.

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes

Las operaciones de E\S se pueden realizar en paralelo con el procesamiento de CPU. Se puede explotar este paralelismo y ejecutar varias transacciones en paralelo. Se aumenta la productividad del sistema, hay menos dispositivos desocupados.

Se mejora el tiempo de respuesta promedio de una transaccin.


3
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

Varias transacciones ejecutndose simultneamente compartiendo recursos. Deben evitarse problemas de consistencia de datos

Transacciones correctas, en ambientes concurrente pueden llevar a fallos


Se necesita un mecanismo de control de concurrencia, para asegurar que las transacciones concurrentes no interfieran entre s (destruyendo la consistencia de la BD)

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes
T0 READ( a ) a := a 50 WRITE( a ) READ( b ) b := b + 50 WRITE( b ) T1 READ( a ) temp := a * 0.1 a := a temp WRITE( a ) READ( b ) b := b + temp WRITE( b )

Resolver T0, T1 o T1, T0 se respeta A+B Ahora bien, T0 T1 <> T1 T0

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes
READ(A) A := A 50 WRITE(A)
READ(A) TEMP := A * 0.1 A := A TEMP WRITE(A) READ(B) B := B + 50 WRITE(B) READ(B) B := B + TEMP WRITE(B) READ(A) A := A 50 READ(A) TEMP := A * 0.1 A := A TEMP WRITE(A)

READ(B) WRITE(A) READ(B) B := B + 50 WRITE(B)


B := B + TEMP WRITE(B)

A + B se conserva

A + B no se conserva
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

Problemas de Concurrencia

Una transaccin correcta por si misma, puede producir resultado incorrecto por interferencia con otra transaccin Tres posibles problemas: El problema de la actualizacin perdida El problema de la dependencia no confirmada El problema del anlisis inconsistente
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

El Problema de la actualizacin perdida (graficar)


La Transaccin A recupera la tupla t en el tiempo t1 La Transaccin B recupera la misma tupla t en el tiempo t2 La Transaccin A actualiza la tupla t en el tiempo t3 La Transaccin B actualiza la misma tupla t en el tiempo t4 La actualizacin de la Transaccin A se pierde en t4

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes

Problema de la dependencia no confirmada (graficar)

Una Transaccin recupera o actualiza una tupla actualizada por otra Transaccin (an no finalizada) La Transaccin B actualiza la tupla t en el tiempo t1 La Transaccin A recupera la tupla t en el tiempo t2 La Transaccin B deshace la actualizacin de la tupla t en el tiempo t3 (undo) La Transaccin A est operando bajo suposicin falsa

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes

Problema del anlisis inconsistente (graficar)

La Transaccin A acumula saldos de 3 cuentas (c1,c2,c3) La Transaccin B transfiere $10 de c3 a c1 y se confirma, antes de que A acumule el saldo de la cuenta c3 Si A finaliza con xito, produce inconsistencia en la BD
IBD - CLASE 18 UNLP - Facultad de Informtica

10

Entornos concurrentes

Conclusiones

El programa debe conservar la consistencia Slo las instrucciones READ y WRITE son importantes y deben considerarse.

11

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes

La secuencia de ejecucin de transacciones se denominan planificacin. Representa el orden cronolgico en el cual se ejecutan las instrucciones del sistema.
Planificacin secuencial: consiste de una secuencia de instrucciones de varias transacciones, en la cual las instrucciones pertenecientes a una nica transaccin estn juntas.
12
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

Cuando se ejecutan concurrentemente varias transacciones, la planificacin no tiene por qu ser secuencial. Son posibles muchas ms secuencias de ejecucin, puesto que varias instrucciones de distintas transacciones se pueden intercalar.

13

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Seriabilidad

La ejecucin concurrente de varias transacciones debe generar el mismo resultado que la ejecucin en serie de las mismas. La ejecucin de un conj. de transacciones es correcta cuando es seriable (produce el mismo resultado que una ejecucin serial de las mismas transacciones, ejecutando una a la vez)

14

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Seriabilidad

1. Las transacciones individuales son tomadas como correctas (se da por hecho que transforman un estado correcto de BD en otro estado correcto) 2. Es correcta la ejecucin de una transaccin a la vez en cualquier orden serial 3. Una ejecucin intercalada es correcta cuando equivale a alguna ejecucin serial (es seriable)
15
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Seriabilidad

Dado un conj. de transacciones, a cualquier ejecucin de ellas (intercaladas o no) se le llama Plan La ejecucin de una transaccin a la vez, sin intercalado, constituye un Plan Serial Un Plan no serial es intercalado Dos planes son equivalentes cuando garantizan que producirn el mismo resultado independientemente del estado inicial de la BD Un Plan es correcto, cuando equivale a un Plan Serial
16
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Si una transaccin Ti falla, es necesario deshacer el efecto de dicha transaccin para asegurar atomicidad Es necesario asegurar tambin que toda transaccin Tj que dependa de Ti (Tj lee datos que ha escrito Ti) se aborte tambin. Planificacin recuperable: aquella en la que para todo par de transacciones Ti y Tj, tales que Tj lee elem. de datos que ha escrito antes Ti, la operacin comprometer de Ti aparece antes que la de Tj.
17
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

Conflicto en planificaciones serializables:

I1, I2 instrucciones de T1 y T2
Si operan sobre datos distintos. NO hay conflicto. Si operan sobre el mismo dato I1 = READ(Q) = I2, no importa el orden de ejecucin I1 = READ(Q), I2 = WRITE(Q) depende del orden de ejecucin (I1 leer valores distintos) I1 = WRITE(Q), I2 = READ(Q) depende del orden de ejecucin (I2 leer valores distintos) I1 = WRITE(Q) = I2, depende el estado final de la BD

I1, I2 estn en conflicto si actan sobre el mismo dato y al menos una es un write.
18
IBD - CLASE 18 UNLP - Facultad de Informtica

Entornos concurrentes

Una Planificacin S se transforma en una S mediante intercambios de instrucciones no conflictivas, entonces S y S son equivalentes en cuanto a conflictos. S es serializable en conflictos si existe S/ son equivalentes en cuanto a conflictos y S es planificable serie.
Algoritmo para determinar seriabilidad de conflictos: grafo dirigido (grafo de precedencia)
19
IBD - CLASE 18 UNLP - Facultad de Informtica

Pruebas de seriabilidad

Entornos concurrentes
Conjunto de vrtices (transacciones de la planificacin) Cto de aristas ( Ti Tj /

Ti ejecuta un write(q) antes que Tj un read(q) Ti ejecuta un write(q) antes que Tj un write(q) Ti ejecuta un read(q) antes que Tj un write(q)

Si el grafo tiene ciclos la planificacin no es serializable en conflictos.

20

IBD - CLASE 18

UNLP - Facultad de Informtica

Entornos concurrentes

Mtodos de control de concurrencia

Bloqueo Basado en hora de entrada

21

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Bloqueo

Cuando una Transaccin deba asegurarse que algn objeto sobre el que tenga inters (una tupla) no cambiar mientras lo use, adquiere un Bloqueo sobre ese objeto
Dos tipos de Bloqueos:
Exclusivos (de escritura) Compartidos (de lectura)

22

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Bloqueo

Si la Transaccin A pone un bloqueo exclusivo Lock_e(dato) sobre la tupla t -> se rechaza el pedido de cualquier otra transaccin para un bloqueo de cualquier tipo sobre t Si la Transaccin A pone un bloqueo compartido Lock_c(dato) sobre la tupla t:
se rechaza el pedido de cualquier otra transaccin para un bloqueo exclusivo sobre t se acepta el pedido de cualquier otra transaccin para un bloqueo compartido sobre t

23

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Protocolo de Bloqueo

Una Transaccin que desea recuperar una tupla t, primero debe adquirir un bloqueo compartido sobre t
Una Transaccin que desea actualizar una tupla t, primero debe adquirir un bloqueo exclusivo sobre t Si el bloqueo pedido por una Transaccin B se rechaza porque conflicta con un bloqueo de la Transaccin A , entonces B pasa a espera hasta que se libere el bloqueo de A Las transacciones piden lo que necesitan. Los bloqueos pueden ser compatibles y existir simultneamente (compartidos)
24
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Deadlock (Abrazo Mortal)


Situacin en la que dos o ms transacciones se encuentran en estado simultneo de espera Si ocurre Deadlock el sistema lo debe detectar y romper La deteccin implica descubrir un ciclo en el grafo de espera (el grafo de quin est esperando a quin) La ruptura implica seleccionar una transaccin bloqueada mortalmente como vctima y deshacerla (liberando as su bloqueo)
25
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Deadlock
lock_e(b) Read(b) b := b + 50 write(b) lock_e(a)

lock_c(a) read(a) lock_c(b)

Una de las dos debe retroceder, liberando sus datos.


IBD - CLASE 18 UNLP - Facultad de Informtica

26

Control de Concurrencia

Protocolo de Bloqueo

El Problema de la actualizacin perdida (graficar) -> Deadlock

Problema de la dependencia no confirmada (graficar)

Problema del anlisis inconsistente (graficar) -> Deadlock

27
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Conclusiones

Si lo datos se liberan pronto se evita posible Deadlock Si los datos se mantienen bloqueados se evita inconsistencia.

28

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia

Es posible que haya una secuencia de transacciones que soliciten un bloqueo en modo compartido sobre elemento de datos y que cada una de ellas libere el bloqueo poco despus de que sea concedido, de forma de que otra transaccin T1 nunca obtenga el bloqueo en modo exclusivo. La transaccin T1 nunca progresa (Inanicin) Para evitar inanicin, cuando la transaccin Ti pide un bloqueo sobre un elem. de datos Q en un modo particular M, se concede el bloqueo siempre que: No exista otra transaccin que posea un bloqueo sobre Q en un modo que conflicte con M No exista otra transaccin que est esperando un bloqueo sobre Q y que lo haya solicitado antes que Ti
29
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Protocolos de bloqueo

Dos fases
Requiere que las transacciones hagan bloqueos en dos fases:
Crecimiento: se obtienen datos (una transaccin puede obtener bloqueos pero no puede liberar ningn bloqueo) Decrecimiento: se liberan los datos (una transaccin puede liberar bloqueos pero no puede obtener ningn bloqueo nuevo.)

Como se consideran operaciones


Fase crecimiento: se piden bloqueos en orden: compartido, exclusivo. No se liberan bloqueos Fase decrecimiento: se liberan bloqueos o se pasa de exclusivo a compartido (conversiones de bloqueos).

Garantiza seriabilidad (secuencialidad) en conflictos, pero no evita situaciones de bloqueos. Mucho bloqueo exclusivo provoca serie
30
IBD - CLASE 18 UNLP - Facultad de Informtica

Control de Concurrencia

Protocolo basado en hora de entrada


El orden de ejecucin se determina por adelantado, no depende de quien llega primero A cada transaccin Ti del sistema se le asocia una hora de entrada fija nica. El sistema de Base de Datos asigna una hora de entrada antes de que la transaccin Ti empiece su ejecucin. C/transaccin recibe una HDE
Hora del servidor Un contador (contador lgico que se incrementa despus de asignar una nueva hora de entrada)

Si HDE(Ti) < HDE(Tj), Ti es anterior y se ejecuta primero


IBD - CLASE 18 UNLP - Facultad de Informtica

31

Control de Concurrencia

Las operaciones READ y WRITE que pueden entrar en conflicto se ejecutan y eventualmente fallan por HDE.

Algoritmo de ejecucin:
Ti Solicita READ(Q)
HDE(Ti) < HW(Q): rechazo (Ti necesita leer un valor de Q que ya fue sobreescrito. Ti retrocede y la operacin READ se rechaza porque el valor que deba leer Ti, ya lo sobreescribi otra transaccin ) HDE(Ti) HW(Q): ejecuta y se establece HR(Q)=Max{HDE(Ti), HR(Ti)}

32

IBD - CLASE 18

UNLP - Facultad de Informtica

Control de Concurrencia
Ti solicita WRITE(Q)
HDE(Ti) < HR(Q): rechazo (Q fue utilizado por otra transaccion anteriomente y supuso que no cambiaba) HDE(Ti) < HW(Q): rechazo (se intenta escribir un valor viejo, obsoleto) HDE(Ti) > [HW(Q) y HR(Q)]: ejecuta y HW(Q) se establece con HDE(Ti).

Si Ti falla, y se rechaza entonces puede recomenzar con una nueva hora de entrada.
33
IBD - CLASE 18 UNLP - Facultad de Informtica

Recuperacin en caso de fallos

Consideraciones del protocolo basado en bitcora


Existe un nico buffer de datos compartidos y uno para la bitcora C/transaccin tiene un rea donde lleva sus datos El retroceso de una transaccin puede llevar al retroceso de otras transacciones

Retroceso en cascada

Falla una transaccin pueden llevar a abortar otras Puede llevar a deshacer gran cantidad de trabajo.

34

IBD - CLASE 18

UNLP - Facultad de Informtica

Recuperacin en caso de fallos

Puede ocurrir que falle Ti, y que Tj deba retrocederse, pero que Tj ya termin. Como actuar?
Protocolo de bloqueo de dos fases: los bloqueos exclusivos deben conservarse hasta que Ti termine. HDE, agrega un bit, para escribir el dato, adems de lo analizado, revisar el bit si est en 0 proceder, si est en 1 la transaccin anterior no termino, esperar....

35

IBD - CLASE 18

UNLP - Facultad de Informtica

Recuperacin en caso de fallos

Bitcora

Idem sistemas monousuarios Como proceder con checkpoint


Colocarlo cuando ninguna transaccin est activa. Puede que no exista el momento. Checkpoint<L> L lista de transacciones activa al momento del checkpoint.

Ante un fallo
UNDO y REDO segn el caso. Debemos buscar antes del Checkpoint solo aquellas transacciones que estn en la lista.

36

IBD - CLASE 18

UNLP - Facultad de Informtica

Interbloqueos

Como evitar los deadlock (interbloqueo)


Prevenirlos (evitarlos) Detectarlos (recuperarlos)

Prevencin

Tomar todos los datos que se necesitan


Si hay xito la transaccin prosigue No hay xito la transaccin espera
Posible inanicin (se puede mejorar con prioridades)

Ordenar los datos parcialmente, se obtienen en orden o nada HDE puede manejar prioridades para evitar inanicin.
37
IBD - CLASE 18 UNLP - Facultad de Informtica

Interbloqueos

Deteccin: Algoritmo

Detecta el bloqueo
Genera un grafo de pedidos de datos, si encuentra ciclo deadlock

Corrige: Seleccin de la vctima


Eleccin: costo mnimo
La ltima que empez, la que haya realizado menos trabajo, la que haya realizado menos escrituras, la de menor prioridad

Retroceder hasta donde? Evitar inanicin de la transaccin retrocedida.

38

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Integridad: proteccin ante prdidas accidentales de


consistencia Problemas durante el procesamiento de transacciones. Control de concurrencia Anomalas causadas por la distribucin de datos sobre varias computadoras Error lgico en una transaccin que viola protecciones de inconsistencia (Ej: saldo negativo no permitido)

39

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Seguridad: proteccin contra intentos


malintencionados para modificar datos Nivel fsico Nivel humano Nivel SO Red DBMS

40

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Nivel de seguridad fsico


Proteccin del equipo ante problemas naturales, fallo de energa, etc. Proteccin del HD contra robos, borrados, daos fsicos Proteccin de la red contra daos fsicos Soluciones
Replicar el hardware (discos espejos, mltiples accesos a la red (varios cables)) Seguridad fsica (policia)

41

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Nivel de seguridad Humano


Protejerse ante robo de password. Distintas polticas.
Cambiar frecuentemente la password No usar accesos guest Auditar datos, ver que no use siempre las mismas password.

Nivel de seguridad de SO
Proteccin contra logins invalidos Validar la cantidad de intentos de login Proteccin de acceso a nivel de archivos
42
IBD - CLASE 18 UNLP - Facultad de Informtica

Seguridad e Integridad

Nivel de seguridad de Red


Cada sitio debe asegurar que se comunica con sitios autorizados Los links deben protegerse contra robos y modificacin de mensajes Mecanismos de identificacin y cifrado de mensajes.

43

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Nivel de BD
Asumir la seguridad en todos los niveles anteriores Usos especficos de la BD
Las autorizaciones de usuarios pueden ser sobre archivos, relaciones, o parte de estos. Cada usuario debe tener su autorizacin para leer y/o escribir solo parte de los datos

44

IBD - CLASE 18

UNLP - Facultad de Informtica

Seguridad e Integridad

Seguridad tema del DBA a nivel BD

Autorizaciones a usuarios
Lectura/escritura Agregar, modificar o borrar datos Crear ndices Alterar o eliminar relaciones (poco probable) Modificar el esquema de recursos en la BD (poco probable)

Cifrado de datos

ocultar datos para que no sean visibles


45
IBD - CLASE 18 UNLP - Facultad de Informtica

También podría gustarte