procesamiento de transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · bd t2 ko...

33
1 Procesamiento de Transacciones Competencias específicas Explicar el concepto, propiedades y estados de las transacciones en sistemas de bases de datos. Identificar los problemas asociados a la concurrencia de transacciones en los sistemas de bases de datos. Controlar la concurrencia de transacciones mediante la aplicación de técnicas Controlar la concurrencia de transacciones mediante la aplicación de técnicas apropiadas. Aplicar el concepto de seriabilidad a un plan de transacciones. 1 Tema 6. Procesamiento de Transacciones Contenidos Procesamiento de Transacciones 6.1 Conceptos básicos de transacciones 6.2. Concurrencia de transacciones 6.3 Gestión y control de concurrencia de transacciones en SQL-92 2 Tema 6. Procesamiento de Transacciones

Upload: ngodan

Post on 29-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

1

Procesamiento de Transacciones

Competencias específicas

• Explicar el concepto, propiedades y estados de las transacciones en sistemas de bases de datos.

• Identificar los problemas asociados a la concurrencia de transacciones en los sistemas de bases de datos.

• Controlar la concurrencia de transacciones mediante la aplicación de técnicas• Controlar la concurrencia de transacciones mediante la aplicación de técnicas apropiadas.

• Aplicar el concepto de seriabilidad a un plan de transacciones.

1Tema 6. Procesamiento de Transacciones

Contenidos

Procesamiento de Transacciones

6.1 Conceptos básicos de transacciones

6.2. Concurrencia de transacciones

6.3 Gestión y control de concurrencia de transacciones en SQL-92

2Tema 6. Procesamiento de Transacciones

Page 2: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

2

Procesamiento de Transacciones

Bibliografía más relevante

• [EN 2007] capítulos 17 y 18;

• [CBS 2005] capítulo 20.;

• [SKS 2002] capítulos 15 y 16

3Tema 6. Procesamiento de Transacciones

• Unidad lógica de procesamiento– Secuencia de operaciones que implican accesos a la base de datos– ejemplo: transferencia de dinero entre dos cuentas bancarias

Pero también se considera

Concepto de transacción

• Pero también se considera... – Unidad lógica de integridad– Unidad lógica de concurrencia– Unidad lógica de recuperación

Una transacción es atómicaO se ejecutan todas las operaciones

que componen la transacción,o no se realiza ninguna

4

Page 3: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

3

• Inicio de una transacción– Sentencia SQL (LDD o LMD) interactiva– Sentencia SQL incluida en un programa (si no tiene ya transacción en progreso)

• Fin de una transacción

Concepto de transacción

• Fin de una transacción– Confirmar (COMMIT) xor Anular (ROLLBACK)– Ambas operaciones pueden ser de tipo explícito o implícito

T1Fin OK

COMMIT T1

BDT2 KO ROLLBACK T2

SGBD

5Tema 6. Procesamiento de Transacciones

• Atomicidad– Todo o nada

• Conservación de la Consistencia– T lleva la BD de un estado de consistencia a otro

Propiedades de una transacciónSubSistema deRecuperación

SS de Integridad+ P d– T lleva la BD de un estado de consistencia a otro

– No necesariamente se mantiene la consistencia “a mitad de T”

• Aislamiento (Isolation)– T no muestra los cambios que produce hasta que finaliza– Puede no imponerse de forma estricta (niveles de aislamiento)

• Durabilidad

+ Programadores

SS de Control deConcurrencia

– Una vez que T finaliza con éxito y es confirmada, los cambios perduran aunque el sistema falle después

Conocidas como propiedades ACID

SubSistema deRecuperación

6Tema 6. Procesamiento de Transacciones

Page 4: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

4

LEER / ESCRIBIR

Diagrama de Transición de Estados de la ejecución de una transacción

Operaciones y Estados de una transacción

Verificaciones para control de concurrencia

y recuperación

ACTIVAPARCIALMENTE CONFIRMADA CONFIRMADA

ESCRIBIRINICIO DETRANSACCIÓN

FIN DE TRANSACCION CONFIRMAR

ABORTAR

ABORTAR

TERMINADAFALLIDA

Otras:

* DESHACER una operación

* REHACER (algunas operaciones de) una transacción

7Tema 6. Procesamiento de Transacciones

Inicio de transacción– Cuando no hay ya una transacción en progreso, y se ejecuta una sentencia

LDD o LMD (interactivamente o dentro de una aplicación)– Cada sentencia LDD es tratada como una transacción – No existe sentencia de tipo BEGIN TRANSACTION

Control de transacciones en Oracle

p

Fin de transacción• COMMIT ☺

– Finaliza la transacción actual y hace permanentes (confirma) los cambios realizados

– COMMIT implícito (por parte del SGBD)• El programa finaliza de forma normal• Se sale de la herramienta (SQL*Plus ) correctamente• Se sale de la herramienta (SQL Plus, ...) correctamente• Se ejecuta una sentencia LDD

– Oracle realiza COMMIT antes y después (si tiene éxito) de ejecutarla

– COMMIT explícito (por parte del programador/usuario)COMMIT [WORK] ;

8Tema 6. Procesamiento de Transacciones

Page 5: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

5

Fin de transacción (cont.)

• ROLLBACK– Finaliza la transacción actual y deshace los cambios realizados– ROLLBACK implícito (por parte del SGBD)

Control de transacciones en Oracle (2)

• La aplicación finaliza de forma anormal• Se sale de la herramienta (SQL*Plus, ...) cerrando la ventana

– ROLLBACK explícito (por parte del programador/usuario)ROLLBACK [WORK] [TO SAVEPOINT savepoint];

9Tema 6. Procesamiento de Transacciones

• Los sistemas de bases de datos, según el número de usuarios que pueden utilizarlos de forma concurrente, se

Introducción a la concurrencia de transacciones

clasifican en sistemas monousuario y multiusuario

• Varios usuarios pueden usar un mismo equipo a la vez gracias a la multiprogramación: el computador puede procesar al mismo tiempo varias transacciones– Si el equipo tiene varias CPU, es posible el procesamiento q p , p p

simultáneo (paralelo) de transacciones– Si sólo hay una CPU, el SO de multiprogramación reparte el

tiempo de CPU entre las transacciones: ejecución concurrente intercalada

modelo que supondremos

10Tema 6. Procesamiento de Transacciones

Page 6: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

6

• Varias transacciones introducidas por usuarios, que se ejecutan de manera concurrente, pueden leer/modificar

Introducción a la concurrencia de transacciones

los mismos elementos almacenados en la base de datos

• Razones para permitir la concurrencia:– Aumentar la productividad: número de transacciones ejecutadas por

minuto.– Aumentar la utilización de la CPU (menos tiempo ociosa) y Control

del disco.– Reducir el tiempo medio de respuesta de transacciones (las

‘pequeñas’ no esperan a las ‘grandes’).

11Tema 6. Procesamiento de Transacciones

• ... porque pueden surgir problemas si las transacciones concurrentes se ejecutan de manera no controlada

Problemas de la concurrencia

¿Por qué es necesario el control de la concurrencia?

• Ejemplo sencillo:sistema de bases de datos que permite hacer y anular reservas de plazas en vuelos de diferentes compañías aéreas.– Se almacena un registro por cada vuelo, que incluye, entre otras

cosas, el número de asientos reservados en el vuelo– Sean dos transacciones T1 y T2 concurrentes:

• T1 transfiere N reservas realizadas en un vuelo X a otro vuelo Y• T2 reserva M plazas en el vuelo X

12Tema 6. Procesamiento de Transacciones

Page 7: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

7

Problemas de la concurrencia

Problemas potenciales provocados por la concurrencia

Transacción T1leer_elemento(X);X: X N;

Transacción T2leer_elemento(X);X: X+M;X:= X-N;

escribir_elemento(X);leer_elemento(Y);Y:=Y+N;escribir_elemento(Y);

X:= X+M;escribir_elemento(X);

• Aunque las transacciones pueden ser perfectamente correctas en sí mismas, la ejecución concurrente de T1 y T2

d d i l d i d bid lpuede producir un resultado incorrecto, debido a la intercalación de sus operaciones, poniendo en cuestión la integridad y la coherencia de la base de datos

13Tema 6. Procesamiento de Transacciones

• La actualización perdida– T1 y T2 que acceden a los mismos datos, tienen sus operaciones

intercaladas de modo que hacen incorrecto el valor de algún dato

Problemas de la concurrencia

Problemas potenciales provocados por la concurrencia

intercaladas de modo que hacen incorrecto el valor de algún dato

T1leer_elemento(X);X:= X-N;

escribir_elemento(X);leer elemento(Y);

T2

leer_elemento(X);X:= X+M;

escribir elemento(X);leer_elemento(Y);

Y:=Y+N;escribir_elemento(Y);

escribir_elemento(X);

El elemento X tiene un valor incorrecto porque su actualización por T1 se ‘perdió’ (se sobreescribió)

14Tema 6. Procesamiento de Transacciones

Page 8: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

8

• La actualización temporal (o lectura sucia)– T1 actualiza un elemento X de la BD y luego falla, pero antes de que

se restaure el valor original de X, T2 tiene acceso al «valor temporal»

Problemas de la concurrencia

Problemas potenciales provocados por la concurrencia

se restaure el valor original de X, T2 tiene acceso al valor temporal de X

T1leer_elemento(X);X:= X-N;escribir_elemento(X);

T2

leer_elemento(X);X:= X+M;

leer_elemento(Y);…

X: X+M;escribir_elemento(X);

T1 falla y debe devolver a X su antiguo valor; pero mientras, T2 ha leído el valor ‘temporal’ incorrecto de X (dato sucio)

15Tema 6. Procesamiento de Transacciones

• El resumen incorrecto– Otra transacción T3 calcula una función agregada de resumen sobre

varios registros (suma las plazas reservadas para todos los vuelos), mientras

Problemas de la concurrencia

Problemas potenciales provocados por la concurrencia

varios registros (suma las plazas reservadas para todos los vuelos), mientras otras transacciones, como T1, actualizan dichos registros: puede que T3 considere unos registros antes de ser actualizados y otros después

T1

leer_elemento(X);X:= X-N;escribir elemento(X);

T3suma:=0;leer_elemento(A);suma:= suma+A;……… T3 lee X después de

t N l Y escribir_elemento(X);

leer_elemento(Y);Y:=Y+N;escribir_elemento(Y);

leer_elemento(X);suma:= suma+X;leer_elemento(Y);suma:= suma+Y;………

restar N, pero lee Y antes de sumar N, así que el resultado es un resumen incorrecto (discrepancia de N)

16Tema 6. Procesamiento de Transacciones

Page 9: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

9

• La lectura no repetible– T4 lee un elemento X dos veces y otra transacción, como T1, modifica

dicho X entre las dos lecturas: T4 recibe diferentes valores para el

Problemas de la concurrencia

Problemas potenciales provocados por la concurrencia

dicho X entre las dos lecturas: T4 recibe diferentes valores para el mismo elemento

T1leer_elemento(X);X:= X-N;

escribir_elemento(X);leer_elemento(Y);

T4

leer_elemento(X); T4 lee X antes de restar N

_ ( );

Y:=Y+N;escribir_elemento(Y);

…leer_elemento(X);…

T4 lee X después de restar N

17Tema 6. Procesamiento de Transacciones

Resumen

• Qué es una transacciónQué es una transacción

• ACID

• Commit Vs Rollback

• Qué problemas plantea la concurrencia de transacciones

18Tema 6. Procesamiento de Transacciones

Page 10: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

10

• Objetivo de un protocolo de control de concurrencia: – Planificar las transacciones de forma que no ocurran

interferencias entre ellas y así evitar la aparición de los

Serializabilidad

Motivación

interferencias entre ellas, y así evitar la aparición de los problemas mencionados

• Solución obvia: no permitir intercalación de operaciones de varias transacciones

T1leer_elemento(X);X:= X-N;escribir_elemento(X);leer elemento(Y);

T2 T1

leer elemento(X);

T2leer_elemento(X);X:= X+M;escribir_elemento(X);

Planificación A

leer_elemento(Y);Y:=Y+N;escribir_elemento(Y);

leer_elemento(X);X:= X+M;escribir_elemento(X);

Planificación B

leer_elemento(X);X:= X-N;escribir_elemento(X);leer_elemento(Y);Y:=Y+N;escribir_elemento(Y);

19Tema 6. Procesamiento de Transacciones

• Pero el objetivo de un SGBD multiusuario también es maximizar el grado de concurrencia del sistema

• Si se permite la intercalación de operaciones, existen muchos órdenes

Serializabilidad

Motivación

p pposibles de ejecución de las transacciones

T1leer_elemento(X);X:= X-N;

escribir_elemento(X);leer_elemento(Y);

T2

leer_elemento(X);X:= X+M;

escribir_elemento(X);

T1leer_elemento(X);X:= X-N;escribir_elemento(X);

leer_elemento(Y);

T2

leer_elemento(X);X:= X+M;escribir_elemento(X);

¿Existe algún modo de identificar las ejecuciones que está garantizado que protegen la consistencia de la base de datos?

Teoría de la Serializabilidad

Planificación C: actualización perdida!

Y:=Y+N;escribir_elemento(Y);

esc b _e e e to( );

Planificación D: correcta!

( );Y:=Y+N;escribir_elemento(Y);

20Tema 6. Procesamiento de Transacciones

Page 11: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

11

• Cada transacción comprende una secuencia de operaciones que incluyen acciones de lectura y escritura en la BD, que fi li fi ió l ió

Serializabilidad

Planificación de transacciones

finaliza con una confirmación (commit) o anulación (rollback)

• Una planificación P de n transacciones concurrentesT1, T2 ... Tn es una secuencia de las operaciones realizadas por dichas transacciones, sujeta a la restricción de que

para cada transacción Ti que participa en P, isus operaciones aparecen en Pen el mismo orden en el que ocurren en Ti

21Tema 6. Procesamiento de Transacciones

• Para el control de la concurrencia (y recuperación de fallos) interesa prestar mayor atención a estas operaciones:

Serializabilidad

Planificación de transacciones

ó

• Ejemplos de planificaciones de transacciones– El subíndice de cada operación indica la transacción que la realizaP l (X) (X) l (Y) (Y) l (X) (X)

operación abreviatura

leer_elemento lescribir_elemento ecommit crollback r

PA: l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; c1 ; l2(X) ; e2(X) ; c2 ; PB: l2(X) ; e2(X) ; c2 ; l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; c1 ;PC: l1(X) ; l2(X) ; e1(X) ; l1(Y) ; e2(X) ; c2 ; e1(Y) ; c1 ;PD: l1(X) ; e1(X) ; l2(X) ; e2(X) ; c2 ; l1(Y) ; e1(Y) ; c1 ;PE: l1(X) ; e1(X) ; l2(X) ; e2(X) ; c2 ; l1(Y) ; r1 ;

22Tema 6. Procesamiento de Transacciones

Page 12: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

12

• Una planificación serie P es aquella en la que las operaciones de cada transacción se ejecutan consecutivamente sin que se intercalen operaciones de

Serializabilidad

Planificación serie

consecutivamente sin que se intercalen operaciones de otras transacciones

PA: l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; c1 ; l2(X) ; e2(X) ; c2 ; PB: l2(X) ; e2(X) ; c2 ; l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; c1 ;

• Toda planificación serie es correcta BD consistente• Pero no se garantiza que los resultados de todas las

ejecuciones en serie de las mismas transacciones sean idé tiidénticos– Ejemplo: cálculo del interés de una cuenta bancaria antes o después de realizar

un ingreso considerable

en general, son inaceptables en la práctica (ineficiencia)

23Tema 6. Procesamiento de Transacciones

• Una planificación no serie P es aquella en la que las operaciones de un conjunto de transacciones

t j t i t l d

Serializabilidad

Planificación no serie

concurrentes se ejecutan intercaladasPC: l1(X) ; l2(X) ; e1(X) ; l1(Y) ; e2(X) ; c2 ; e1(Y) ; c1 ;PD: l1(X) ; e1(X) ; l2(X) ; e2(X) ; c2 ; l1(Y) ; e1(Y) ; c1 ;

• Hemos de determinar qué planificaciones no serie permiten llevar la BD a un estado al que pueda

KO

permiten llevar la BD a un estado al que pueda llegarse mediante una ejecución en serie

Este es el objetivo de la Serializabilidad

24Tema 6. Procesamiento de Transacciones

Page 13: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

13

• Una planificación P (no serie) es serializable si es equivalente a alguna planificación serie de las

i i

Serializabilidad

Planificación serializable

mismas n transacciones– Una planificación que no es equivalente a ninguna ejecución en

serie, es una planificación no serializable

• Toda planificación serializable es correcta– Produce los mismos resultados que alguna ejecución en serie

• Dos maneras de definir la equivalencia entre planificaciones:q p– Equivalencia por conflictos– Equivalencia de vistas

25Tema 6. Procesamiento de Transacciones

• Si dos transacciones únicamente leen un determinado elemento de datos, no entran en conflicto entre sí y el

d d l i i

Serializabilidad

Equivalencia por conflictos

orden de las operaciones no es importante

• Si hay dos transacciones que leen o escriben elementosde datos independientes, no entran en conflicto entre sí y el orden de las operaciones no es importante

• Si una de las transacciones escribe un elemento de datos y la otra lee o escribe el mismo elemento, entran en y ,conflicto y el orden de las operaciones sí es importante

26Tema 6. Procesamiento de Transacciones

Page 14: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

14

• En una planificación, 2 operaciones están en conflicto si – pertenecen a diferentes transacciones,– tienen acceso al mismo elemento X

Serializabilidad

Equivalencia por conflictos

tienen acceso al mismo elemento X,– y al menos una de ellas es escribir_elemento(X)

Operaciones en conflicto en las planificaciones PC y PD:

PC: l1(X) ; l2(X) ; e1(X) ; l1(Y) ; e2(X) ; c2 ; e1(Y) ; c1;

PD: l1(X) ; e1(X) ; l2(X) ; e2(X) ; c2 ; l1(Y) ; e1(Y) ; c1 ;

• Dos planes son equivalentes por conflictos si el orden de cualesquiera dos operaciones en conflicto es el mismo en ambos planes

27Tema 6. Procesamiento de Transacciones

• Una planificación P es serializable por conflictos si equivale por conflictos a alguna planificación serie S

Podremos intercambiar cada dos operaciones de P consecutivas de

Serializabilidad

Planificación serializable por conflictos

Podremos intercambiar cada dos operaciones de P consecutivas de transacciones distintas y sin conflicto, hasta obtener la planificación serie equivalente

PD : l1(X) ; e1(X) ; l2(X) ; e2(X) ; c2 ; l1(Y) ; e1(Y) ; c1 ;PD1: l1(X) ; e1(X) ; l2(X) ; e2(X) ; l1(Y) ; c2 ; e1(Y) ; c1 ;PD2: l1(X) ; e1(X) ; l2(X) ; e2(X) ; l1(Y) ; e1(Y) ; c2 ; c1 ;PD3: l1(X) ; e1(X) ; l2(X) ; e2(X) ; l1(Y) ; e1(Y) ; c1 ; c2 ; PD4: l1(X) ; e1(X) ; l2(X) ; l1(Y) ; e2(X) ; e1(Y) ; c1 ; c2 ; P : l (X) ; e (X) ; l (X) ; l (Y) ; e (Y) ; e (X) ; c ; c ; PD5: l1(X) ; e1(X) ; l2(X) ; l1(Y) ; e1(Y) ; e2(X) ; c1 ; c2 ; PD6: l1(X) ; e1(X) ; l2(X) ; l1(Y) ; e1(Y) ; c1 ; e2(X) ; c2 ; PD7: l1(X) ; e1(X) ; l1(Y) ; l2(X) ; e1(Y) ; c1 ; e2(X) ; c2 ; PD8: l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; l2(X) ; c1 ; e2(X) ; c2 ; PD9: l1(X) ; e1(X) ; l1(Y) ; e1(Y) ; c1 ; l2(X) ; e2(X) ; c2 ;

¡Es una planificación serie! PD es serializable

28Tema 6. Procesamiento de Transacciones

Page 15: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

15

• Construcción del grafo de precedencia (o de serialización)– Es un grafo dirigido G = ( N, A )

Serializabilidad

Detección de la serializabilidad por conflictos

– N es un conjunto de nodos y A es un conjunto de aristas dirigidas– Algoritmo:

• Crear un nodo por cada transacción Ti en P

• Crear una arista Tj →Tk si Tk lee el valor de un elemento después de que Tj lo haya escrito

• Crear una arista Tj →Tk si Tk escribe el valor de un elemento después de que Tjlo haya leído

ib l l d l d é d

Ti

• Crear una arista Tj →Tk si Tk escribe el valor de un elemento después de que Tjlo haya escrito

Tj Tk

29Tema 6. Procesamiento de Transacciones

• Una arista Tj → Tk indica que Tj debe aparecer antes que Tken una planificación serie equivalente a P, pues dos

i fli t di h d P

Serializabilidad

Detección de la serializabilidad por conflictos (y 2)

operaciones en conflicto aparecen en dicho orden en P

• Si el grafo contiene un ciclo, P no es serializable por conflictos– Un ciclo es una secuencia de aristas C=((Tj →Tk), (Tk →Tp),... (Ti →Tj))

• Si no hay ciclos en el grafo, P es serializableEs posible obtener una planificación serie S equivalente a P, mediante unaEs posible obtener una planificación serie S equivalente a P, mediante una ordenación topológica de los nodos

T1 T2PA

T1 T2PB

T1 T2

PC

T1 T2PD

30Tema 6. Procesamiento de Transacciones

Page 16: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

16

Serializabilidad

Ejemplo de planificación no serializableTransacción T1leer_elemento(X);escribir_elemento(X);

Transacción T2leer_elemento(Z);leer_elemento(Y);

Transacción T3leer_elemento(Y);leer_elemento(Z);;

leer_elemento(Y);escribir_elemento(Y);

;escribir_elemento(Y);leer_elemento(X);escribir_elemento(X);

;escribir_elemento(Y);escribir_elemento(Z);

T1 T2leer_elemento(Z);leer_elemento(Y); escribir_elemento(Y);

T3

leer_elemento(Y);leer elemento(Z);

T1 T2

Y

XY ZY

Planificación E

leer_elemento(X);escribir_elemento(X);

leer_elemento(Y);escribir_elemento(Y);

leer_elemento(X);

escribir_elemento(X);

leer_elemento(Z);

escribir_elemento(Y);escribir_elemento(Z);

T3

Y,ZY

Hay dos ciclos:T1→T2→T1 yT1→T2→T3→T1

31Tema 6. Procesamiento de Transacciones

Serializabilidad

Ejemplo de planificación serializableTransacción T1leer_elemento(X);escribir_elemento(X);

Transacción T2leer_elemento(Z);leer_elemento(Y);

ibi l (Y)

Transacción T3leer_elemento(Y);leer_elemento(Z);;

leer_elemento(Y);escribir_elemento(Y);

escribir_elemento(Y);leer_elemento(X);escribir_elemento(X);

;escribir_elemento(Y);escribir_elemento(Z);

T1

leer_elemento(X);escribir_elemento(X);

T2 T3leer_elemento(Y);leer_elemento(Z);

escribir elemento(Y);

T1 T2X,Y

Y ZY

Planificación F

leer_elemento(Y);escribir_elemento(Y);

leer_elemento(Z);

leer_elemento(Y); escribir_elemento(Y);leer_elemento(X);escribir_elemento(X);

escribir_elemento(Y);escribir_elemento(Z);

T3

Y,ZY

La planificación serie equivalentees T3 → T1 → T2

32Tema 6. Procesamiento de Transacciones

Page 17: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

17

• Carga del sistemaPlanificador deTareas del SO

7.2 Serializabilidad

Aplicaciones de la serializabilidad

Parece, pues, que habría que comprobar si P es serializable una vez ejecutadas las transacciones incluidas en P...

Es el SO el que distribuye los recursos

Planificación P (ordenamiento de las operaciones)

Carga del sistema• Momento de

introducción de lastransacciones

• Prioridades de losprocesos...

Ejecución de Transacciones

NOSI

Cancelar el efecto de P

reintentar

¿P serializable?

para los procesos, y determina la intercalación de las operaciones de las transacciones concurrentes(ejecutadas como procesos del SO)

Es necesario encontrar técnicas que garanticen la serializabilidad, sin tener que verificar a posteriori

¡¡enfoque muy poco práctico!!

NOSIOK

33Tema 6. Procesamiento de Transacciones

Ejercicios de serializabilidad

34Tema 6. Procesamiento de Transacciones

Page 18: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

18

• Métodos basados en la teoría de la serializabilidad, que definen un conjunto de reglas (o protocolo) tal que...– si todas las transacciones las cumplen, o

l b i t d t l d i d l SGBD l

Técnicas de control de concurrencia

– el subsistema de control de concurrencia del SGBD las impone (automáticamente)

... se asegura la serializabilidad de toda planificación de transacciones

• Clasificación– Métodos de bloqueo– Métodos de marca de tiempo– Técnicas de multiversión– Métodos optimistas

35Tema 6. Procesamiento de Transacciones

• Uso de bloqueos para controlar el acceso concurrente a los elementos de datos almacenados en la base de datos

Técnicas de control de concurrencia

Métodos de bloqueo

• Reglas básicas del bloqueo:– Bloqueo compartido: si una transacción tiene un bloqueo compartido

sobre un elemento de datos, puede leer el elemento, pero no actualizarlo (escribir)

Varias transacciones pueden mantener a la vez bloqueos compartidos sobre el mismo elemento

– Bloqueo exclusivo: si una transacción tiene un bloqueo exclusivo sobre un elemento de datos, puede leer y actualizar (escribir) el elemento

Un bloqueo exclusivo proporciona acceso exclusivo al elemento

36Tema 6. Procesamiento de Transacciones

Page 19: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

19

Reglas de uso de los bloqueos1. T debe emitir bloquear_lectura(X) o bloquear_escritura(X) antes de

ó

Técnicas de control de concurrencia

Métodos de bloqueo

ejecutar una operación leer_elemento(X)2. T debe emitir bloquear_escritura(X) antes de realizar una

operación escribir_elemento(X) en T3. T debe emitir desbloquear(X) una vez completadas todas las

operaciones leer_elemento(X) y escribir_elemento(X)4. Si T ya posee un bloqueo, compartido o exclusivo, sobre X

áno emitirá bloquear_lectura(X) ni bloquear_escritura(X)*esta regla puede permitir excepciones: mejora y reducción de bloqueos*

5. T no emitirá desbloquear(X) salvo si posee un bloqueo, compartido o exclusivo, sobre X

37Tema 6. Procesamiento de Transacciones

• Cuando una transacción T solicita un bloqueo…– Si el elemento no ha sido ya bloqueado por otra transacción, se le concede

el bloqueo

Técnicas de control de concurrencia

Métodos de bloqueo

el bloqueo

– Si el elemento sí está bloqueado, el SGBD determina si la solicitud es compatible con el bloqueo existente:

Si se pide un bloqueo compartido sobre un elemento que ya tiene un bloqueo compartido, el bloqueo será concedido a TEn otro caso, T debe esperar hasta que se libere el bloqueo existente

U ió b i bl l i h l lib• Una transacción que obtiene un bloqueo lo mantiene hasta que lo libera explícitamente o termina (commit o rollback)– Sólo cuando se libera un bloqueo exclusivo los efectos de la escritura serán

visibles para las demás transacciones

38Tema 6. Procesamiento de Transacciones

Page 20: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

20

• Algunos sistemas permiten la mejora (o promoción) y la reducción (o degradación) de bloqueos

A t l i l d i d l i t

Técnicas de control de concurrencia

Métodos de bloqueo

– Aumenta el nivel de concurrencia del sistema

• Si T emitió bloquear_lectura(X), más tarde puede mejorarlo a bloqueo exclusivo emitiendo bloquear_escritura(X)– Si T es la única que tiene un bloqueo compartido sobre X, se le

concede la solicitud– En otro caso, T debe esperar

• Si T emitió bloquear escritura(X) más tarde puede reducirlo a• Si T emitió bloquear_escritura(X), más tarde puede reducirlo a un bloqueo compartido emitiendo bloquear_lectura(X)– Así permite que otras transacciones lean X

39Tema 6. Procesamiento de Transacciones

• El uso de bloqueos para la programación de transacciones no garantizala serializabilidad de las planificaciones

Técnicas de control de concurrencia

Métodos de bloqueo

T4bloquear_lectura(Y);leer_elemento(Y);desbloquear(Y);

T5

bloquear_lectura(X);leer_elemento(X);desbloquear(X);bloquear_escritura(Y); leer_elemento(Y);Y:=X+Y;

Transacción T4bloquear_lectura(Y);leer_elemento(Y);desbloquear(Y);bloquear_escritura(X);leer_elemento(X);X:=X+Y;escribir_elemento(X);desbloquear(X);

Transacción T5bloquear_lectura(X);leer_elemento(X);desbloquear(X);bloquear_escritura(Y); leer_elemento(Y);Y:=X+Y;escribir_elemento(Y);desbloquear(Y);

Planificación G

bloquear_escritura(X);leer_elemento(X);X:=X+Y;escribir_elemento(X);desbloquear(X);

Y:=X+Y;escribir_elemento(Y);desbloquear(Y);

Valores iniciales: X=20, Y=30Resultados de las planificaciones serie:T4→T5: X=50, Y=80T5→T4: X=70, Y=50

Resultado de la planificación G:X=50, Y=50 (No serializable!)

40Tema 6. Procesamiento de Transacciones

Page 21: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

21

Es necesario seguir un protocolo adicional que indique dónde colocar las operaciones de bloqueo y desbloqueodentro de las transacciones

Técnicas de control de concurrencia

Métodos de bloqueo: Bloqueo en dos fases

dentro de las transacciones• El más conocido es el Bloqueo en Dos Fases (B2F)• Una transacción T sigue el protocolo de bloqueo en dos

fases si todas las operaciones de bloqueo preceden a la primera operación de desbloqueoDe este modo, podemos ver T dividida en dos fases:– Fase de expansión (o crecimiento)ase de e pa s ó (o c ec e o)

T puede adquirir bloqueos T no puede liberar ningún bloqueo

– Fase de contracciónT puede liberar bloqueos existentesT no puede adquirir ningún bloqueo

41Tema 6. Procesamiento de Transacciones

• Si el sistema permite mejorar y reducir bloqueos…– La mejora sólo puede tener lugar en la fase de expansión

L d ió ól d li l f d t ió

Técnicas de control de concurrencia

Bloqueo en dos fases

– La reducción sólo puede realizarse en la fase de contracciónEn el código de T, un bloquear_lectura(X) puede aparecer en la fase de contracción de T sólo si reduce un bloqueo exclusivo a uno compartido

Transacción T4’bloquear_lectura(Y);leer_elemento(Y);bloquear_escritura(X);desbloquear(Y);

Transacción T5’bloquear_lectura(X);leer_elemento(X);bloquear_escritura(Y); desbloquear(X);desbloquear(Y);

leer_elemento(X);X:=X+Y;escribir_elemento(X);desbloquear(X);

desbloquear(X); leer_elemento(Y);Y:=X+Y;escribir_elemento(Y);desbloquear(Y);

42Tema 6. Procesamiento de Transacciones

Page 22: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

22

• Si toda transacción de una planificación sigue el protocolode bloqueo en dos fases, entonces la planificación es serializable

Técnicas de control de concurrencia

Bloqueo en dos fases

serializable• Ventaja

– Ya no es necesario comprobar la serializabilidad de las planificaciones

• Inconvenientes– El B2F puede limitar el grado de concurrencia en un plan– Emplear bloqueos puede provocar problemas de ...

Interbloqueo (bloqueo mortal o abrazo mortal)Bloqueo indefinido (o espera indefinida)

43Tema 6. Procesamiento de Transacciones

• T debe bloquear todos los elementos a los que tendrá acceso (lectura o escritura) antes de comenzar a ejecutarse

– Si no es posible bloquear algún elemento T no bloqueará ninguno y

Técnicas de control de concurrenciaBloqueo en dos fases conservador o estático

Si no es posible bloquear algún elemento, T no bloqueará ninguno y esperará para reintentarlo más tarde

– Protocolo libre de interbloqueo

Bloqueo en dos fases estricto el más utilizado• T no libera ningún bloqueo exclusivo hasta terminar (con COMMIT o

ROLLBACK)– Ninguna transacción lee o escribe un elemento modificado por T, salvo si T se

ha completado planificación estrictaha completado planificación estricta– Puede sufrir interbloqueo (salvo si se combina con B2F conservador)

Bloqueo en dos fases riguroso más restrictivo que el B2F estricto

• T no libera ningún bloqueo compartido ni exclusivo hasta terminar (con COMMITo ROLLBACK) planificación estricta

44Tema 6. Procesamiento de Transacciones

Page 23: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

23

• Situación en la que cada una de dos (o más) transacciones está esperando a que se libere un bloqueo establecido por la otra transacción

Técnicas de control de concurrencia

El problema del interbloqueo

otra transacciónT6bloquear_escritura(X);leer_elemento(X);X:=X-10;escribir_elemento(X);bloquear_escritura(Y);[… en espera …]

T7

bloquear_escritura(Y);leer_elemento(Y);Y:=Y+100;escribir_elemento(Y); bloquear_escritura(Y); [… en espera …]

• El SGBD ha de reconocer un interbloqueo y romperlo:– Abortar una o más transacciones

Se deshacen sus escrituras y se liberan sus bloqueosAsí, el resto de transacciones podrá continuar su ejecución

– Reiniciar automáticamente las transacciones abortadas45Tema 6. Procesamiento de Transacciones

• Hay 3 técnicas generales para gestionar los interbloqueos– Temporizaciones de bloqueos– Prevención de interbloqueos

Técnicas de control de concurrencia

El problema del interbloqueo

– Prevención de interbloqueos– Detección de interbloqueos

• Conviene detectar interbloqueos cuando se sabe que hay poca interferencia entre transacciones, es decir si...– Las transacciones son cortas y bloquean pocos elementos, o– La carga de transacciones es pequeña

• En otro caso, conviene usar temporizaciones o técnicas de pprevención

Es más difícil prevenir que utilizar temporizaciones o que detectarlos y romperlos, por lo que en la práctica los sistemas no suelen emplear las técnicas de prevención

46Tema 6. Procesamiento de Transacciones

Page 24: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

24

• Una transacción que solicita un bloqueo sólo esperará durante un período de tiempo predefinido por el sistema

Técnicas de control de concurrencia

Temporizaciones de bloqueos

• Si no se concede el bloqueo durante ese tiempo, se producirá un ‘fin de temporización’: el SGBD asumirá que la transacción está interbloqueada (aunque puede que no), la abortará y la reiniciará automáticamente

Es una solución muy sencilla y práctica

Pero puede hacer que sean abortadas y reiniciadasPero puede hacer que sean abortadas y reiniciadas transacciones que en realidad no están en un interbloqueo

47Tema 6. Procesamiento de Transacciones

• Ordenar las transacciones usando marcas temporales de transacción MT(T):

Identificador único para T

Técnicas de control de concurrencia

Prevención de interbloqueos

pLas MT se ordenan según se inician las transaccionesLa T más antigua tiene la MT(T) menor

Sea Tj que intenta bloquear el elemento de datos X , pero X ya está bloqueado por Tk con un candado en conflicto

• Algoritmo Esperar - Morirsi MT(Tj) < MT(Tk) entonces Tj puede esperari b t T (T )si no, se aborta Tj (Tj muere) y

se reinicia después con la misma marca de tiempo

Una Tj más antigua espera a que termine otra Tk más recienteUna Tj más reciente que solicita un elemento bloqueado por una Tkmás antigua, es abortada (muere) y reiniciada

48Tema 6. Procesamiento de Transacciones

Page 25: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

25

• Algoritmo Herir - Esperarsi MT(Tj) < MT(Tk) entonces se aborta Tk (Tj hiere a Tk) y

se reinicia después con la misma MTi T d

Técnicas de control de concurrencia

Prevención de interbloqueos

si no, Tj puede esperar

Una Tj más reciente espera a que termine una Tk más antiguaUna Tj más antigua que solicita un elemento bloqueado por una Tkmás reciente, hace que la más reciente sea abortada (es herida) y reiniciada

• Inconvenientes– Ambos algoritmos hacen que sean abortadas y reiniciadas transacciones que g q y q

podrían provocar un bloqueo mortal, aunque tal cosa nunca ocurriera!– En el algoritmo Esperar-Morir, una Tj podría abortar y reiniciarse varias veces

seguidas si Tk más antigua sigue bloqueando el X que Tj solicita

49Tema 6. Procesamiento de Transacciones

• Verificación periódica del estado del sistema¿está en un bloqueo mortal?

ó

Técnicas de control de concurrencia

Detección de interbloqueos

• Creación de un grafo de espera que muestra las dependencias entre transacciones

– Crear un nodo por cada transacción en ejecución, etiquetado con el identificador de la transacción, T

– Si Tj espera para bloquear el elemento X, ya bloqueado por Tk, crear una arista dirigida desde Tj a Tk

Tj Tk

XTj Tk

– Cuando Tk libera el candado sobre X, borrar la arista correspondiente

• Si existe un ciclo en el grafo de espera, entonces se ha detectado un interbloqueo entre las transacciones

Tj Tk

50Tema 6. Procesamiento de Transacciones

Page 26: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

26

• Pero... ¿cuándo hay que verificar el estado del sistema (ejecutar el algoritmo que genera el grafo de espera)?

Técnicas de control de concurrencia

Detección de interbloqueos

– A intervalos uniformes de tiempo, o

– A intervalos de tiempo desiguales :Iniciar algoritmo de detección con un tamaño de intervalo inicial

Cada vez que no se detecta interbloqueo, incrementar el intervalo

– Por ejemplo, al doble del anteriorCada vez que se detecta interbloqueo reducir el intervaloCada vez que se detecta interbloqueo, reducir el intervalo

– Por ejemplo a la mitadExistirán límites superior e inferior del tamaño del intervalo

51Tema 6. Procesamiento de Transacciones

• Si el sistema está en un estado de interbloqueo, el SGBD necesita abortar algunas transacciones...

Técnicas de control de concurrencia

Detección de interbloqueos

• ¿Cuáles? Selección de víctimas– Es mejor abortar transacciones que lleven poco tiempo en ejecución

– Es mejor abortar una transacción que haya hecho pocos cambios en la base de datos

– Es mejor abortar una transacción que todavía debe hacer muchos cambios en la base de datos

Puede que el SGBD no conozca esta información

Se trata de abortar las transacciones que supongan el mínimo coste

• Es necesario evitar la inanición

52Tema 6. Procesamiento de Transacciones

Page 27: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

27

• Una transacción sufre inanición cuando es seleccionada para ser abortada (víctima) sucesivamente: nunca termina su

ó

Técnicas de control de concurrencia

Detección de interbloqueos: el problema de la inanición

ejecución– Es similar al bloqueo indefinido

• La solución es asignar prioridades más altas a las transacciones abortadas varias veces, para no ser siempre las víctimas

53Tema 6. Procesamiento de Transacciones

Ejercicios

54Tema 6. Procesamiento de Transacciones

Page 28: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

28

• El protocolo de control de concurrencia nunca selecciona a una transacción que está esperando para establecer un bloqueo mientras otras transacciones continúan

Técnicas de control de concurrencia

El problema del bloqueo indefinido

bloqueo, mientras otras transacciones continúan ejecutándose con normalidad– Ocurre si el esquema de espera da más prioridad a unas

transacciones que a otras esquema de espera injusto

• Dos algoritmos de prevención de bloqueo indefinido– Consiguen un esquema de espera justo

El primero que llega, es el primero en ser atendido• Las transacciones puede bloquear el elemento X en el orden en

que solicitaron su bloqueoAumento de prioridad en la espera

• Cuanto más espera T, mayor es su prioridad• Cuando T tiene la prioridad más alta de todas, obtiene el bloqueo

y continúa su ejecución55Tema 6. Procesamiento de Transacciones

• Toda técnica de control de concurrencia supone que la base de datos está constituida por un conjunto de elementos de d t b

Granularidad de datos

Elementos de bases de datos y granularidad

datos con nombre• Normalmente, un elemento de datos será uno de estos:

– un valor de campo de un registro de la BD– un registro de la BD– una página (uno o varios bloques de disco)– un fichero

l BD l t– la BD completa

• Granularidad = tamaño del elemento de información– Granularidad fina elementos de tamaño pequeño– Granularidad gruesa elementos grandes

56Tema 6. Procesamiento de Transacciones

Page 29: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

29

• En el contexto de los métodos de bloqueo, el tamaño del elemento de datos afecta al grado de concurrencia:

tamaño(elemento) Grado de concurrencia

Granularidad de datos

Elección del tamaño adecuado del elemento de datos

tamaño(elemento) Grado de concurrencia

Y también...número de elementos en la BDcarga de trabajo para la gestión de bloqueos, yespacio ocupado por la información de bloqueo

• Pero... ¿Cuál es el tamaño adecuado para los elementos?Pues depende de la naturaleza de las transacciones:Pues depende de la naturaleza de las transacciones:– Si una T representativa accede a pocos registros

elegir granularidad de registro– Si T accede a muchos registros de un mismo fichero

elegir granularidad de página o de fichero

57Tema 6. Procesamiento de Transacciones

NIVEL DE ABSTRACCIÓN LÓGICO O CONCEPTUAL:

• Definición del nivel de

NIVEL DE ABSTRACCIÓN FÍSICO O INTERNO:

• El SGBD implementa los niveles

Aclaración ...

• Definición del nivel de aislamiento de cada transacción (por parte del usuario o, por omisión, el propio SGBD)

• Control explícito de bloqueos(operación LOCK) por parte del usuario, si se permiten niveles de aislamiento inferiores a

• El SGBD implementa los niveles de aislamiento definidos por el usuario para las transacciones siguiendo una o varias técnicaso protocolos

• Por ejemplo el SGBD Oracle usa dos:– Bloqueosaislamiento inferiores a

SERIALIZABLEBloqueos

– MultiversiónEstos conceptos se tratan en

el anexo de este temaEstos conceptos se han estudiado

en la teoría de este tema

58Tema 6. Procesamiento de Transacciones

Page 30: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

30

Aspectos de concurrencia en SQL-92 y Oracle

• SQL-92• SQL-92– Niveles de aislamiento de transacción

• Oracle– Niveles de aislamiento de transacción– Técnica multiversión– Bloqueos (candados)

59Tema 6. Procesamiento de Transacciones

SQL-92• Definición de características de la transacción que se inicia

– SET TRANSACTION modoacceso aislamientoModos de acceso• Modos de acceso

– READ ONLY• Prohíbe actualizaciones

– READ WRITE (por defecto)• Nivel de aislamiento

– Grado de interferencia que una transacción tolera cuando se ejecuta concurrentemente con otras

– READ UNCOMMITED– READ COMMITED

REPEATABLE READ– REPEATABLE READ– SERIALIZABLE (por defecto)

60Tema 6. Procesamiento de Transacciones

Page 31: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

31

SQL-92• Si alguna transacción se ejecuta en algún nivel menor al

SERIALIZABLE, la seriabilidad puede ser incumplida:

Nivel de aislamientoLectura sucia

Lectura norepetible

Lecturafantasma

READ UNCOMMITED Sí Sí SíREAD COMMITED No Sí SíREPEATABLE READ No No SíSERIALIZABLE No No No

Si el sistema soporta niveles distintos a SERIALIZABLE, debería proporcionar facilidades de control explícito de la concurrencia (sentencias LOCK y UNLOCK…)

61Tema 6. Procesamiento de Transacciones

Oracle• Características de la transacción

– SET TRANSACTION {READ ONLY | READ WRITE} aislamiento

• Nivel de aislamiento SERIALIZABLE– Si T2 serializable intenta ejecutar una sentencia LMD que actualiza un dato que

puede haber sido modificado por T1 no confirmada en el momento de comenzar T2, entonces dicha sentencia LMD falla

– Una T serializable sólo ve los cambios confirmados en el instante en que se inicia, más los cambios realizados por la propia transacción mediante INSERT, UPDATE, DELETEDELETE

• Nivel de aislamiento READ COMMITED (defecto)– Si T2 read-commited intenta ejecutar una sentencia LMD que necesita filas

bloqueadas por T1, entonces espera hasta que se liberen los bloqueos de las filas– Cada consulta ejecutada por una transacción sólo ve los datos confirmados antes

de comenzar la consulta (no la transacción)

62Tema 6. Procesamiento de Transacciones

Page 32: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

32

Oracle• Consistencia de lectura

– Garantiza que el conjunto de datos visto por una sentenciaGarantiza que el conjunto de datos visto por una sentencia es consistente con respecto del instante en el que comenzó, y que no cambia durante la ejecución de la sentencia

– Asegura que los lectores no esperan a escritores ni a otros lectores de los mismos datos

– Asegura que los escritores no esperan a los lectores de los mismos datos

– Asegura que los escritores sólo esperan a otros escritoresAsegura que los escritores sólo esperan a otros escritores si intentan modificar las mismas filas en transacciones concurrentes

63Tema 6. Procesamiento de Transacciones

Oracle• Implementación de consistencia de lectura

– Se asemeja a que cada usuario trabaja con una copia privada de j q j p pla BD ( multiversión)

– Cuando ocurre una actualización, los valores originales de los datos afectados, se copian en otra zona del disco (segmentos de rollback)

– Mientras la transacción T que actualiza no se confirma, cualquier usuario que consulte los datos modificados ve los valores originales

– Los cambios hechos por T sólo quedan permanentes cuando T es confirmada

– Las sentencias (de otras transacciones) que comienzan después de que T se confirme ya ven los cambios hechos por TNunca ocurren lecturas sucias

64Tema 6. Procesamiento de Transacciones

Page 33: Procesamiento de Transacciones - dis.um.esdis.um.es/~jfernand/0708/fbd/tema6.pdf · BD T2 KO ROLLBACK T2 SGBD Tema 6. Procesamiento de Transacciones 5 ... ejecutan de manera concurrente,

33

Oracle • Bloqueos

G tió A t áti d l bl– Gestión Automática de los bloqueos• Bloqueos exclusivos y compartidos

– Permiten a otras transacciones leer los datos bloqueados, pero no modificarlos

• Bloqueos de tabla o de fila (una o más)

• Los bloqueos sólo se liberan la finalizar la transacción (COMMIT o ROLLBACK)

– Gestión Manual• Se superpone al bloqueo automático• Sentencia LOCK TABLE (no existe UNLOCK)

65Tema 6. Procesamiento de Transacciones

• Qué provoca un interbloqueo

• En qué se diferencias las distintas

Resumen

• En qué se diferencias las distintas técnicas de prevención de interbloqueos

• Qué mecanismos de gestión de bloqueos incorpora Oraclebloqueos incorpora Oracle

66Tema 6. Procesamiento de Transacciones