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 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
                                 Escribir(A)
                       Tx
                                 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
                                                 Comprometida

  Consistencia (C)
                                     Activa

   Aislamiento (I)
                                                    Fallida       Abortada
     Durabilidad (D)
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 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 Datos
                                     Curso: Ernesto Chinkes          Gestión de Transacciones




                           Acceso a los Datos

Ejemplo: Lectura del bloque B2




                                       Búfer de la                          BD
                                           BD
   Requiere datos                         B1
                                          B2
                                                         lectura
                        Bloques de
    para ejecutar       memoria           B3
                                                                            B2        Bloques físicos
       una TX           intermedia        B4
                                                                            B1




    Aplicación            Almacenamiento Primario                  Almacenamiento Secundario
                          (RAM)                                             (Disco)
Sistemas de Datos
                            Curso: Ernesto Chinkes   Gestión de Transacciones



               Clasificación de los Fallos

   Fallo en la transacción
       Error lógico                                     X
       Error del sistema


   Fallo del sistema
       Error en la memoria volátil
       Error en el funcionamiento del DBMS
        o del SO


   Fallo de disco
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.

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.
Sistemas de Datos
                                    Curso: Ernesto Chinkes      Gestión de Transacciones



                 Técnicas 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              900            1000

          Identificador de Identificador del   Valor anterior   Valor nuevo
           la transacción elemento de datos
Sistemas de Datos
                                   Curso: Ernesto Chinkes         Gestión de Transacciones



                 Técnicas de Recuperación

                              Registro Histórico
Técnica de Actualización Diferida:
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.


                              Registro Histórico                             BD
                             <T0 iniciada>
                             <T0 , A, 950>                                 A = 950
                                                                               1000
                             <T0 , B, 2050>                                B = 2050
                                                                               2000
                             <T0 comprometida>
Transacción

               Procedimiento de recuperación ante un fallo:              Operación
               - Rehacer T0: Para Tx iniciadas y comprometidas.          Idempotente
Sistemas de Datos
                                 Curso: Ernesto Chinkes        Gestión de Transacciones



               Técnicas 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                             BD
                          <T0 iniciada>
                            0
                          <T0 , A, 1000, 950>
                            0                                           A = 1000
                                                                            950
                          <T0 , B, 2000, 2050>
                            0                                           B = 2000
                                                                            2050
                          <T0 comprometida>
                            0

Transacción
              Procedimientos de recuperación ante un fallo:
              - Deshacer T0: Para Tx iniciadas y no comprometidas.
                                                                      Operaciones
              - Rehacer T0: Para Tx iniciadas y comprometidas.        Idempotentes
Sistemas de Datos
                                          Curso: Ernesto Chinkes        Gestión de Transacciones



                     Técnicas 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.

                      Pto Revisión           FALLA
                                                                   Mayor eficiencia en la
TRANSACCIONES




                T1                                                 recuperación
                T2
                T3                                                 Si Tx está comprometida antes
                T4                                                 del punto de revisión, no es
                T5                                                 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



                             Búfer del RH                  Registro Histórico

                                 Ba                              Ba
  <T0 iniciada>
                                 Bb
  <T0 , A, 1000, 950>

  <T0 , B, 2000, 2050>

  <T0 comprometida>
                                                            Base de Datos
                            Búfer de la BD
                             Búfer de la
                                 BD
                                 B4
                                B1
                                 B1   A                          B1
                                B3    B
                                 B2
                                B4
                                                                 B4
    Aplicación                   B3



                         Almacenamiento                  Almacenamiento
                         primario (RAM)                 secundario (Disco)
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 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 un
    Diferencial.
Sistemas de Datos
                                                         Curso: Ernesto Chinkes             Gestión de Transacciones



             Esquema de recuperación ARIES
Algoritmo de recuperación avanzado que utiliza técnicas para:
Reducir el tiempo de recuperación.


                                                    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).
                              1- Análisis
                                                        •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).
                            DPT                         •Soporta operaciones rehacer fisicas.
       2- Rehacer                                       •Esquema de revisión difusa. Sólo registra información sobre las
                             Bx                         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
       3- Deshacer
                                TT                      caída.
                     NSR3 <T0 iniciada>                 •Rehacer: mediante la DPT
                     NSR4    <T0 , A, 1000, 950>
                                                        •Deshacer: mediante la TT
                     NSR5    <T0 , B, 2000, 2050>
                     NSR6 <T0 comprometida>
Sistemas de Datos
                                                              Curso: Ernesto Chinkes                     Gestión de Transacciones



                                Comparativo entre DBMS
                             DB2                                ORACLE                        SQL SERVER                       POSTGRESQL
              •   Implementa       esquema       de   Soporta      2     tipos     de     •   Implementa esquema de        •   Recuperación basada en
                  recuperación ARIES                     configuración:                       recuperación Aries.              WAL con fases de
              •   Uso       de        instrucciones   • RH rehacer: 2 o más               •   Permite        configurar        Rehacer     y    Deshacer
                  explícitas:             commit,        archivos donde se registra           intervalos             de        similares a Aries.
                  rollback, begin transaction            cualquier       modificación         recuperación.     Ajusta     •   Un archivo pg_clog
                  y end transaction.                     transaccional     de     una         dinámicamente           la       registra el estado actual
              •   Soporta       2      tipos     de      memoria intermedia de la             frecuencia     de     los        de cada transacción:
                  configuración:                         BD.                                  Checkpoint para reducir          activa, comprometida o
Fallo   con          •     RH circular: Sólo útil     • RH rehacer archivados:                el       tiempo        de        abortada.
pérdida de                 para la recuperación          Los RH rehacer se archivan           recuperación.                •   En una recuperación no
memoria                    de caídas o de un             cuando se llenan.                                                     se necesita Deshacer
volátil                    fallo de la aplicación     • Archivos       de    control:                                          una            transacción
                     •     Registro              de      metadatos necesarios para                                             abortada.
                           archivo:       necesario      operar en la BD, incluyendo
                           para la recuperación          información sobre copias de
                           hacia delante de una          seguridad.
                           copia de seguridad de      • Segmento           retroceso
                           archivo.                      guarda versiones anteriores
                                                         de    los     datos    (para
                                                         deshacer).
              •     Soporta recuperación por          •   Copias de seguridad en          •   Base de datos en espera      •   Copias de seguridad
                    instantes (point-in-time:             caliente   (on     line)    y       mediante envío de RH.            mediante
                    recuperar hasta el                    recuperación en paralelo.       •   Se    pueden     realizar           volcado SQL usando
Fallo   con         momento o la transacción          •   Proporciona la característica       copias de seguridad de               herramientas
                    que se quiera desde una               base de datos en espera             base de datos, archivos,             proporcionadas por
pérdida de
                    copia de seguridad) o                 gestionada (es la misma             grupos de archivos y del             PostgreSQL
memoria             hacia delante (roll-                  que copias de seguridad             RH de transacciones.                volcado en línea y
no volátil          forward).                             remotas)                                                                 recuperación point
              •     Esquema de recuperación                                                                                        in time (PITR)
                    en paralelo.
Sistemas de Datos
                                Curso: Ernesto Chinkes        Gestión de Transacciones



                             Ejercicio
Indicar el procedimiento de recuperación en cada caso:
                                                           <Rehacer T0>    <Rehacer T0>
 Actualización
 Diferida




                                                                             <Rehacer T1>
                                                         <Rehacer T0>
Actualización                                                                <Rehacer T0>
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

Esquemas de Control de Concurrencia

Niveles de aislamiento en el estándar SQL

Interbloqueos
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            T2                                         T1             T2
    Leer(A)                                                                 Leer(A)
    A:= A – 25                                                              Temp:= A * 0.2
    Escribir(A)                                                             A:= A - Temp
    Leer(B)                                                                 Escribir(A)
    B:= B + 25                                                              Leer(B)
    Escribir(B)                                                             B:=B + Temp
                  Leer(A)                                                   Escribir(B)
                  Temp:= A * 0.2                              Leer(A)
                  A:= A - Temp                                A:= A – 25
                  Escribir(A)                                 Escribir(A)
                  Leer(B)                                     Leer(B)
                  B:=B + Temp                                 B:= B + 25
                  Escribir(B)                                 Escribir(B)
Sistemas de Datos
                                      Curso: Ernesto Chinkes     Gestión de Transacciones




                                Planificaciones
                                                Planificaciones no Secuenciales
Planificación Secuencial
                                 Equivalente                                  No Equivalente

      T1            T2                T1             T2                 T1             T2
 Leer(A)                          Leer(A)                           Leer(A)
 A:= A – 25                       A:= A – 25                        A:= A – 25
 Escribir(A)                      Escribir(A)                                     Leer(A)
 Leer(B)                                        Leer(A)                           Temp:= A * 0.2
 B:= B + 25                                     Temp:= A * 0.2                    A:= A - Temp
 Escribir(B)                                    A:= A - Temp                      Escribir(A)
               Leer(A)                          Escribir(A)                       Leer(B)
               Temp:= A * 0.2     Leer(B)                           Escribir(A)
               A:= A - Temp       B:= B + 25                        Leer(B)
               Escribir(A)        Escribir(B)                       B:= B + 25
               Leer(B)                          Leer(B)             Escribir(B)
               B:=B + Temp                                                        B:=B + Temp
                                                B:=B + Temp                       Escribir(B)
               Escribir(B)                      Escribir(B)



                                                                    Estado inconsistente
Sistemas de Datos
                                   Curso: Ernesto Chinkes       Gestión de Transacciones




        Problemas de la concurrencia

    Actualización perdida
Ocurre cuando dos transacciones que intentan modificar un elemento de datos, ambas
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 leerlo.

                         T1             T2
                     Leer(B)
                     B:= B + 25
                                    Leer(B)
                                                            T2 sobreescribe el valor del
                     Escribir(B)                             elemento B escrito por T1
                                    B:=B + 100
                                    Escribir(B)
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.

                        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            T2
           A = 50       Leer(A)
           Suma = 50    Suma:= Suma + A
           B = 200      Leer(B)
           Suma = 250   Suma:= Suma + B
                                             Leer(C)         C = 150
                                             C:= C - 100
                                             Escribir(C)     C = 50
                                             Leer(A)         A = 50
                                             A:= A + 100
                                             Escribir(A)     A = 150
                                             COMMIT
                        Leer(C)
           C = 50                                              T1 llega a un análisis
   Suma = 300           Suma:= Suma + C                     inconsistente, devolviendo
   Faltan $100                                                 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.
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
                            Leer(A)
            ningún valor

                                              Escribir(A)
                                                                  T1 lee un valor del
   Ahora devuelve el
   valor escrito por T2!    Leer(A)                            elemento de datos 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.


 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                     T1            T2
 Leer(A)                       Leer(A)                                 Leer(A)
 Escribir(A)                   Escribir(A)                                           Leer(A)
 Leer(B)                                        Leer(A)                              Escribir(A)
 Escribir(B)                                    Escribir(A)
                                                                       Escribir(A)
               Leer(A)         Leer(B)                                 Leer(B)
               Escribir(A)     Escribir(B)                                           Leer(B)
               Leer(B)                          Leer(B)                              Escribir(B)
               Escribir(B)                      Escribir(B)            Escribir(B)




Planificación Secuencial     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                           T1             T2             T3
Leer(Q)                                                   Leer(Q)
Escribir(Q)                                                             Escribir(Q)
              Escribir(Q)
                                                          Escribir(Q)
                            Escribir(Q)                                                Escribir(Q)




    Planificación Secuencial                    Planificación                        Planificación
                                                Secuenciable                        no Secuenciable
                                              en cuanto a vistas                 en cuanto a conflictos


                                                               Escrituras a ciegas
Sistemas de Datos
                                                  Curso: Ernesto Chinkes    Gestión de Transacciones




                                     Recuperabilidad
                                      Planificación no recuperable
         T1                T2
   Leer(A)
   Escribir(A)                              - T2 lee un dato escrito por T1
                        Leer(A)
                                            - T2 se compromete antes que T1          Planificación
   Leer(B)
                                            - T1 falla y no logra comprometerse     no recuperable
                                            -> T2 no puede abortarse


                                Planificación con retroceso en cascada

    T1               T2              T3
                                                  - T2 lee un dato escrito por T1
Leer(A)                                           - T3 lee un dato escrito por T2       Planificación
Leer(B)
                                                  - T1 falla y no logra comprometerse   con retroceso
Escribir(A)
                 Leer(A)
                                                  --> T1 debe retrocederse               en cascada
                 Escribir (A)                     --> T2 debe retrocederse
                                  Leer(A)         --> T3 debe retrocederse
Sistemas de Datos
                                        Curso: Ernesto Chinkes     Gestión de Transacciones




                               Recuperabilidad
    T1            T2
                                                         Planificaciones recuperables
Leer(A)
A:= A – 25
Escribir(A)                                        Tj lee elementos de datos que ha escrito Ti
              Leer(A)
              Temp:= A * 0.2
              A:= A - Temp      Fallo                 Ti debe comprometerse antes que Tj
              Escribir(A)




                                                          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
                                      Protocolos basados en el bloqueo

Gestor de Control
de Concurrencia

          concede                        Compartido (C)           Lectura

                    Bloqueos

                                                                  Lectura
                                          Exclusivo (X)
       Compatibilidad
                                                                  Escritura
              C         X

 C

 X
Sistemas de Datos
                                          Curso: Ernesto Chinkes           Gestión de Transacciones




               Esquemas de Control de Concurrencia
                                                      Protocolos basados en el bloqueo

                                Protocolo de bloqueo de dos fases
                 Punto de bloqueo
Cantidad de
 bloqueos
                                                                                    Secuencialidad en
                                                     bloquea                        cuanto a conflictos
                                                     desbloquea
                                                                                    Probabilidad de
                                                                                    Interbloqueos

                                                                                    Prob. de retroceso
                                                                                    en cascada
           Fase 1                 Fase 2
        Crecimiento            Decrecimiento          Duración de
                                                     la transacción
     INICIO Ti                              FIN Ti


    Estricto                                                                                  Riguroso
   Una transacción debe conservar todos los                       Una transacción debe conservar todos
   bloqueos exclusivos hasta que se comprometa.                   los bloqueos hasta que se comprometa.
Sistemas de Datos
                                                    Curso: Ernesto Chinkes   Gestión de Transacciones




              Esquemas de Control de Concurrencia
                                                              Protocolos basados en el bloqueo
                      Protocolo de bloqueo de dos fases con intención de bloqueo

Jerarquía de granularidad                                                    Modo de bloqueo intencional
                              Bloqueo intencional
Nodo de BD                                                 BD                      Intencional Exclusivo (IX)
                                    de la BD
                                                                                   Intencional Compartido (IC)
                     Bloqueo intencional
                        de la zona Z1                                              Intencional Exclusivo y
Nodos
                                                  Z1                Z2             Compartido (IXC)
de Zona             Bloqueo explícito
                      del archivo Aa                                                 Compatibilidad
                                                                                   IC     IX     C   IXC     X
Nodos
de Archivo                    Aa                    Ab               Ac      IC

                                                                             IX
                                                                             C
Nodos
de Registro
              ra1      ra2 …        ran        rb1 … rbk        rc1 … rcm    IXC
                                                                             X
          Bloqueo implícito de los registros
             pertenecientes al archivo Aa
Sistemas de Datos
                                Curso: Ernesto Chinkes           Gestión de Transacciones




     Esquemas de Control de Concurrencia
                                                            Esquemas multiversión
             Ordenación por marcas temporales multiversión

                                         Valor del reloj
                                                            Q               Q1
T1     MT(T1)            Marcas
                                         del sistema



T2
                       Temporales                                           Q2     n versiones
       MT(T2)                             Contador lógico
.                                                                                   asociadas
.
.
         .
         .
                    Marcas temporales
                                                                            Q3     al elemento
         .                                                                  .
Tn                   asociadas a las                                                de datos Q
       MT(Tn)
                                                                            .
                      transacciones                                         .



                                                    Q1                      Qn


                           contenido        mt-E (Q1)           mt-L (Q1)


                Valor de la versión Q1   Marca temporal de la       > Marca temporal de
                                         transacción que creó       las transacciones que
                                             la versión Q1           leyeron con éxito Q1
Sistemas de Datos
                                    Curso: Ernesto Chinkes     Gestión de Transacciones



      Esquemas de Control de Concurrencia
                                                             Esquemas multiversión
                    Ordenación por marcas temporales multiversión

Sea Qk la versión de Q con mt-E(Qk) ≤ MT(Ti)
Ti ejecuta la operación leer(Q)
                                                               Asegura la secuencialidad.
     Se muestra el contenido de la versión más
     reciente de Q [ mt-E(Q) < MT(Ti) ].                       Las peticiones de lectura no
                                                               fallan y no tienen que esperar.
Ti ejecuta la operación escribir(Q)
                                                              Las lecturas requieren
                                                              actualizar el campo mt-L(Q)
MT(Ti) < mt-L(Qk)           Retroceso de Ti                   (acceso extra al disco).
                                                              Los conflictos se resuelven
MT(Ti) > mt-L(Qk)                                             por medio de retrocesos.
        y                   Sobreescritura del
                            contenido de Qk                    Prob. de planificaciones no
MT(Ti) = mt-E(Qk)                                              recuperables y retrocesos en
                                                               cascada.
MT(Ti) > mt-L(Qk)
        y                   Creación de una
MT(Ti) > mt-E(Qk)           nueva versión de Qk
Sistemas de Datos
                                                   Curso: Ernesto Chinkes          Gestión de Transacciones




          Esquemas de Control de Concurrencia
                                                                               Esquemas multiversión
                                  Bloqueo de dos fases multiversión

T1                                       mt(Q)               Q
                                                                        Transacciones de sólo lectura
             MT(T1)
T2
                                               (Una sola marca        Ti ejecuta la operación leer(Q)
             MT(T2)      Valor actual         temporal para Q)
.              .         contador_mt
.              .
                                                                      Se muestra el contenido de la versión más
Tn          MT(Tn)                            Q1                 Q    reciente de Q [ mt(Q) < MT(Ti) ].
                               n versiones
                                asociadas     Q2
                                               .                       Transacciones de actualización
                                               .

     Asegura secuencialidad.                  Qn                            Realizan un bloqueo de 2 fases riguroso
     Las transacciones de                                            Ti ejecuta la operación leer(Q)
     sólo lectura no tienen
     que esperar.                                                     Ti obtiene un bloqueo compartido sobre Q.
     Planif. recuperables y             Compromiso de Ti :            Ti lee la versión más reciente de Q.
     sin cascada.                       - Asigna mt(Q) (cont.+1)      Ti ejecuta la operación escribir(Q)
     Prob. de Interbloqueos.              a la versión creada

                                        - 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    Protocolo de bloqueo de        Protocolo de bloqueo de 2         Protocolo            Protocolo            de
            2 fases para transacciones      fases.                             multiversión de dos   ordenación por marcas
            de actualización.                                                  fases.                temporales multiversión.
             Utiliza            bloqueos    Utiliza bloqueos intencionales    Granularidad    a    Granularidad a nivel
            intencionales y granularidad    y granularidad múltiple (base de   nivel de filas y      de filas y tablas.
            a nivel de filas y tablas.      datos, tabla, extensión, página,   tablas.
                                            fila, etc).
                                            A partir de la versión 2005
                                            implementa multiversionado de
                                            filas (Tempdb).
Modos de    IN (intent none)                S (share),                         RS (row share)        Access Share
bloqueo     iS (intent share)               X (exclusive)                      RX (row exclusive)    Row Share
            NS (next key share)             U (update)                         S (share)             Row Exclusive
            S (share)                       IS (intent shared)                 SRX (share row        Share Update Exclusive
            IX (intent exclusive)           IX (intent exclusive)              exclusive)            Share
            SIX (share with                 SIX (shared with intent            X (exclusive)         Share Row Exclusive
            intent exclusive)               exclusive)                                               Exclusive
            U (update)                      Sch (schema)                                             Access Exclusive
            NX (next-key exclusive)         BU (bulk update)
            X (exclusive)                   Key-range
            Z (superexclusive)
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          Lectura sucia        Lectura no           Lectura
     aislamiento                               repetible          fantasma
      Lectura no               Sí                   Sí                 Sí
    comprometida
       Lectura                 No                   Sí                 Sí
    comprometida

   Lectura repetible           No                  No                  Sí


     Secuenciable              No                  No                 No
Sistemas de Datos
                                                 Curso: Ernesto Chinkes          Gestión de Transacciones



                   Comparativo entre DBMS

B) Niveles de Aislamiento

            DB2                     SQLServer                         Oracle               PostgreSQL
Uncommitted Read            Read uncommitted


Cursor Stability            Read committed (2 fases -         ReadCommited            Read committed
(Predeterminado)            Predeterminado)                   (Predeterminado)        (Predeterminado)

                            - Read committed snapshot
                            (Multiversión)



Read Stability (Protocolo   Repeatable Read
estricto de dos fases)


Repeatable read             Serializable (2 fases)            Serializable            Serializable

                            Snapshot Isolation
                            (Multiversión)
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.

          T2 está esperando se
          libere el bloqueo de B

   B                                                  Métodos   para      tratar   el
                                                      problema:

  T1         INTERBLOQUEO               T2            - Temporizaciones

                                                      - Prevención de interbloqueos

                                          A           - Detección y recuperación de
           T1 está esperando se                         interbloqueos.
           libere el bloqueo de A
Sistemas de Datos
                                 Curso: Ernesto Chinkes   Gestión de Transacciones



           Comparativo entre DBMS

C) Manejo de Interbloqueos

   DB2, SQLServer, Oracle y PostgreSQL permiten:

   -   Detectar en forma automática los interbloqueos

   -   Elegir una de las transacciones para ser abortada según determinado
       criterio, cuando se detecta un interbloqueo.

Gestion de transacciones_may-11

  • 1.
    GESTION DE TRANSACCIONES Recuperación ante Fallos Control de Concurrencia
  • 2.
    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 de BD Esquema de recuperación Aries Comparativo de DBMS Ejercicio
  • 3.
    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 Escribir(A) Tx Leer(B) B:= B + 100 Escribir(B)
  • 4.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Propiedades y Estados de una Tx TRANSACCIÓN Propiedades Estados Atomicidad (A) Parcialmente Comprometida Comprometida Consistencia (C) Activa Aislamiento (I) Fallida Abortada Durabilidad (D)
  • 5.
  • 6.
    Sistemas de Datos Curso: 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.
  • 7.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Acceso a los Datos Ejemplo: Lectura del bloque B2 Búfer de la BD BD Requiere datos B1 B2 lectura Bloques de para ejecutar memoria B3 B2 Bloques físicos una TX intermedia B4 B1 Aplicación Almacenamiento Primario Almacenamiento Secundario (RAM) (Disco)
  • 8.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Clasificación de los Fallos  Fallo en la transacción  Error lógico X  Error del sistema  Fallo del sistema  Error en la memoria volátil  Error en el funcionamiento del DBMS o del SO  Fallo de disco
  • 9.
    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. 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.
  • 10.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Técnicas 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 900 1000 Identificador de Identificador del Valor anterior Valor nuevo la transacción elemento de datos
  • 11.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Técnicas de Recuperación Registro Histórico Técnica de Actualización Diferida: 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. Registro Histórico BD <T0 iniciada> <T0 , A, 950> A = 950 1000 <T0 , B, 2050> B = 2050 2000 <T0 comprometida> Transacción Procedimiento de recuperación ante un fallo: Operación - Rehacer T0: Para Tx iniciadas y comprometidas. Idempotente
  • 12.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Técnicas 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 BD <T0 iniciada> 0 <T0 , A, 1000, 950> 0 A = 1000 950 <T0 , B, 2000, 2050> 0 B = 2000 2050 <T0 comprometida> 0 Transacción Procedimientos de recuperación ante un fallo: - Deshacer T0: Para Tx iniciadas y no comprometidas. Operaciones - Rehacer T0: Para Tx iniciadas y comprometidas. Idempotentes
  • 13.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Técnicas 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. Pto Revisión FALLA Mayor eficiencia en la TRANSACCIONES T1 recuperación T2 T3 Si Tx está comprometida antes T4 del punto de revisión, no es T5 necesario Rehacer Tx. • T1 puede ignorarse • T2 y T4 rehacer. • T3 y T5 deshacer
  • 14.
    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 Búfer del RH Registro Histórico Ba Ba <T0 iniciada> Bb <T0 , A, 1000, 950> <T0 , B, 2000, 2050> <T0 comprometida> Base de Datos Búfer de la BD Búfer de la BD B4 B1 B1 A B1 B3 B B2 B4 B4 Aplicación B3 Almacenamiento Almacenamiento primario (RAM) secundario (Disco)
  • 15.
    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 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 un Diferencial.
  • 16.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquema de recuperación ARIES Algoritmo de recuperación avanzado que utiliza técnicas para: Reducir el tiempo de recuperación. 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). 1- Análisis •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). DPT •Soporta operaciones rehacer fisicas. 2- Rehacer •Esquema de revisión difusa. Sólo registra información sobre las Bx 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 3- Deshacer TT caída. NSR3 <T0 iniciada> •Rehacer: mediante la DPT NSR4 <T0 , A, 1000, 950> •Deshacer: mediante la TT NSR5 <T0 , B, 2000, 2050> NSR6 <T0 comprometida>
  • 17.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Comparativo entre DBMS DB2 ORACLE SQL SERVER POSTGRESQL • Implementa esquema de Soporta 2 tipos de • Implementa esquema de • Recuperación basada en recuperación ARIES configuración: recuperación Aries. WAL con fases de • Uso de instrucciones • RH rehacer: 2 o más • Permite configurar Rehacer y Deshacer explícitas: commit, archivos donde se registra intervalos de similares a Aries. rollback, begin transaction cualquier modificación recuperación. Ajusta • Un archivo pg_clog y end transaction. transaccional de una dinámicamente la registra el estado actual • Soporta 2 tipos de memoria intermedia de la frecuencia de los de cada transacción: configuración: BD. Checkpoint para reducir activa, comprometida o Fallo con • RH circular: Sólo útil • RH rehacer archivados: el tiempo de abortada. pérdida de para la recuperación Los RH rehacer se archivan recuperación. • En una recuperación no memoria de caídas o de un cuando se llenan. se necesita Deshacer volátil fallo de la aplicación • Archivos de control: una transacción • Registro de metadatos necesarios para abortada. archivo: necesario operar en la BD, incluyendo para la recuperación información sobre copias de hacia delante de una seguridad. copia de seguridad de • Segmento retroceso archivo. guarda versiones anteriores de los datos (para deshacer). • Soporta recuperación por • Copias de seguridad en • Base de datos en espera • Copias de seguridad instantes (point-in-time: caliente (on line) y mediante envío de RH. mediante recuperar hasta el recuperación en paralelo. • Se pueden realizar volcado SQL usando Fallo con momento o la transacción • Proporciona la característica copias de seguridad de herramientas que se quiera desde una base de datos en espera base de datos, archivos, proporcionadas por pérdida de copia de seguridad) o gestionada (es la misma grupos de archivos y del PostgreSQL memoria hacia delante (roll- que copias de seguridad RH de transacciones. volcado en línea y no volátil forward). remotas) recuperación point • Esquema de recuperación in time (PITR) en paralelo.
  • 18.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Ejercicio Indicar el procedimiento de recuperación en cada caso: <Rehacer T0> <Rehacer T0> Actualización Diferida <Rehacer T1> <Rehacer T0> Actualización <Rehacer T0> Inmediata <Deshacer T0> <Deshacer T1> <Rehacer T1>
  • 19.
  • 20.
    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 Esquemas de Control de Concurrencia Niveles de aislamiento en el estándar SQL Interbloqueos
  • 21.
    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
  • 22.
    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 T2 T1 T2 Leer(A) Leer(A) A:= A – 25 Temp:= A * 0.2 Escribir(A) A:= A - Temp Leer(B) Escribir(A) B:= B + 25 Leer(B) Escribir(B) B:=B + Temp Leer(A) Escribir(B) Temp:= A * 0.2 Leer(A) A:= A - Temp A:= A – 25 Escribir(A) Escribir(A) Leer(B) Leer(B) B:=B + Temp B:= B + 25 Escribir(B) Escribir(B)
  • 23.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Planificaciones Planificaciones no Secuenciales Planificación Secuencial Equivalente No Equivalente T1 T2 T1 T2 T1 T2 Leer(A) Leer(A) Leer(A) A:= A – 25 A:= A – 25 A:= A – 25 Escribir(A) Escribir(A) Leer(A) Leer(B) Leer(A) Temp:= A * 0.2 B:= B + 25 Temp:= A * 0.2 A:= A - Temp Escribir(B) A:= A - Temp Escribir(A) Leer(A) Escribir(A) Leer(B) Temp:= A * 0.2 Leer(B) Escribir(A) A:= A - Temp B:= B + 25 Leer(B) Escribir(A) Escribir(B) B:= B + 25 Leer(B) Leer(B) Escribir(B) B:=B + Temp B:=B + Temp B:=B + Temp Escribir(B) Escribir(B) Escribir(B) Estado inconsistente
  • 24.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Problemas de la concurrencia Actualización perdida Ocurre cuando dos transacciones que intentan modificar un elemento de datos, ambas 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 leerlo. T1 T2 Leer(B) B:= B + 25 Leer(B) T2 sobreescribe el valor del Escribir(B) elemento B escrito por T1 B:=B + 100 Escribir(B)
  • 25.
    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. 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
  • 26.
    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 T2 A = 50 Leer(A) Suma = 50 Suma:= Suma + A B = 200 Leer(B) Suma = 250 Suma:= Suma + B Leer(C) C = 150 C:= C - 100 Escribir(C) C = 50 Leer(A) A = 50 A:= A + 100 Escribir(A) A = 150 COMMIT Leer(C) C = 50 T1 llega a un análisis Suma = 300 Suma:= Suma + C inconsistente, devolviendo Faltan $100 un resultado erróneo
  • 27.
    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.
  • 28.
    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 Leer(A) ningún valor Escribir(A) T1 lee un valor del Ahora devuelve el valor escrito por T2! Leer(A) elemento de datos A, que antes no existía.
  • 29.
    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. 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.
  • 30.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Secuencialidad En cuanto a conflictos T1 T2 T1 T2 T1 T2 Leer(A) Leer(A) Leer(A) Escribir(A) Escribir(A) Leer(A) Leer(B) Leer(A) Escribir(A) Escribir(B) Escribir(A) Escribir(A) Leer(A) Leer(B) Leer(B) Escribir(A) Escribir(B) Leer(B) Leer(B) Leer(B) Escribir(B) Escribir(B) Escribir(B) Escribir(B) Planificación Secuencial Planificación Secuenciable Planificación no Secuenciable en cuanto a conflictos en cuanto a conflictos
  • 31.
    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’.
  • 32.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Secuencialidad En cuanto a vistas T1 T2 T3 T1 T2 T3 Leer(Q) Leer(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Escribir(Q) Planificación Secuencial Planificación Planificación Secuenciable no Secuenciable en cuanto a vistas en cuanto a conflictos Escrituras a ciegas
  • 33.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Recuperabilidad Planificación no recuperable T1 T2 Leer(A) Escribir(A) - T2 lee un dato escrito por T1 Leer(A) - T2 se compromete antes que T1 Planificación Leer(B) - T1 falla y no logra comprometerse no recuperable -> T2 no puede abortarse Planificación con retroceso en cascada T1 T2 T3 - T2 lee un dato escrito por T1 Leer(A) - T3 lee un dato escrito por T2 Planificación Leer(B) - T1 falla y no logra comprometerse con retroceso Escribir(A) Leer(A) --> T1 debe retrocederse en cascada Escribir (A) --> T2 debe retrocederse Leer(A) --> T3 debe retrocederse
  • 34.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Recuperabilidad T1 T2 Planificaciones recuperables Leer(A) A:= A – 25 Escribir(A) Tj lee elementos de datos que ha escrito Ti Leer(A) Temp:= A * 0.2 A:= A - Temp Fallo Ti debe comprometerse antes que Tj Escribir(A) Planificaciones sin cascada Tj lee elementos de datos que ha escrito Ti Ti debe comprometerse antes que Tj lea dichos elementos de datos
  • 35.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Protocolos basados en el bloqueo Gestor de Control de Concurrencia concede Compartido (C) Lectura Bloqueos Lectura Exclusivo (X) Compatibilidad Escritura C X C X
  • 36.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Protocolos basados en el bloqueo Protocolo de bloqueo de dos fases Punto de bloqueo Cantidad de bloqueos Secuencialidad en bloquea cuanto a conflictos desbloquea Probabilidad de Interbloqueos Prob. de retroceso en cascada Fase 1 Fase 2 Crecimiento Decrecimiento Duración de la transacción INICIO Ti FIN Ti Estricto Riguroso Una transacción debe conservar todos los Una transacción debe conservar todos bloqueos exclusivos hasta que se comprometa. los bloqueos hasta que se comprometa.
  • 37.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Protocolos basados en el bloqueo Protocolo de bloqueo de dos fases con intención de bloqueo Jerarquía de granularidad Modo de bloqueo intencional Bloqueo intencional Nodo de BD BD Intencional Exclusivo (IX) de la BD Intencional Compartido (IC) Bloqueo intencional de la zona Z1 Intencional Exclusivo y Nodos Z1 Z2 Compartido (IXC) de Zona Bloqueo explícito del archivo Aa Compatibilidad IC IX C IXC X Nodos de Archivo Aa Ab Ac IC IX C Nodos de Registro ra1 ra2 … ran rb1 … rbk rc1 … rcm IXC X Bloqueo implícito de los registros pertenecientes al archivo Aa
  • 38.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Esquemas multiversión Ordenación por marcas temporales multiversión Valor del reloj Q Q1 T1 MT(T1) Marcas del sistema T2 Temporales Q2 n versiones MT(T2) Contador lógico . asociadas . . . . Marcas temporales Q3 al elemento . . Tn asociadas a las de datos Q MT(Tn) . transacciones . Q1 Qn contenido mt-E (Q1) mt-L (Q1) Valor de la versión Q1 Marca temporal de la > Marca temporal de transacción que creó las transacciones que la versión Q1 leyeron con éxito Q1
  • 39.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Esquemas multiversión Ordenación por marcas temporales multiversión Sea Qk la versión de Q con mt-E(Qk) ≤ MT(Ti) Ti ejecuta la operación leer(Q) Asegura la secuencialidad. Se muestra el contenido de la versión más reciente de Q [ mt-E(Q) < MT(Ti) ]. Las peticiones de lectura no fallan y no tienen que esperar. Ti ejecuta la operación escribir(Q) Las lecturas requieren actualizar el campo mt-L(Q) MT(Ti) < mt-L(Qk) Retroceso de Ti (acceso extra al disco). Los conflictos se resuelven MT(Ti) > mt-L(Qk) por medio de retrocesos. y Sobreescritura del contenido de Qk Prob. de planificaciones no MT(Ti) = mt-E(Qk) recuperables y retrocesos en cascada. MT(Ti) > mt-L(Qk) y Creación de una MT(Ti) > mt-E(Qk) nueva versión de Qk
  • 40.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Esquemas de Control de Concurrencia Esquemas multiversión Bloqueo de dos fases multiversión T1 mt(Q) Q Transacciones de sólo lectura MT(T1) T2 (Una sola marca Ti ejecuta la operación leer(Q) MT(T2) Valor actual temporal para Q) . . contador_mt . . Se muestra el contenido de la versión más Tn MT(Tn) Q1 Q reciente de Q [ mt(Q) < MT(Ti) ]. n versiones asociadas Q2 . Transacciones de actualización . Asegura secuencialidad. Qn Realizan un bloqueo de 2 fases riguroso Las transacciones de Ti ejecuta la operación leer(Q) sólo lectura no tienen que esperar. Ti obtiene un bloqueo compartido sobre Q. Planif. recuperables y Compromiso de Ti : Ti lee la versión más reciente de Q. sin cascada. - Asigna mt(Q) (cont.+1) Ti ejecuta la operación escribir(Q) Prob. de Interbloqueos. a la versión creada - Seteo Cont.= Cont.+1 Ti obtiene un bloqueo exclusivo sobre Q. Ti crea una nueva versión de Q.
  • 41.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Comparativo entre DBMS A) Protocolo Implementado DB2 SQLServer Oracle PostgreSQL Protocolo  Protocolo de bloqueo de  Protocolo de bloqueo de 2  Protocolo  Protocolo de 2 fases para transacciones fases. multiversión de dos ordenación por marcas de actualización. fases. temporales multiversión.  Utiliza bloqueos  Utiliza bloqueos intencionales  Granularidad a  Granularidad a nivel intencionales y granularidad y granularidad múltiple (base de nivel de filas y de filas y tablas. a nivel de filas y tablas. datos, tabla, extensión, página, tablas. fila, etc). A partir de la versión 2005 implementa multiversionado de filas (Tempdb). Modos de IN (intent none) S (share), RS (row share) Access Share bloqueo iS (intent share) X (exclusive) RX (row exclusive) Row Share NS (next key share) U (update) S (share) Row Exclusive S (share) IS (intent shared) SRX (share row Share Update Exclusive IX (intent exclusive) IX (intent exclusive) exclusive) Share SIX (share with SIX (shared with intent X (exclusive) Share Row Exclusive intent exclusive) exclusive) Exclusive U (update) Sch (schema) Access Exclusive NX (next-key exclusive) BU (bulk update) X (exclusive) Key-range Z (superexclusive)
  • 42.
    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 Lectura sucia Lectura no Lectura aislamiento repetible fantasma Lectura no Sí Sí Sí comprometida Lectura No Sí Sí comprometida Lectura repetible No No Sí Secuenciable No No No
  • 43.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Comparativo entre DBMS B) Niveles de Aislamiento DB2 SQLServer Oracle PostgreSQL Uncommitted Read Read uncommitted Cursor Stability Read committed (2 fases - ReadCommited Read committed (Predeterminado) Predeterminado) (Predeterminado) (Predeterminado) - Read committed snapshot (Multiversión) Read Stability (Protocolo Repeatable Read estricto de dos fases) Repeatable read Serializable (2 fases) Serializable Serializable Snapshot Isolation (Multiversión)
  • 44.
    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. T2 está esperando se libere el bloqueo de B B Métodos para tratar el problema: T1 INTERBLOQUEO T2 - Temporizaciones - Prevención de interbloqueos A - Detección y recuperación de T1 está esperando se interbloqueos. libere el bloqueo de A
  • 45.
    Sistemas de Datos Curso: Ernesto Chinkes Gestión de Transacciones Comparativo entre DBMS C) Manejo de Interbloqueos DB2, SQLServer, Oracle y PostgreSQL permiten: - Detectar en forma automática los interbloqueos - Elegir una de las transacciones para ser abortada según determinado criterio, cuando se detecta un interbloqueo.