gestion de transacciones_may-11

45
GESTION DE TRANSACCIONES Recuperación ante Fallos Control de Concurrencia

Upload: fernandocar12

Post on 20-Jul-2015

485 views

Category:

Documents


0 download

TRANSCRIPT

GESTION DE TRANSACCIONES

Recuperación ante Fallos

Control de Concurrencia

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

Recuperación ante Fallos

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>

Control de Concurrencia

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: