Download - Gestion de transacciones_may-11
Sistemas de DatosCurso: 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 de BD
Esquema de recuperación Aries
Comparativo de DBMS
Ejercicio
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Transacción
Transacción:
Conjunto de operaciones que forman una unidad lógica de trabajo.
Leer(A)
A:= A – 100
Escribir(A)
Leer(B)
B:= B + 100
Escribir(B)
Ej. Tx transfiere $100 de la cuenta A a la cuenta B.
Tx
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Aislamiento (I)
Propiedades y Estados de una Tx
TRANSACCIÓN
Propiedades Estados
Atomicidad (A)
Consistencia (C)
Durabilidad (D)
Parcialmente
Comprometida
Activa
Fallida
Comprometida
Abortada
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Estructura de Almacenamiento
TIPOS DE ALMACENAMIENTO
VOLÁTIL Memoria principal / caché (ej. RAM)
Acceso rápido
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 DatosCurso: Ernesto Chinkes Gestión de Transacciones
Acceso a los Datos
Almacenamiento Secundario(Disco)
B1
Almacenamiento Primario(RAM)
B2B3
B4
Ejemplo: Lectura del bloque B2
B1
B2lectura
Bloques físicos
Búfer de la BD
Bloques dememoria intermedia
BD
Requiere datos para ejecutar
una TX
Aplicación
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Fallo en la transacción Error lógico
Error del sistema
Fallo del sistema Error en la memoria volátil
Error en el funcionamiento del DBMS
o del SO
Fallo de disco
Clasificación de los Fallos
X
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Técnicas de recuperación de la BD ante fallos.
Fallos con pérdida de memoria volátil:
Técnicas basadas en el registro histórico Técnica de actualización diferida Técnica de actualización inmediata
Paginación en la sombra o páginas en espejo
Fallos con pérdida de memoria no volátil:
Restauración del último volcado de la BD (backup de BD)Lectura del registro histórico y ejecución de operaciones rehacer necesarias.
Técnicas de Recuperación
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Secuencia de registros que mantiene un rastro de las actualizacionesrealizadas a la BD. Existen distintos tipos de registros:
Registro Histórico
Valor nuevo
Ti A 900 1000
Identificador de la transacción
Identificador del elemento de datos
Valor anterior
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>
Técnicas de Recuperación
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Técnica de Actualización Diferida:Garantiza la atomicidad de las transacciones mediante el almacenamiento de lasmodificaciones en el registro histórico, pero retardando la actualización en la BD hastaque la transacción se compromete parcialmente.
Registro Histórico
Transacción
Registro Histórico
<T0 iniciada><T0 , A, 950>
<T0 , B, 2050>
<T0 comprometida>
Procedimiento de recuperación ante un fallo:
- Rehacer T0: Para Tx iniciadas y comprometidas.
BD
A = 1000B = 2000
A = 950B = 2050
Técnicas de Recuperación
OperaciónIdempotente
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Técnica de Actualización Inmediata:Permite realizar escrituras en la BD mientras la transacción aún se encuentra enestado activo.
Registro Histórico
Transacción
Registro Histórico
<T0 iniciada><T0 , A, 1000, 950>
<T0 , B, 2000, 2050>
<T0 comprometida>
Procedimientos de recuperación ante un fallo:
- Deshacer T0: Para Tx iniciadas y no comprometidas.
- Rehacer T0: Para Tx iniciadas y comprometidas.
BD
A = 1000B = 2000A = 950B = 2000A = 950B = 2050
Técnicas de Recuperación
OperacionesIdempotentes
Registro Histórico
<T0 iniciada><T0 , A, 1000, 950>
<T0 , B, 2000, 2050>
<T0 comprometida>
BD
A = 1000B = 2000A = 950B = 2000A = 950B = 2050
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Puntos de Revisión
Son registros del registro histórico que evitan tener que recorrerlo totalmente encada recuperación y deshacer o rehacer transacciones que ya se han reflejado en laBD.
Registro Histórico
TR
AN
SA
CC
ION
ES
T1
Pto Revisión FALLA
T2T3T4T5
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
Técnicas de Recuperación
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
El registro histórico, la BD y el almacenamiento
Gestión de la memoria intermedia
Almacenamiento secundario (Disco)
Almacenamiento primario (RAM)
B1
Aplicación
Ba
Búfer del RH Registro Histórico
<T0 iniciada>
<T0 , A, 1000, 950>
<T0 , B, 2000, 2050>
<T0 comprometida>
Ba
B1
B3
B4
Búfer de la BD
A
BB3
B4
Búfer de la BD
B
B3
Búfer de la BD
Bb
B1
B2
Base de Datos
B4
B4
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
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 de todos los datos modificados desde el último respaldo.
Toma menos tiempo de respaldo que un Diferencial.
Toma más tiempo de recuperación y es más complejo de manejar que unDiferencial.
Backups de Base de Datos
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Esquema de recuperación ARIES
Conceptos fundamentales:•Write Ahead Logging: Log donde se registran los cambios en la BD.
Contiene la tabla de transacciones (TT) y una tabla de páginas desfasadas
(DPT).
•Usa un número de secuencia del registro histórico (NSR o LSN) y
un identificador para la página de la BD (NSRPágina).
•Soporta operaciones rehacer fisicas.
•Esquema de revisión difusa. Sólo registra información sobre las
páginas desfasadas y no requiere su escritura a disco
Procedimiento de recuperación en 3 fases:•Análisis: se recupera la TT y DPT como estaban en el momento de la
caída.
•Rehacer: mediante la DPT
•Deshacer: mediante la TT
Algoritmo de recuperación avanzado que utiliza técnicas para:
Reducir el tiempo de recuperación.
TT
<T0 , A, 1000, 950>
<T0 , B, 2000, 2050>
<T0 iniciada>
<T0 comprometida>
NSR3
NSR4
NSR5
NSR6
DPT
3- Deshacer
2- Rehacer
Bx
1- Análisis
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Comparativo entre DBMS
DB2 ORACLE SQL SERVER POSTGRESQL
Fallo conpérdida dememoriavolátil
• Implementa esquema derecuperación ARIES
• Uso de instruccionesexplícitas: commit,rollback, begin transactiony end transaction.
• Soporta 2 tipos deconfiguración:
• RH circular: Sólo útilpara la recuperaciónde caídas o de unfallo de la aplicación
• Registro dearchivo: necesariopara la recuperaciónhacia delante de unacopia de seguridad dearchivo.
Soporta 2 tipos deconfiguración:
• RH rehacer: 2 o másarchivos donde se registracualquier modificacióntransaccional de unamemoria intermedia de laBD.
• RH rehacer archivados:Los RH rehacer se archivancuando se llenan.
• Archivos de control:metadatos necesarios paraoperar en la BD, incluyendoinformación sobre copias deseguridad.
• Segmento retrocesoguarda versiones anterioresde los datos (paradeshacer).
• Implementa esquema derecuperación Aries.
• Permite configurarintervalos derecuperación. Ajustadinámicamente lafrecuencia de losCheckpoint para reducirel tiempo derecuperación.
• Recuperación basada enWAL con fases deRehacer y Deshacersimilares a Aries.
• Un archivo pg_clogregistra el estado actualde cada transacción:activa, comprometida oabortada.
• En una recuperación nose necesita Deshaceruna transacciónabortada.
Fallo conpérdida dememoriano volátil
• 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.
• Copias de seguridad encaliente (on line) yrecuperación en paralelo.
• Proporciona la característicabase de datos en esperagestionada (es la mismaque copias de seguridadremotas)
• Base de datos en esperamediante envío de RH.
• Se pueden realizarcopias de seguridad debase de datos, archivos,grupos de archivos y delRH de transacciones.
• Copias de seguridad mediante
volcado SQL usando herramientas proporcionadas por PostgreSQL
volcado en línea y recuperación pointin time (PITR)
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Ejercicio
Indicar el procedimiento de recuperación en cada caso:
ActualizaciónInmediata
Actualización Diferida
<Rehacer T0> <Rehacer T0>
<Rehacer T1>
<Rehacer T1>
<Rehacer T0>
<Deshacer T1>
<Rehacer T0>
<Deshacer T0>
Sistemas de DatosCurso: 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
Esquemas de Control de Concurrencia
Niveles de aislamiento en el estándar SQL
Interbloqueos
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Ejecución Concurrente
Mejor utilización de los recursos
Aspectos positivos y negativos
Mayor Productividad
Mayor probabilidad de inconsistencias
Tiempo de espera reducido
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Planificaciones
Planificaciones Secuenciales
T1 T2
Secuencias de ejecución de las instrucciones componentes de las transacciones.
Leer(A)A:= A – 25Escribir(A)Leer(B)B:= B + 25Escribir(B)
Leer(A)Temp:= A * 0.2A:= A - TempEscribir(A)Leer(B)B:=B + TempEscribir(B)
T1 T2
Leer(A)A:= A – 25Escribir(A)Leer(B)B:= B + 25Escribir(B)
Leer(A)Temp:= A * 0.2A:= A - TempEscribir(A)Leer(B)B:=B + TempEscribir(B)
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Planificaciones no Secuenciales
T1 T2
Equivalente
Leer(A)A:= A – 25Escribir(A)
Leer(A)Temp:= A * 0.2A:= A - TempEscribir(A)
Leer(B)B:= B + 25Escribir(B)
Leer(B)B:=B + TempEscribir(B)
No Equivalente
T1 T2
Leer(A)A:= A – 25
Leer(A)Temp:= A * 0.2A:= A - TempEscribir(A)Leer(B)
Escribir(A)Leer(B)B:= B + 25Escribir(B)
B:=B + TempEscribir(B)
Estado inconsistente
Planificaciones
T1 T2
Leer(A)A:= A – 25Escribir(A)Leer(B)B:= B + 25Escribir(B)
Leer(A)Temp:= A * 0.2A:= A - TempEscribir(A)Leer(B)B:=B + TempEscribir(B)
Planificación Secuencial
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Problemas de la concurrencia
Actualización perdida
Ocurre cuando dos transacciones que intentan modificar un elemento de datos, ambasleen el valor antiguo del elemento, una de ellas (T1) actualiza el dato, pero esaactualización se pierde dado que la otra transacción (T2) sobreescribe ese valor sinsiquiera leerlo.
T1 T2
Leer(B)
Leer(B)B:= B + 25
Escribir(B)
B:=B + 100Escribir(B)
T2 sobreescribe el valor delelemento B escrito por T1
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Dependencia no confirmada (lectura sucia)
Ocurre cuando una transacción T1 lee o actualiza un elemento de datos que ha sidoactualizado por otra transacción T2 que aún no ha sido confirmada. Por lo tanto, existela posibilidad de que se deshaga T2 y T1 haya visto un valor que ya no existe. T1 operasobre una suposición falsa.
Problemas de la concurrencia
T1 T2
Leer(A)A:= A - 100Escribir(A)
Leer(A)A:= A + 25Escribir(A)
ROLLBACKSe deshace la
transacción
T1 lee un valor del elementode datos A, que ya no existe
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Análisis inconsistente
Se produce cuando una transacción T1, producto de haber leído un dato actualizado porotra transacción T2 ya confirmada, incurre en un análisis inconsistente.
Problemas de la concurrencia
T1 T2
Leer(A)Suma:= Suma + ALeer(B)Suma:= Suma + B
Leer(C)C:= C - 100Escribir(C)Leer(A)A:= A + 100Escribir(A)COMMIT
Leer(C)
Suma:= Suma + C
A = 50Suma = 50B = 200Suma = 250
Suma = 300Faltan $100
C = 150
C = 50A = 50
A = 150
C = 50 T1 llega a un análisis inconsistente, devolviendo
un resultado erróneo
Sistemas de DatosCurso: 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íaleído previamente pero que, luego fue modificado por otra transacción. Así, latransacción T estará leyendo dos valores distintos para el mismo elemento de datos.
T1 T2
Leer(A)A:= A - 100Escribir(A)
Leer(A)
Leer(A)
T1 obtiene dos valores distintos de A.
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Lectura fantasma
Se produce cuando una transacción T vuelve a ejecutar una consulta que extrae unacantidad de tuplas de una relación, que ya había ejecutado anteriormente, pero queahora devuelve una tupla adicional (fantasma), que fuera insertada por otra transacción.
Problemas de la concurrencia
T1 T2
Escribir(A)
Leer(B)B:= B + 25Escribir(B)
Leer(A)
Leer(A)
T1 lee un valor del elemento de datos A, que
antes no existía.
No devuelve ningún valor
Ahora devuelve el valor escrito por T2!
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Secuencialidad
Una planificación P es secuenciable en cuanto a conflictos si es
equivalente en cuanto a conflictos a una planificación secuencial
En cuanto a conflictos
Si una planificación P se puede transformar en otra P’ por medio
de una serie de intercambios de instrucciones no 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 DatosCurso: Ernesto Chinkes Gestión de Transacciones
Secuencialidad
En cuanto a conflictos
T1 T2
Leer(A)Escribir(A)Leer(B)Escribir(B)
Leer(A)Escribir(A)Leer(B)Escribir(B)
T1 T2
Leer(A)Escribir(A)
Leer(A)Escribir(A)
Leer(B)Escribir(B)
Leer(B)Escribir(B)
T1 T2
Leer(A)Leer(A)Escribir(A)
Escribir(A)Leer(B)
Escribir(B)
Leer(B)Escribir(B)
Planificación Secuencial Planificación Secuenciableen cuanto a conflictos
Planificación no Secuenciableen cuanto a conflictos
Sistemas de DatosCurso: 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 DatosCurso: Ernesto Chinkes Gestión de Transacciones
Secuencialidad
En cuanto a vistas
T1 T2
Leer(Q)Escribir(Q)
Escribir(Q)
T3
Escribir(Q)
T1 T2
Leer(Q)
Escribir(Q)
T3
Escribir(Q)
Escribir(Q)
Planificación Secuencial Planificación Secuenciable
en cuanto a vistas
Planificación no Secuenciable
en cuanto a conflictos
Escrituras a ciegas
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Recuperabilidad
T1 T2
Leer(A)Escribir(A)
Leer(B)
Leer(A)Planificación
no recuperable
Planificación no recuperable
- T2 lee un dato escrito por T1- T2 se compromete antes que T1- T1 falla y no logra comprometerse-> T2 no puede abortarse
Planificación con retroceso en cascada
Planificacióncon retroceso en cascada
T1 T2
Leer(A)Leer(B)Escribir(A)
Leer(A)Escribir (A)
T3
Leer(A)
- T2 lee un dato escrito por T1- T3 lee un dato escrito por T2- T1 falla y no logra comprometerse--> T1 debe retrocederse--> T2 debe retrocederse--> T3 debe retrocederse
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Recuperabilidad
T1 T2
Escribir(A)
Escribir(A)
Leer(A)
A:= A – 25
Leer(A)
Temp:= A * 0.2
A:= A - Temp Fallo
Planificaciones recuperables
Planificaciones sin cascada
Tj lee elementos de datos que ha escrito Ti
Tj lee elementos de datos que ha escrito Ti
Ti debe comprometerse antes que Tj
Ti debe comprometerse antes que Tj lea dichos elementos de datos
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Protocolos basados en el bloqueo
Bloqueos
Compartido (C)
Exclusivo (X)
Lectura
Lectura
Escritura
Gestor de Controlde Concurrencia
concede
C X
C
X
Compatibilidad
Esquemas de Control de Concurrencia
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Protocolos basados en el bloqueo
Protocolo de bloqueo de dos fases
Estricto Riguroso
Secuencialidad en cuanto a conflictos
Probabilidad de Interbloqueos
Prob. de retrocesoen cascada
Una transacción debe conservar todos los bloqueos exclusivos hasta que se comprometa.
Una transacción debe conservar todos los bloqueos hasta que se comprometa.
Cantidad de bloqueos
INICIO Ti FIN Ti
bloquea
desbloquea
Punto de bloqueo
Duración de la transacción
Fase 1Crecimiento
Fase 2Decrecimiento
Esquemas de Control de Concurrencia
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Jerarquía de granularidad
BD
Z2
Ab
ra1
Z1
AcAa
ra2 rbkrb1 rc1 rcmran… … …
Bloqueo implícito de los registrospertenecientes al archivo Aa
Bloqueo explícitodel archivo Aa
Bloqueo intencionalde la BD
Bloqueo intencionalde la zona Z1
Modo de bloqueo intencional
Intencional Exclusivo (IX)
Intencional Compartido (IC)
Intencional Exclusivo y Compartido (IXC)
Compatibilidad
IC
IC
IX
IX C
C
IXC
IXC X
X
Esquemas de Control de Concurrencia
Nodo de BD
Nodos de Zona
Nodos de Archivo
Nodos de Registro
Protocolos basados en el bloqueo
Protocolo de bloqueo de dos fases con intención de bloqueo
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Esquemas multiversión
Ordenación por marcas temporales multiversión
Q Q1
Q2
Q3
Qn
.
.
.
n versiones asociadas al elementode datos Q
T1
T2...
Tn
MT(T1)
MT(T2)
MT(Tn)
.
.
.Marcas temporales
asociadas a las transacciones
Q1
contenido mt-E (Q1) mt-L (Q1)
Valor de la versión Q1 Marca temporal de la transacción que creó
la versión Q1
> Marca temporal delas transacciones queleyeron con éxito Q1
Esquemas de Control de Concurrencia
Marcas Temporales
Valor del relojdel sistema
Contador lógico
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Esquemas multiversión
Ordenación por marcas temporales multiversión
Sea Qk la versión de Q con mt-E(Qk) ≤ MT(Ti)
MT(Ti) < mt-L(Qk) Retroceso de Ti
Ti ejecuta la operación leer(Q)
MT(Ti) > mt-L(Qk) y
MT(Ti) = mt-E(Qk)
Sobreescritura del contenido de Qk
Se muestra el contenido de la versión más reciente de Q [ mt-E(Q) < MT(Ti) ].
MT(Ti) > mt-L(Qk) y
MT(Ti) > mt-E(Qk)
Creación de una nueva versión de Qk
Ti ejecuta la operación escribir(Q)
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).
Prob. de planificaciones no recuperables y retrocesos en cascada.
Los conflictos se resuelven por medio de retrocesos.
Esquemas de Control de Concurrencia
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Esquemas multiversión
Bloqueo de dos fases multiversión
Transacciones de sólo lectura
Ti ejecuta la operación leer(Q)
Se muestra el contenido de la versión más reciente de Q [ mt(Q) < MT(Ti) ].QQ1
Q2
Qn
.
.
n versiones asociadas
T1
T2
.
.
Tn
Valor actualcontador_mt
MT(T1)
MT(T2)
MT(Tn)
.
.
Qmt(Q)
(Una sola marca temporal para Q)
Transacciones de actualización
Realizan un bloqueo de 2 fases riguroso
Ti ejecuta la operación escribir(Q)
Ti obtiene un bloqueo exclusivo sobre Q.Ti crea una nueva versión de Q.
Ti ejecuta la operación leer(Q)
Ti obtiene un bloqueo compartido sobre Q.Ti lee la versión más reciente de Q.Compromiso de Ti :
- Asigna mt(Q) (cont.+1)a la versión creada
- Seteo Cont.= Cont.+1
Asegura secuencialidad.
Las transacciones de sólo lectura no tienen que esperar.
Planif. recuperables y sin cascada.
Prob. de Interbloqueos.
Esquemas de Control de Concurrencia
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Comparativo entre DBMS
DB2 SQLServer Oracle PostgreSQL
Protocolo Protocolo de bloqueo de2 fases para transaccionesde actualización. Utiliza bloqueosintencionales y granularidada nivel de filas y tablas.
Protocolo de bloqueo de 2fases.
Utiliza bloqueos intencionalesy granularidad múltiple (base dedatos, tabla, extensión, página,fila, etc).A partir de la versión 2005implementa multiversionado defilas (Tempdb).
Protocolomultiversión de dosfases. Granularidad anivel de filas ytablas.
Protocolo deordenación por marcastemporales multiversión. Granularidad a nivelde filas y tablas.
Modos debloqueo
IN (intent none)iS (intent share)NS (next key share)S (share)IX (intent exclusive)SIX (share withintent exclusive)U (update)NX (next-key exclusive)X (exclusive)Z (superexclusive)
S (share),X (exclusive)U (update)IS (intent shared) IX (intent exclusive)SIX (shared with intent exclusive)Sch (schema)BU (bulk update)Key-range
RS (row share)RX (row exclusive)S (share)SRX (share rowexclusive)X (exclusive)
Access ShareRow ShareRow ExclusiveShare Update ExclusiveShareShare Row ExclusiveExclusiveAccess Exclusive
A) Protocolo Implementado
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Niveles de Aislamiento en SQL
Nivel de aislamiento
Lectura sucia Lectura no repetible
Lecturafantasma
Lectura no comprometida
Sí Sí Sí
Lectura comprometida
No Sí Sí
Lectura repetible No No Sí
Secuenciable No No No
Se puede ajustar el nivel de aislamiento entre las transacciones y determinar parauna transacción el grado de aceptación de datos inconsistentes. A mayor grado deaislamiento, mayor precisión, pero a costa de menor concurrencia.
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Comparativo entre DBMS
DB2 SQLServer Oracle PostgreSQL
Uncommitted Read Read uncommitted
Cursor Stability(Predeterminado)
Read committed (2 fases -Predeterminado)
- Read committed snapshot(Multiversión)
ReadCommited(Predeterminado)
Read committed(Predeterminado)
Read Stability (Protocolo estricto de dos fases)
Repeatable Read
Repeatable read Serializable (2 fases)
Snapshot Isolation(Multiversión)
Serializable Serializable
B) Niveles de Aislamiento
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Interbloqueos
Existe un interbloqueo cuando existe un conjunto de transacciones, tal quetoda transacción del conjunto está esperando un elemento de datos bloqueadopor otra transacción del conjunto.
T1 T2
A
B
T2 está esperando se libere el bloqueo de B
T1 está esperando se libere el bloqueo de A
INTERBLOQUEO
Métodos para tratar elproblema:
- Temporizaciones
- Prevención de interbloqueos
- Detección y recuperación deinterbloqueos.
Sistemas de DatosCurso: Ernesto Chinkes Gestión de Transacciones
Comparativo entre DBMS
C) Manejo de Interbloqueos
- Detectar en forma automática los interbloqueos
- Elegir una de las transacciones para ser abortada según determinadocriterio, cuando se detecta un interbloqueo.
DB2, SQLServer, Oracle y PostgreSQL permiten: