GESTION DE TRANSACCIONES

GESTION DE TRANSACCIONES
Recuperación ante Fallos
Control de Concurrencia
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquema de la Clase
Concepto de transacción
Propiedades y estados de una transacción
Estructura de almacenamiento
Acceso a los datos
Clasificación de los fallos
Técnicas de recuperación
Gestión de la memoria intermedia
Backups
p de BD
Esquema de recuperación Aries
Comparativo de DBMS
Ejercicio
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Transacción
Transacción:
Conjunto de operaciones que forman una unidad lógica de trabajo.
Ej. Tx transfiere $100 de la cuenta A a la cuenta B.
Leer((A)
A:= A – 100
Tx
Escribir((A)
Leer(B)
B:= B + 100
Escribir(B)
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Propiedades y Estados de una Tx
TRANSACCIÓN
Propiedades
Estados
Atomicidad (A)
Parcialmente
Comprometida
Consistencia (C)
Comprometida
Activa
Aislamiento (I)
Durabilidad (D)
Fallida
Abortada
Recuperación ante Fallos
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Estructura de Almacenamiento
TIPOS DE ALMACENAMIENTO
VOLÁTIL
ƒ Memoria principal / caché (ej. RAM)
ƒ Acceso
A
rápido
á id
ƒ No sobrevive a las caídas
NO VOLÁTIL
ƒ Memoria secundaria (ej. discos o cintas magnéticas)
ƒ Acceso más lento
ƒ Sobrevive a las caídas
ESTABLE
ƒ Se implementa a través de soluciones como los sistemas
RAID o los Sistemas de Copia de Seguridad Remota.
ƒ La información “nunca” se pierde.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Acceso a los Datos
Ejemplo: Lectura del bloque B2
Búfer de
la BD
Bloques de
memoria intermedia
B1
B2
B3
B4
Memoria Principal
BD
lectura
B2
Bloques físicos
B1
Almacenamiento Secundario
(Disco)
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Clasificación de los Fallos
„
Fallo en la transacción
„
„
„
Fallo del sistema
„
„
„
Error lógico
Error del sistema
Error en lla memoria
E
i volátil
lá il
Error en el funcionamiento del DBMS
o del SO
Fallo de disco
X
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Técnicas de Recuperación
Técnicas de recuperación de la BD ante fallos.
F ll con pérdida
Fallos
é did de
d memoria
i volátil:
látil
ƒ Técnicas basadas en el registro histórico
9 Té
Técnica
i de
d actualización
t li ió diferida
dif id
9 Técnica de actualización inmediata
9 Técnica de registro histórico con puntos de revisión o comprobación
ƒ Paginación en la sombra o páginas en espejo
Fallos con pérdida de memoria no volátil:
9Restauración del último volcado de la BD (backup de BD)
9Lectura del registro histórico y ejecución de operaciones rehacer necesarias.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Técnicas
é
d
de Recuperación
ó
Registro Histórico
Secuencia de registros que mantiene un rastro de las actualizaciones
realizadas a la BD. Existen distintos tipos de registros:
Registros de inicio de Tx: <Ti iniciada>
Registros de compromiso de una Tx: <Ti comprometida>
Registros de aborto de una Tx: <Ti abortada>
Registros de actualización de una Tx: <Ti;A;900;1000>
Ti
A
Identificador de Identificador del
la transacción elemento de datos
900
Valor anterior
1000
Valor nuevo
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Técnicas
é
d
de Recuperación
ó
Registro Histórico
Té i d
Técnica
de A
Actualización
t li
ió Diferida:
Dif id
Garantiza la atomicidad de las transacciones mediante el almacenamiento de las
modificaciones en el registro histórico, pero retardando la actualización en la BD hasta
que la transacción se compromete parcialmente.
parcialmente
Registro Histórico
Transacción
<T0 iniciada>
<T0 , A, 950>
<T0 , B,
B 2050>
<T0 comprometida>
Procedimiento de recuperación ante un fallo:
- Rehacer T0: Para Tx iniciadas y comprometidas.
BD
A = 950
1000
B = 2050
2000
Operación
Idempotente
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Técnicas
é
d
de Recuperación
ó
Registro Histórico
Técnica de Actualización Inmediata:
Permite realizar escrituras en la BD mientras la transacción aún se encuentra en
estado activo.
Registro Histórico
<T0 iniciada>
<T0 , A, 1000, 950>
<T0 , B,, 2000,, 2050>
<T0 comprometida>
BD
A = 950
1000
B = 2050
2000
Transacción
Procedimientos de recuperación
ó ante un fallo:
- Deshacer T0: Para Tx iniciadas y no comprometidas.
- Rehacer T0: Para Tx iniciadas y comprometidas.
Operaciones
Idempotentes
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Técnicas
é
d
de Recuperación
ó
Registro Histórico
Puntos de Revisión
Son registros del registro histórico que evitan tener que recorrerlo totalmente en
cada recuperación y deshacer o rehacer transacciones que ya se han reflejado en la
BD.
TRAN
NSACCION
NES
Pto Revisión
FALLA
T1
T2
T3
T4
T5
Mayor eficiencia en la
recuperación
Si Tx está comprometida antes
del punto de revisión, no es
necesario Rehacer Tx.
• T1 puede ignorarse
• T2 y T4 rehacer.
• T3 y T5 deshacer
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Gestión de la memoria intermedia
El registro histórico, la BD y el almacenamiento
1
Buffer del
R i t Histórico
Registro
Hi tó i
Buffer de la
Base de Datos
Memoria Principal
Archivo de
Registro
g
Histórico
2
Base de Datos
Almacenamiento
secundario (Disco)
Protocolo de registro con escritura anticipada
Archivo de
Registro
g
Histórico
Memoria
Estable
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Backups de Base de Datos
„
Full Backups
„
Incluyen toda la base de datos, partes del registro histórico, el esquema de
base de datos, y la estructura de archivos.
Sirve como base para realizar otro tipo de backups
„
Diferenciales
„
„
Permiten respaldar los datos modificados desde el último Backup Full.
Requiere que haya sido realizado un Full Backup.
„
Incremental
„
„
„
„
Realiza un respaldo
p
de todos los datos modificados desde el último respaldo.
p
Toma menos tiempo de respaldo que un Diferencial.
Toma más tiempo de recuperación y es más complejo de manejar que un
Diferencial.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquema de recuperación ARIES
9Representa los métodos actuales de recuperación.
9Reduce el tiempo de recuperación.
9Evita rehacer operaciones registradas ya realizadas y reduce la cantidad de información
registrada.
registrada
¾El algoritmo se basa en los siguientes conceptos:
•Cada registro del registro histórico tiene un número de secuencia del registro histórico
(NSR). También utiliza estos números en las páginas de la BD (NSRPágina) para identificar
operaciones realizadas sobre ellas.
•Soporta operaciones rehacer fisiológicamente: físicas porque la pagina afectada está
físicamente identificada y pueden ser lógicas en la pagina.
•Tabla de paginas desfasadas (páginas actualizadas en memoria pero no en disco), para
minimizar las operaciones rehacer innecesarias durante la recuperación.
•Esquema de revisión difusa. Sólo registra información sobre las páginas desfasadas e
información asociada y no requiere la escritura de las páginas desfasadas a disco.
¾Procedimiento de recuperación:
¾Análisis: Este paso determina las transacciones que hay que deshacer, las paginas que están
desfasadas en el momento de la caída y el NSR en el q
que debería comenzar el p
paso rehacer.
¾Rehacer: comienza en una posición determinada durante el análisis y realiza una operación rehacer,
repitiendo la historia, para llevar a la BD al estado anterior a la caída.
¾Deshacer: retrocede todas las transacciones incompletas en el momento de la caída.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Comparativo entre DBMS
DB2
•
•
Implementa
esquema
de
recuperación ARIES
Soporta
p
2 tipos
p de registro:
g
•
RH circular
•
Registro de archivo
Fallo
con
pérdida
de
memo ia volátil
memoria
olátil
ORACLE
•
•
•
•
Fallo
pérdida
memoria
volátil
con
de
no
•
Soporta recuperación por
instantes (point-in-time:
recuperar hasta el momento
o la transacción que se
quiera desde una copia de
seguridad) o hacia delante
(roll-forward).
Esquema de recuperación en
paralelo.
•
•
SQL
RH rehacer: 2 o más
archivos donde se registra
cualquier
q
modificación
transaccional
de
la
memoria intermedia de la
BD.
Archivos de control:
metadatos
necesarios
para operar en la BD,
BD
incluyendo
información
sobre copias de seguridad.
Segmento
retroceso
(guarda
versiones
anteriores de los datos)
para deshacer.
•
Copias de seguridad en
caliente
(on
line)
y
recuperación en paralelo.
Proporciona
la
característica
í
base de
datos
en
espera
gestionada (es la misma
que copias de seguridad
remotas)
•
•
•
•
POSGRE
Se basa en esquema
de
recuperación
Aries.
Secuencia de registros
identificados por LSN
(Log
Sequence
Number).
Permite
configurar
intervalos
de
recuperación. Ajusta
dinámicamente
la
frecuencia
de
los
Checkpoint
para
reducir el tiempo de
recuperación.
ó
•
Al RH se lo llama Write
Ahead
Logging
((WAL))
Base de datos en
espera mediante envío
de RH.
Se pueden realizar
copias de seguridad
de base de datos,
archivos, grupos de
archivos y del RH de
transacciones.
•
Copias de seguridad
mediante
9volcado SQL
usando
herramientas
proporcionadas por
PostgreSQL
9volcado en línea y
recuperación point
in time (PITR)
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Ejercicio
Indicar el procedimiento de recuperación en cada caso:
<Rehacer T0>
Actualización
Diferida
<Rehacer T0>
<Rehacer T0>
<Rehacer T1>
<Rehacer T0>
Actualización
Inmediata
<Deshacer T0>
<Deshacer T1>
<Rehacer T1>
Control de Concurrencia
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquema de la clase
Aspectos positivos y negativos de la ejecución concurrente
Planificaciones
Problemas de la concurrencia
Secuencialidad
Recuperabilidad
E
Esquemas
d
de Control
C t l de
d Concurrencia
C
i
Interbloqueos
Niveles de aislamiento en el estándar SQL
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Ejecución Concurrente
Aspectos positivos y negativos
Mayor Productividad
Mejor utilización de los recursos
Tiempo de espera reducido
Mayor probabilidad de inconsistencias
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Planificaciones
Secuencias de ejecución 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
T
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)
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Planificaciones
Planificaciones no Secuenciales
Planificación Secuencial
Equivalente
T1
LLeer((A)
A:= A – 25
Escribir(A)
Leer(B)
B:= B + 25
Escribir(B)
T2
T1
Leer(A)
A:= A – 25
Escribir(A)
Leer(A)
Temp:= A * 0.2
A:= A - Temp
Escribir(A)
Leer(B)
B:=B + Temp
Escribir(B)
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
p
Escribir(A)
Leer(B)
B:=B + Temp
Escribir(B)
Estado inconsistente
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Problemas de la concurrencia
Actualización perdida
Ocurre cuando
O
d dos
d transacciones
t
i
que intentan
i t t modificar
difi
un elemento
l
t de
d datos,
d t
ambas
b
leen el valor antiguo del elemento, una de ellas (T1) actualiza el dato, pero esa
actualización se pierde dado que la otra transacción (T2) sobreescribe ese valor sin
siquiera
qu a leerlo.
o
T1
T2
Leer(B)
B:= B + 25
Leer(B)
Escribir(
b ( B)
B:=B + 100
Escribir(B)
T2 sobreescribe el valor del
elemento B escrito por T1
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Problemas de la concurrencia
Dependencia no confirmada (lectura sucia)
Ocurre cuando una transacción
ó T1 lee o actualiza un elemento de datos que ha sido
actualizado por otra transacción T2 que aún no ha sido confirmada. Por lo tanto, existe
la posibilidad de que se deshaga T2 y T1 haya visto un valor que ya no existe. T1 opera
sobre una suposición falsa.
falsa
T1
T2
Leer(A)
A:= A - 100
Escribir(A)
T1 lee un valor del elemento
de datos A, que ya no existe
Leer(A)
A:= A + 25
Escribir(A)
ROLLBACK
Se deshace la
transacción
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Problemas de la concurrencia
Análisis inconsistente
Se produce cuando una transacción T1, producto de haber leído un dato actualizado por
otra transacción T2 ya confirmada, incurre en un análisis inconsistente.
T1
A = 50
Suma = 50
B = 200
S
Suma
= 250
C = 50
Suma = 300
Faltan $100
Leer(A)
Suma:= Suma + A
Leer(B)
S
Suma:=
S
Suma + B
Leer(C)
Suma:= Suma + C
T2
Leer(C)
C:= C - 100
Escribir(C)
Leer(A)
A:= A + 100
Escribir(A)
COMMIT
C = 150
C = 50
A = 50
A = 150
T1 llega
g a un análisis
inconsistente, devolviendo
un resultado erróneo
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Problemas de la concurrencia
Lectura no repetible o difusa
Se produce cuando una transacción T vuelve a leer un elemento de datos que ya había
leído previamente pero que, luego fue modificado por otra transacción. Así, la
transacción T estará leyendo dos valores distintos para el mismo elemento de datos.
T1
T2
Leer(A)
Leer(A)
A:= A - 100
Escribir(A)
Leer(A)
T1 obtiene dos valores
distintos de A.
A
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Problemas de la concurrencia
Lectura fantasma
Se produce cuando una transacción T vuelve a ejecutar una consulta que extrae una
cantidad de tuplas de una relación, que ya había ejecutado anteriormente, pero que
ahora devuelve una tupla adicional (fantasma), que fuera insertada por otra transacción.
T1
T2
Leer(B)
B:= B + 25
Escribir(B)
No devuelve
ningún valor
Leer(A)
Escribir(A)
Ahora devuelve el
valor
l escrito
it por T2!
Leer(A)
T1 lee un valor del
elemento de datos A
A, que
antes no existía.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Secuencialidad
En cuanto a conflictos
Una planificación P es secuenciable en cuanto a conflictos si es
equivalente en cuanto a conflictos a una planificación secuencial
Si una planificación P se puede transformar en otra P’ por medio
de una serie de intercambios de instrucciones no conflictivas.
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 constituye una operación
ó escribir.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Secuencialidad
En cuanto a conflictos
T1
T2
T1
T2
Leer(A)
Escribir(A)
Leer(A)
Escribir(A)
L ( B)
Leer(
Escribir(B)
Leer(A)
Leer(A)
Escribir(A)
Leer(A)
Escribir(A)
Leer(B)
Escribir(B)
Planificación Secuencial
T1
Leer(B)
Escribir(B)
Leer(B)
Escribir(B)
Escribir(A)
Leer(B)
T2
Leer(A)
Escribir(A)
Leer(B)
Escribir(B)
Escribir(B)
Planificación Secuenciable Planificación no Secuenciable
en cuanto a conflictos
en cuanto a conflictos
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Secuencialidad
En cuanto a vistas
Una planificación P es secuenciable en cuanto a vistas si es
equivalente en cuanto a vistas a una planificación secuencial
3 condiciones:
ƒ
Si la transacción Ti lee el valor inicial de Q en P, entonces debe
hacerlo también en P’.
ƒ
Si la transacción Ti lee(Q) en P, y el valor lo ha producido Tj ,
entonces debe hacerlo también en P’.
ƒ
La transacción que realice la última operación escribir(Q) en P,
debe hacerlo también
é en P’.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
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)
Planificación Secuencial
Escribir(Q)
Planificación
Secuenciable
en cuanto a vistas
Planificación
no Secuenciable
en cuanto a conflictos
Escrituras a ciegas
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Recuperabilidad
Planificación no recuperable
T1
Leer(A)
Escribir(A)
T2
- T2 lee un dato escrito por T1
- T2 se compromete antes que T1
- T1 falla y no logra comprometerse
-> T2 no puede abortarse
Leer(A)
Leer(B)
Planificación
no recuperable
p
Planificación con retroceso en cascada
T1
T2
T3
Leer(A)
Leer(B)
Escribir(A)
Leer(A)
Escribir (A)
Leer(A)
- T2 lee un dato escrito por T1
- T3 lee
l un dato
d t escrito
it por T2
- T1 falla y no logra comprometerse
--> T1 debe retrocederse
-->
> T2 debe retrocederse
--> T3 debe retrocederse
Planificación
con retroceso
en cascada
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Recuperabilidad
T1
Leer(A)
A:= A – 25
Escribir(A)
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
d b comprometerse
t
antes
t 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
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
P otocolos basados en el bloqueo
Protocolos
bloq eo
Gestor de Control
de Concurrencia
Compartido (C)
concede
Bloqueos
q
Exclusivo (X)
Lectura
Lectura
Escritura
Compatibilidad
Consistencia
C
Interbloqueos
Bloqueo indefinido
((Inanición))
C
X
X
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
P otocolos basados en el bloqueo
Protocolos
bloq eo
Protocolo de bloqueo de dos fases
Cantidad de
bloqueos
Punto de bloqueo
Secuencialidad en
cuanto a conflictos
bloquea
desbloquea
Fase 1
Crecimiento
INICIO Ti
Fase 2
Decrecimiento
Probabilidad de
Interbloqueos
Prob.
P
b de
d retroceso
t
en cascada
Duración de
la transacción
FIN Ti
Estricto
Una transacción debe conservar todos los
bloqueos exclusivos hasta que se comprometa.
Riguroso
Una transacción debe conservar todos
los bloqueos hasta que se comprometa.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
G
Granularidad
l id d múltiple
últi l
Jerarquía de granularidad
Bloqueo intencional
de la BD
Nodo de BD
Bloqueo intencional
Bl
i t
i
l
de la zona Z1
Nodos de
Zona
Intencional Exclusivo (IX)
BD
Z1
Bloqueo explícito
del archivo Aa
Modo de bloqueo intencional
Intencional Compartido (IC)
IIntencional
t
i
l Exclusivo
E l i y
Compartido (IXC)
Z2
Compatibilidad
IC
Nodos de
Archivo
Aa
Ab
Ac
IC
IX
C
Nodos de
Registro
ra1
ra2 …
ran
rb1 … rbk
Bloqueo implícito de los registros
pertenecientes al archivo Aa
rc1 … rcm
IXC
X
IX
C
IXC
X
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
P otocolos basados en marcas
Protocolos
ma cas temporales
tempo ales
Sistema de Base
de Datos
Valor del reloj del
sistema
asigna
Marcas
Temporales
Contador lógico
Transacciones
T1
T2
Tn
Elementos de datos
MT(T1)
MT(T2)
MT(Tn)
MT(T1) < MT(T2) < MT(Tn)
mt E (Q)
mt-E
Q
mt-L (Q)
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
P otocolos basados en marcas
Protocolos
ma cas temporales
tempo ales
Protocolo de ordenación por marcas temporales
Ti ejecuta la operación leer(Q)
MT(Ti) < mt-E (Q)
Rechazo de la operación leer
Retroceso de Ti
MT(Ti) ≥ mt-E (Q)
Ejecución de la operación leer
Asignación del máx. entre MT(Ti) y mt-L (Q), a mt-L (Q)
Se asigna una nueva
M
Marca
Temporal
T
l a Ti
y se inicia de nuevo
Ti ejecuta la operación escribir(Q)
MT(Ti) < mt
mt-LL (Q)
ó
MT(Ti) < mt-E (Q)
Rechazo
R
h
de
d la
l operación
ió escribir
ibi
Retroceso de Ti
MT(Ti) ≥ mt-E
mt E (Q)
ó
MT(Ti) ≥ mt-L (Q)
Ejecución de la operación escribir
Asignación de MT(Ti) a mt-E (Q)
Se asigna una nueva
Marca Temporal a Ti
y se inicia de nuevo
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
Esq emas multiversión
Esquemas
m lti e sión
Ordenación por marcas temporales multiversión
T1
T2
.
.
.
T
MT(T1)
MT(T2)
.
.
.
Q
Q1
Marcas temporales
asociadas a las
transacciones
Q2
Q3
MT(Tn)
.
.
.
n
Qn
Q1
contenido
Valor de la versión Q1
mt-E (Q1)
n versiones
asociadas
al elemento
de datos Q
mt-L (Q1)
Marca temporal de la
transacción que creó
la versión Q1
> Marca temporal de
las transacciones que
leyeron con éxito Q1
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
Esq emas multiversión
Esquemas
m lti e sión
Ordenación por marcas temporales multiversión
S Qk la
Sea
l versión
ió de
d Q con mt-E(Q
t E(Qk) ≤ MT(Ti)
Ti ejecuta la operación leer(Q)
Se muestra el contenido de la versión más
reciente de Q [ mt-E(Q) < MT(Ti) ].
Ti ejecuta la operación escribir(Q)
MT(Ti) < mt-L(Qk)
Retroceso de Ti
MT(Ti) > mt-L(Qk)
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)
Creación de una
nueva versión 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
retrocesos.
Prob. de planificaciones no
recuperables y retrocesos en
cascada.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Esquemas de Control de Concurrencia
Esq emas multiversión
Esquemas
m lti e sión
Bloqueo de dos fases multiversión
T1
MT(T1)
T2
MT(T2)
.
.
Tn
.
.
mt(Q)
Asegura secuencialidad.
n versiones
asociadas
Q1
Q
Q2
.
.
Qn
Las transacciones de
sólo lectura no tienen
que esperar.
Planif. recuperables y
sin cascada.
Prob. de Interbloqueos.
Transacciones de sólo lectura
Ti ejecuta la operación leer(Q)
(Una sola marca
temporal para Q)
Valor actual
contador_mt
MT(Tn)
Q
Se muestra el contenido de la versión más
reciente de Q [ mt(Q) < MT(Ti) ].
Transacciones de actualización
Realizan un bloqueo de 2 fases riguroso
Ti ejecuta la operación leer(Q)
Compromiso de Ti :
Ti obtiene un bloqueo compartido sobre Q
Q.
Ti lee la versión más reciente de Q.
- Asigna mt(Q) (cont.+1)
a la versión creada
Ti ejecuta la operación escribir(Q)
- Seteo Cont.= Cont.+1
Ti obtiene un bloqueo exclusivo sobre Q.
Ti crea una nueva versión de Q.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Comparativo entre DBMS
A) Protocolo Implementado
DB2
SQLServer
Oracle
PostgreSQL
¾ Protocolo de bloqueo de
2 fases para transacciones
de actualización.
¾ Protocolo de bloqueo de 2
fases.
¾M
Modos
d de
d bloqueo:
bl
IN (intent none)
iS (intent share)
NS (next key share)
S ((share))
IX (intent exclusive)
SIX (share with
intent exclusive)
U (update)
NX (next
(next-key
key exclusive)
X (exclusive)
Z (superexclusive
¾M
Modos
d de
d bloqueo:
bl
S (share),
X (exclusive)
U (update)
IS ((intent shared))
IX (intent exclusive)
SIX (shared with intent
exclusive)
Sch (schema)
BU (bulk update)
Key-range
¾ Protocolo multiversión de
dos fases. El SCN (System
Change Number) actúa
como una marca temporal.
¾ Protocolo de ordenación por
marcas temporales multiversión
(MVCC, Multi Version Concurrency
Control).
¾ Utiliza
Utili ell protocolo
t
l de
d dos
d fases
f
estricto para transacciones de
DDL.
¾ Utiliza
iintencionales
t
i
l
granularidad
filas y tablas.
¾ Utiliza
bloqueos
i t
intencionales
i
l
y granularidad
l id d
múltiple (base de datos,
tabla, extensión, página, fila,
etc).
bloqueos
y
a nivel de
¾ Modos de bloqueo:
RS (row share)
RX (row exclusive)
S ((share))
SRX (share row
exclusive)
X (exclusive)
¾ Granularidad a nivel de
fil y tablas.
filas
t bl
¾ Modos de bloqueo:
q
Access Share
Row Share
Row Exclusive
Share Update Exclusive
Share
Share Row Exclusive
Exclusive
Access Exclusive
¾ Granularidad
G
l id d a nivel
i l de
d filas
fil y
tablas.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Interbloqueos
Existe un interbloqueo cuando existe un conjunto de transacciones, tal que
toda transacción del conjunto está esperando un elemento de datos bloqueado
por otra transacción del conjunto.
conjunto
T2 está esperando se
libere el bloqueo de B
B
T1
Métodos
para
problema:
INTERBLOQUEO
T2
tratar
el
- Temporizaciones
- Prevención de interbloqueos
A
T1 está esperando se
libere el bloqueo de A
p
de
- Detección y recuperación
interbloqueos.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Comparativo entre DBMS
B) Manejo de Interbloqueos
DB2
SQLServer
Oracle
PostgreSQL
Detección automática de
interbloqueos (intervalo de
detección - DLCHKTIME configurable).
Detección
automática
de
interbloqueos
(ajuste
automático de frecuencia de
detección según probabilidad
de interbloqueos).
Detección automática
interbloqueos.
de
Detección automática de
interbloqueos por tiempo de
espera de la Tx (intervalo
configurable) y grafos.
Cuando se detecta un
interbloqueo, se elige una
de las transacciones para
ser abortada.
Cuando
se
detecta
un
interbloqueo, se elige la
transacción que será abortada
según el trabajo que la misma
haya realizado hasta el
momento.
Cuando se detecta un
interbloqueo, se elige una de
las transacciones para ser
abortada.
Cuando se detecta un
interbloqueo, la transacción
que disparó la detección, es
abortada.
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Niveles de Aislamiento en SQL
Se puede ajustar el nivel de aislamiento entre las transacciones y determinar para
una transacción el grado de aceptación de datos inconsistentes. A mayor grado de
aislamiento, mayor precisión,
ó pero a costa de menor concurrencia.
Nivel de
aislamiento
i l
i t
Lectura sucia
Lectura no
repetible
tibl
Lectura
f t
fantasma
Lectura no
comprometida
Sí
Sí
Sí
Lectura
comprometida
No
Sí
Sí
Lectura repetible
No
No
Sí
Secuenciable
No
No
No
Sistemas de Datos
Curso: Ernesto Chinkes
Gestión de Transacciones
Comparativo entre DBMS
C) Niveles de Aislamiento
DB2
SQLServer
Uncommitted Read
Read uncommitted
Cursor Stability
(Predeterminado)
Read committed
(Predeterminado)
Read Stability (Protocolo
estricto de dos fases)
Repeatable Read
Repeatable read
Serializable
También soporta:
- Snapshot
- Read committed snapshot
Oracle
PostgreSQL
ReadCommited
(Predeterminado)
Read committed
(Predeterminado)
Serializable
Serializable