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
© Copyright 2024