Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El Manejo de Las Transacciones
El Manejo de Las Transacciones
John
John Freddy
Freddy Duitama
Duitama Muñoz.
Muñoz.
Facultad
Facultad de
de Ingeniería.
Ingeniería.
U.de.A.
U.de.A.
2001.
2001.
En SQL:
Instrucción -1 . Instrucción -1 .
Instrucción-2. Instrucción-2.
.... ....
Parcialmente Comprometida
comprometida
Activa
Fallida Abortada
Transiciones permitidas.
Solución:
El sistema controla la concurrencia. La técnica más usada: Bloquear los
registros que una transacción usa.
El sistema establece un mecanismo de recuperación ante fallas.
Plan 1 Plan 2
T1 T2 T1 T2
read A Read A
A:=A-10 Read B
A:=A-10
Write A
Read B Valor final plan 1. B:=B-20
B:=B+10 Write A
Write B A=5 , B=20 C=70 Write B
Read B Read B
B:=B-20 Plan secuencial
Valor final plan 2. Read C
Write B B:= B+10
Read C A=5 , B=20 C=70 C:=C+20
C:=C+20 WriteB
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Write C Plan secuenciable
Planes no equivalentes.
Valores Iniciales : A=15 B= 30 C = 50
Plan 1 Plan 3
T1 T2
T1 T2 Read A
read A A:=A-10
A:=A-10 Read B
Write A
Write A B:=B-20
Read B Read B
B:=B+10 Write B
Write B Valor final plan 1. B:=B+10
Read B Read C
B:=B-20 A=5 , B=20 C=70 Write B
Write B C:=C+20
Plan secuencial
Valor final plan 3. Write C
Read C
C:=C+20 A=5 B=40 C=70.
Write C Plan no secuenciable
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Secuencialidad de planes de ejecución.
Tabla de bloqueos:
(<item>, <tipo de bloqueo>,<Tx>).
Ejemplo:
Lock(reg-X); Read(X.A); X.A:= X.A+1; write(X.A); Unlock(reg-X).
Significado intuitivo:
En cualesquier plan serial equivalente a S, Tx-j debe preceder a
Tx-s.
Evaluación: Si G tiene un ciclo, el plan NO es secuenciable.
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Ejemplo del Algoritmo.
T1 T2 T3
1. T1:Lock A
2. T2:Lock B 4-5
3. T2:Lock C T1 6-7 T2
4. T2:Unlock B
5. T1:Lock B 9-10
6. T1:Unlock A T3 8-11
7. T2:Lock A
8. T2:Unlock C
9. T2:Unlock A
10 T3: Lock A
T1 debe estar antes
11 T3: Lock C
de t2.
12 T1:Unlock B
13 T3:Unlock C
14 T3:Unlock A. T2 debe estar antes
de T1.
T1 T2
Lock A
Lock C
Lock B
Unlock A
T1 T2
Unlock B
Lock B
Unlock C No hay ciclos, luego son
Unlock B secuenciables.
Unlock A
Unlock B
Lock B
Unlock C El bloque riguroso:
Unlock B Libera recursos despues del commit
Rollback ó del rollback.
Permite que
Las transacciones se puedan
secuenciar en el orden en que se
comprometan.
T1 T2 T3
Grafo de esperas:
Lock A
Nodos : Transacciones.
Lock B
Lock C Arcos:
Lock B ? Ti --->Tj Ti tiene un recurso que solicita Tj
Lock C?
Lock A ?
T3
T1
Solución:
Si se detecta un ciclo debe T2
retrocederce una de las Tx
Involucradas.
Matriz de Compatibilidad.
Solicita
E Rlock Wlock
x
i Rlock Si No
s
t
e Wlock No No
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Bibliografía.