Transacciones Concurrencia
• Llamamos planificación a la secuencia de ejecución de una serie de transacciones d i d i • Decimos que una planificación es secuencial si las instrucciones de una transacción cualquiera se instrucciones de una transacción cualquiera se ejecutan juntas en una planificación. • En ejecución concurrente, el SO puede ejecutar pparte de las instrucciones de una transacción y y posteriormente pasar a ejecutar otra
la planificación correspondiente no tiene por qué ser secuencial
16
Transacciones: Secuencialidad
• El DBMS debe asegurar que cualquier planificación que se ejecute, lleva a la BD a un estado consistente j ll l BD d i COMPONENTE DE CONTROL DE CONCURRENCIA COMPONENTE DE CONTROL DE CONCURRENCIA • Se debe garantizar que el efecto de unaplanificación Se debe garantizar que el efecto de una planificación concurrente es el mismo que otra que se hubiese ejecutado sin concurrencia (planificación secuencial). En ese caso, decimos que la planificación es E d i l l ifi ió secuenciable • Grafo de precedencia para una planificación P: permite determinar si una planificación dada es permite determinar si una planificación dada essecuenciable
17
Transacciones: Secuencialidad
T1 Read(A) A:=A‐10 Write(A) Read(B) B:=B+10 Write(B) Read(B) B:=B‐20 Write(B) Read(C) C:=C+20 Write(C) ( ) Write(B) Write(C) ( ) B:=B+10 C:=C+20 Write(B) C:=C+20 Write(C) ( ) Read(B) Read(C) B:=B+10 Read(C) Write(A) Write(B) Read(B) Write(B) A:=A‐10 A:=A 10 B:=B‐20 Write(A) B:=B‐20 T2 T1 Read(A) Read(B) T2 T1 Read(A) A:=A‐10 Read(B) T2Planificación Secuencial
Planificación Secuenciable
Planificación no Secuenciable
18
Transacciones: Secuencialidad
• Grafo de precedencia para una planificación P 1. Los vértices se corresponden con las transacciones que intervienen en la planificación 2. Dadas dos transacciones Ti y Tj, se construyen todos los arcos Ti →Tj en los siguientes casos: todos los arcos Ti →Tj en los siguientes casos:
•• • Ti ejecuta escribir(Q) antes de que Tj ejecute leer(Q) Ti ejecuta leer(Q) antes de que Tj ejecute escribir(Q) Ti ejecuta leer(Q) antes de que Tj ejecute escribir(Q) Ti ejecuta escribir(Q) antes de que Tj ejecute escribir(Q)
3. Si el grafo de precedencia tiene ciclos, entonces la planificación asociada no es secuenciable la planificación asociada no es secuenciable
19Transacciones: Control de concurrencia
• Existen diferentes mecanismos de control de concurrencia que se basan en la propiedad de i b l i d dd secuencialidad – Protocolos basados en el bloqueo
• Protocolo de dos fases Protocolo de dos fases • Protocolos basados en grafos
– Protocolos basados en las marcas temporales – Protocolos optimistas
20
Transacciones: Protocolos basados en el bloqueo
•Protocolos basados en el bloqueo
– Acceso a los elementos de datos en exclusión mutua, es decir, ninguna otra transacción puede modificar dicho elemento difi di h l t – Una transacción solo puede modificar un elemento si previamente ha podido bloquearlo elemento si previamente ha podido bloquearlo
• Tipos de bloqueo Tipos de bloqueo
– Compartido (C): para operaciones de solo lectura. Se permiten lecturas concurrentes pero ninguna Se permiten lecturas concurrentes pero ninguna actualización – Exclusivo(X): para operaciones que escriben ( ) p p q datos. Solo una transacción puede adquirir éste 21 bloqueo
Transacciones: Protocolos basados en el bloqueo
• Mecanismo de bloqueo:
– Toda transacción solicitan un bloqueo (C o X) sobre un elemento al sistema de control de concurrencia(SCC) dependiendo del tipo de i (SCC) d di d d l ti d operación que se vaya a realizar – La transacción realiza la operación deseada La transacción realiza la operación deseada cuando el SCC concede dicho bloqueo
Compatibilidad de los modos de bloqueo Bloqueo‐C(E) Bloqueo‐X(E)
C C X True False X False False
22
Transacciones: Protocolos basados en el bloqueo
• Desbloqueo:...
Regístrate para leer el documento completo.