SlideShare una empresa de Scribd logo
Administración de Base de Datos

        Concurrencia


                         Prof Mercy Ospina Torres
                        mercy.ospinat@gmail.com
                         Prof Renny A. Hernandez
                    renny.hernandez@ciens.ucv.ve
Contenido

     El DBA         • Qué es la concurrencia en BD
    El SMBD
                    • Problemas que ocasiona la concurrencia
Manejo de Memoria
                    • Planificación de transacciones
                      –   Planificación serial o secuencial
  Restauración
                      –   Precedencia
 Concurrencia
 Concurrencia         –   Seriabilidad
Diccionario Datos     –   Serialización por conflicto
 Proc. Consultas    • Técnicas de control de concurrencia
                      – Pesimistas
   Integridad
                           • Bloqueos
   Seguridad               • Marcas de tiempo
                      – Optimistas
     Marzo 2012                 Administración de Base de Datos           2
Concurrencia

                    ¿Qué es la concurrencia en BD?
     El DBA
                    • Coordinación de la ejecución                  simultanea de
    El SMBD
                      transacciones  en  un   SBD                    que    soporta
Manejo de Memoria     multiprocesamiento
  Restauración      Ventajas

 Concurrencia
 Concurrencia
                    • Aumenta la productividad por la mejor utilización
                      de los recursos y produce que el tiempo de espera
Diccionario Datos
                      de los usuarios se reduzca en promedio.
 Proc. Consultas
                    • Una transacción individual producirá un estado
   Integridad         correcto en la BD si se ejecuta de forma aislada
   Seguridad




     Marzo 2012                Administración de Base de Datos                   3
Concurrencia

                    Problemas
     El DBA
                    • Cuando se ejecutan transacciones de manera
    El SMBD
                      concurrente puede haber interferencias entre ellas
Manejo de Memoria     que produzcan resultados no correctos, debido a
                      que no se cumple completamente la propiedad de
  Restauración
                      aislamiento
 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012                 Administración de Base de Datos              4
Problemas

                    • Actualización perdida
     El DBA

                        T1      Tiempo            T2               X
    El SMBD
                                                                        1. Ambas
                                  T1           FIND X             100      transacciones
Manejo de Memoria
                      FIND X      T2                              100      guardan su copia
  Restauración                    T3        X = X+100             100      de X
                                                                        2. T1 y T2 realizan
                     X=X-10       T4                              100      modificaciones
 Concurrencia
 Concurrencia
                                  T5         UPDATE X             200
                                                                  200      diferentes en X
Diccionario Datos    UPDATE X     T6                               90
                                                                   90   3. T2 actualiza su
                                  T7          COMMIT               90      valor en
 Proc. Consultas     COMMIT       T8                               90      memoria
                                                                           principal
   Integridad                                                           4. T2 actualiza y se
                                                                           pierde la
   Seguridad                                                               actualizacion de
                                                                           T1


     Marzo 2012                 Administración de Base de Datos                           5
Problemas

                    • Dependencia no confirmada
     El DBA

                       T1      Tiempo            T2               X
    El SMBD
                                                                       1. T2 actualiza X a
                                 T1          FIND X              100      200
Manejo de Memoria
                                 T2        X = X+100             100   2. T1 lee el nuevo
  Restauración                   T3         UPDATE X             200
                                                                 100      valor de X
                                                                       3. T2 hace rollback
                     FIND X      T4                              200      por lo que la
 Concurrencia
 Concurrencia
                     X=X-10      T5                              200      actualización se
Diccionario Datos                T6         ROLLBACK             100
                                                                  90      deshace
                    UPDATE X     T7                               90
                                                                 190   4. T1 continua
 Proc. Consultas     COMMIT      T8                              190      trabajando con
                                                                          el valor
   Integridad                                                             actualizado por
                                                                          lo que el nuevo
   Seguridad                                                              valor de X es
                                                                          incorrecto


     Marzo 2012                Administración de Base de Datos                           6
Problemas

     El DBA         • Otros problemas
                      – Suma incorrecta: Si una transacción está
    El SMBD
                        calculando una suma sobre varios registros ,
Manejo de Memoria       mientras otras transacciones están actualizando
                        algunos de estos registros , la función suma puede
  Restauración          tomar algunos valores antes de que sean
                        actualizados y otros después de ser actualizados .
 Concurrencia
 Concurrencia
                      – Lectura irrepetible: En dos lecturas sucesivas de
Diccionario Datos       un elemento, la transacción Ti recibe respuestas
 Proc. Consultas
                        distintas.

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos           7
Planificación de transacciones

     El DBA         • Para n transacciones T1, T2, .. Tn, una
                      planificación:
    El SMBD
                       – Representa el orden cronológico en el que se
Manejo de Memoria
                         ejecutan las instrucciones de dichas transacciones
                         en el sistema.
  Restauración
                       – La secuencia debe conservar el orden dentro de
 Concurrencia
 Concurrencia            cada transacción individual.
Diccionario Datos
                    • Una planificación puede ser:
 Proc. Consultas       – Secuencial (o serial)
   Integridad          – Concurrente
   Seguridad               • Serializable
                           • No serializable


     Marzo 2012                  Administración de Base de Datos         8
Planificación de transacciones

     El DBA
                    • Dadas las siguientes transacciones

    El SMBD

Manejo de Memoria


  Restauración

 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos   9
Planificación de transacciones

     El DBA         • Planificaciones secuenciales
    El SMBD

Manejo de Memoria


  Restauración

 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas
                      – Cada transacción se ejecuta completamente
   Integridad
                        antes de la siguiente.
   Seguridad
                      – Para un conjunto de n transacciones hay n!
                        planificaciones secuenciales

     Marzo 2012              Administración de Base de Datos         10
Planificación de transacciones

     El DBA         • Pero se pueden definir un número m>>n!
                      de planificaciones concurrentes
    El SMBD
                      T1               T2
                                                                     Planificaciones
Manejo de Memoria
                      FIND X
                      X = X – 50
  Restauración                         FIND X                        Planificaciones
                                       TEMP = A*0,1                   concurrentes
 Concurrencia
 Concurrencia         UPDATE X
                      FIND Y
Diccionario Datos                      A=A – TEMP
                                       UPDATE A
 Proc. Consultas                       FIND Y
                      Y = Y + 50
   Integridad         UPDATE Y
                                       Y = Y + TEM
   Seguridad                           UPDATE Y
                                               Planificaciones
                                               secuenciales
     Marzo 2012                    Administración de Base de Datos                     11
Planificación de transacciones

     El DBA         • Para que una planificación concurrente
                      sea correcta
    El SMBD
                      – Debe tener el mismo efecto que una
Manejo de Memoria
                        planificación secuencial
  Restauración

 Concurrencia
 Concurrencia
                     Planificación serializable
Diccionario Datos
                      – Es una planificación concurrente, equivalente
 Proc. Consultas
                        a una secuencial
   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos       12
Planificación de transacciones

     El DBA                  Clasificación de Planificaciones
    El SMBD                                                        Planificaciones
Manejo de Memoria                                                  concurrentes

  Restauración

 Concurrencia
 Concurrencia

Diccionario Datos
                                                                    Planificaciones
 Proc. Consultas                                                    serializables
   Integridad

   Seguridad        Planificaciones
                    secuenciales


     Marzo 2012                  Administración de Base de Datos                      13
Niveles de aislamiento

     El DBA         • Determina el tipo de problema que el
                      sistema puede tolerar entre transacciones
    El SMBD

Manejo de Memoria
                       Nivel de        Lectura sucia              Lectura     Actualización
                     aislamiento                                irrepetible     fantasma
  Restauración
                       READ                     Si                   Si            Si
                    UNCOMMITED
 Concurrencia
 Concurrencia
                       READ                    No                    Si            Si
Diccionario Datos    COMMITED

 Proc. Consultas
                     REPEATABLE                No                    No            Si
                        READ
   Integridad       SERIALIZABLE               No                    No            No

   Seguridad




     Marzo 2012                    Administración de Base de Datos                        14
Planificación de transacciones

     El DBA         • ¿Cómo saber si una planificación es
                      serializable?
    El SMBD
                      – Precedencia: Se tiene que una transacción TA
Manejo de Memoria
                        precede a una transacción TB si TB ve un dato
  Restauración          que TA modificó o si TA ve un dato que TB
                        modificará y se denota TA TB.
 Concurrencia
 Concurrencia
                      – Seriabilidad: Proceso de determinar que una
Diccionario Datos       planificación concurrente es equivalente a una
 Proc. Consultas        secuencial, es decir si TA TB o TB TA

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos        15
Planificación de transacciones

     El DBA         • Serialización por conflictos
    El SMBD
                       – Se tienen dos instrucciones Ii e Ij,
                         pertenecientes a las transacciones Ti y Tj
Manejo de Memoria
                         respectivamente (i ≠ j)
  Restauración         – Si Ii e Ij se refieren a distintos elementos
                         de datos no están en conflicto y pueden ir
 Concurrencia
 Concurrencia
                         en cualquier orden
Diccionario Datos
                       – Si Ii e Ij se refieren al mismo elemento,
 Proc. Consultas         entonces el orden es importante y se deben
                         considerar cuatro casos:
   Integridad

   Seguridad




     Marzo 2012                Administración de Base de Datos          16
Planificación de transacciones

     El DBA         • Serialización por conflictos
    El SMBD
                       – Casos
                       a) Ii = FIND (Q), Ij= FIND (Q):
Manejo de Memoria
                          El orden de Ii e Ij no importa puesto que leen el mismo
                          valor de Q.
  Restauración
                       b) Ii= FIND(Q), Ij = UPDATE (Q):
 Concurrencia
 Concurrencia             Si Ii esta antes que Ij, entonces Ti lee un valor que Tj
                          modificará (Ti Tj) en caso contrario Ti lee un valor que Tj
Diccionario Datos         modificó (Tj Ti).

 Proc. Consultas       c) Ij = FIND (Q), Ii = UPDATE (Q):
                          Igual al caso anterior.
   Integridad
                       d) Ii = UPDATE (Q), Ij = UPDATE (Q):
   Seguridad
                          No afecta ni a Ti ni a Tj, sin embargo el valor que obtendrá
                          la siguiente instrucción FIND (Q) si se ve afectado.


     Marzo 2012                  Administración de Base de Datos                    17
Planificación de transacciones

     El DBA         • Serialización por conflictos
    El SMBD

Manejo de Memoria
                             Se dice entonces que dos
                             instrucciones Ii e Ij están en conflicto
  Restauración
                             si son de distintas transacciones,
 Concurrencia
 Concurrencia
                             operan sobre el mismo elemento de
                             datos, y al menos una de ellas
Diccionario Datos            actualiza dicho dato.
 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos           18
Planificación de transacciones

     El DBA         • Grafo de precedencia
    El SMBD
                      – Determina si una planificación es serializable
                        por conflicto
Manejo de Memoria
                      – Cada transacción es un nodo
  Restauración        – Los arcos determinan la precedencia,
                        determinada por los conflictos definidos antes
 Concurrencia
 Concurrencia
                      – Si existe un ciclo, la planificación no es
Diccionario Datos       serializable
 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos            19
Planificación de transacciones

     El DBA         • Algoritmo para hacer el grafo de
                      precedencia
    El SMBD
                      a) Cada vez que Ti ejecute UPDATE(Q) antes de
Manejo de Memoria
                         que Tj ejecute FIND(Q) crear un arco de Ti a
  Restauración           Tj (Ti Tj).
                      b) Cada vez que Ti ejecute UPDATE(Q) después
 Concurrencia
 Concurrencia
                         de que Tj ejecute FIND(Q) crear un arco de Tj
Diccionario Datos        a Ti (Tj Ti).
 Proc. Consultas      c) Cada vez que Ti ejecute UPDATE(Q) antes de
                         que Tj ejecute UPDATE(Q) crear un arco de Ti
   Integridad
                         a Tj, (Ti Tj).
   Seguridad




     Marzo 2012              Administración de Base de Datos        20
Planificación de transacciones

     El DBA         • Ejemplo
                                                                           Y
    El SMBD         T1          T2             T3
                                FIND(Z)                               T1            T2
Manejo de Memoria
                                FIND(Y)                                        X
                                UPDATE(Y)                                                Y, Z
  Restauración                                 FIND(Y)
                                               FIND(Z)
                                                                      Y        T3
 Concurrencia
 Concurrencia       FIND(X)
                    UPDATE(X)
Diccionario Datos                              UPDATE(Y)
                                               UPDATE(Z)
 Proc. Consultas                FIND(X)
                    FIND(Y)
   Integridad       UPDATE(Y)                                       Hay un ciclo -> no es
                                UPDATE(X)                           serializable
   Seguridad




     Marzo 2012                   Administración de Base de Datos                               21
Técnicas de control de
                                                      concurrencia

     El DBA         • Su objetivo es garantizar que la ejecución
                      de un conjunto de transacciones sea
    El SMBD
                      serializable
Manejo de Memoria
                      – Bloqueos
                      – Marcas de tiempo                        Pesimistas
  Restauración

 Concurrencia
                      – Validación                              Optimistas
 Concurrencia

Diccionario Datos
                      – Pesimistas: Se garantiza la seriabilidad antes
 Proc. Consultas        de la ejecución
   Integridad         – Optimistas: Se ejecuta y luego se verifica si la
                        ejecución es serializable
   Seguridad




     Marzo 2012               Administración de Base de Datos                22
Técnicas de control de
                                                      concurrencia

     El DBA         • Bloqueo: técnica que regula el acceso
                      concurrente a objetos compartidos (buffer
    El SMBD
                      de datos)
Manejo de Memoria
                      – Granularidad: pueden aplicarse a diferentes
  Restauración          unidades de dato
                              Base de
 Concurrencia
 Concurrencia                  datos
Diccionario Datos               Tabla
 Proc. Consultas
                              Registro                          Grano mas fino
   Integridad                                                   Mayor concurrencia
                                                                Mayor posibilidades de
   Seguridad                   Campo                            interbloqueo
                                                                Mas costos de manejo
                                                                de concurrencia

     Marzo 2012               Administración de Base de Datos                            23
Técnicas de control de
                                                       concurrencia

     El DBA         • Tipos de Bloqueo
                      – Bloqueo exclusivo (Protocolo: PX)
    El SMBD
                        Memoria principal                Área de trabajo de Ti
Manejo de Memoria


  Restauración                    R                        Ri

 Concurrencia
 Concurrencia
                              B
Diccionario Datos                                                      Ti: XFIND(R)
 Proc. Consultas
                                                      Manejador de
   Integridad                                         concurrencia

   Seguridad
                                                                        Tj, …Tn
                                                                 Cola de espera

     Marzo 2012                Administración de Base de Datos                        24
Técnicas de control de
                                                          concurrencia
                    Transacción 1            Tiempo                Transacción 2
     El DBA
                    XFIND(R)                 1
                    COPY R.F INTO
    El SMBD
                    ATEMP
Manejo de Memoria
                                             2                     XFIND R
  Restauración      UPDATE R:                3                     wait
                    REPLACE R.F
  Concurrencia      BY ATEMP + 1
                    XRELEASE R               4
Diccionario Datos
                                             5                     (reinicia XFIND R)
 Proc. Consultas                                                   COPY R.F INTO
                                                                   BTEMP
   Integridad
                                             6                     UPDATE R:
   Seguridad                                                       REPLACE R.F
                                                                   BY 2*BTEMP
                                             7                     XRELEASE R
     Marzo 2012                  Administración de Base de Datos                        25
Técnicas de control de
                                                       concurrencia

     El DBA         • Tipos de Bloqueo
                      – Bloqueo Compartido (Protocolo: PS)
    El SMBD
                        Memoria principal                Área de trabajo de Ti
Manejo de Memoria

                                                                               Área de
  Restauración                    R                        Ri                  trabajo de Ts

 Concurrencia
 Concurrencia
                              B
Diccionario Datos                                                    Ti: SFIND(R)
 Proc. Consultas                                                       Ts: SFIND(R)
                                                    Manejador de
   Integridad                                       concurrencia

   Seguridad
                                                                     Tj, …Tn
                                                             Cola de espera Bloqueo Exclusivo
     Marzo 2012                Administración de Base de Datos                                 26
Técnicas de control de
                                                            concurrencia
                    ACC1 = 40                ACC2 = 50                ACC3 = 30
     El DBA         Transacción 1            Tiempo                   Transacción 2
                    SFIND ACC1               1
    El SMBD         SUM = SUM + ACC1 (40)

Manejo de Memoria   SFIND ACC2               2
                    SUM = SUM + ACC2 (90)

  Restauración
                                             3

  Concurrencia                               4                        XFIND ACC3
                                                                      UPD ACC3:
Diccionario Datos                                                     ACC3 = ACC3 – 10
                    SFIND ACC3               5
 Proc. Consultas    WAIT
                                             6                        RELEASE ACC3
   Integridad                                                         SFIND ACC1
                                             7                        COMMIT
   Seguridad

                    SUM = SUM + ACC3         8
                    (110)

     Marzo 2012                     Administración de Base de Datos                      27
Técnicas de control de
                                                            concurrencia
                    ACC1 = 40                 ACC2 = 50               ACC3 = 30
     El DBA         Transacción 1             Tiempo                  Transacción 2
                    SFIND ACC1                1
    El SMBD         SUM = SUM + ACC1

Manejo de Memoria   SFIND ACC2                2
                    SUM = SUM + ACC2

  Restauración
                                              3                       SFIND ACC3
                                                                      XUPDXACC3:
  Concurrencia                                                        ACC3 = ACC3 – 10
                                              4                       SFIND ACC1
Diccionario Datos

 Proc. Consultas                              5                       XUPD ACC1
                                                                      wait
   Integridad       SFIND ACC3                6                       wait
                    Wait
   Seguridad        wait                      7                       wait

                                              8
                                               Interbloqueo

     Marzo 2012                     Administración de Base de Datos                      28
Técnicas de control de
                                                       concurrencia

     El DBA         • Tipos de Bloqueo
                      – Bloqueo de Actualización (Protocolo: PU)
    El SMBD
                        Memoria principal                Área de trabajo de Ti
Manejo de Memoria

                                                                               Área de
  Restauración                    R                        Ri                  trabajo de Ts

 Concurrencia
 Concurrencia
                              B
Diccionario Datos                                                    Ti: UFIND(R)
 Proc. Consultas                                                       Ts: SFIND(R)
                                                    Manejador de
   Integridad                                       concurrencia
                               To, …Tq
   Seguridad
                                                                     Tj, …Tn
                       Cola de espera Bloqueo
                       de actualización                      Cola de espera Bloqueo Exclusivo

     Marzo 2012                Administración de Base de Datos                                 29
Técnicas de control de
                                                            concurrencia

     El DBA         Transacción 1              Tiempo                 Transacción 2

    El SMBD         SFIND R                    1
                    COPY R.F INTO A.TEMP
Manejo de Memoria
                                               2                      SFIND R
                                                                      COPY R.F INTO B.TEMP
  Restauración
                    XUPD R                     3
  Concurrencia      Wait

                    Wait                       4                      XUPD R
Diccionario Datos   wait                                              wait
                    wait                                              wait
 Proc. Consultas
                    wait                       5                      wait
   Integridad
                    wait                       6                      wait
   Seguridad        wait

                                               Interbloqueo

     Marzo 2012                     Administración de Base de Datos                          30
Técnicas de control de
                                                            concurrencia

     El DBA         Transacción 1              Tiempo                 Transacción 2

    El SMBD         UFIND R                    1
                    COPY R.F INTO A.TEMP
Manejo de Memoria
                                               2                      UFIND R
                                                                      Wait
  Restauración
                    UPDX R                     3                      Wait
  Concurrencia      REPLACE R.F
                    By ATEMP +1
Diccionario Datos   COMMIT                     4                      REINICIA
                                                                      Copy R.F into B.temp
                                                                      UPD R:
 Proc. Consultas
                                                                      Replace R.F
                                                                      By B.temp + 1
   Integridad
                                               5                      COMMIT

   Seguridad                                   6




     Marzo 2012                     Administración de Base de Datos                          31
Técnicas de control de
                                                      concurrencia

     El DBA         • Conversión de bloqueos:
                      – Una transacción que ya posee un bloqueo de un
    El SMBD
                        tipo puede, bajo ciertas condiciones, convertir
Manejo de Memoria       su bloqueo a otro
                                                               Promoción: Convertir un
  Restauración                                              bloqueo a otro mas restrictivo

 Concurrencia
 Concurrencia               SFIND (R)
Diccionario Datos
                                                          XUPDATE (R)
 Proc. Consultas
                            UFIND (R)
   Integridad

   Seguridad              Cualquier transacción que intente actualizar un registro
                           debe promover el bloqueo a exclusivo (si no lo tiene)


     Marzo 2012               Administración de Base de Datos                                32
Técnicas de control de
                                                     concurrencia

     El DBA         • Matriz de compatibilidad de bloqueos
    El SMBD
                     T1T2      X                    S         U
Manejo de Memoria
                     X          No                   No        No
  Restauración       S          No                   Si        Si

 Concurrencia
 Concurrencia
                     U          No                   Si        No

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012              Administración de Base de Datos        33
Técnicas de control de
                                                    concurrencia
                                  T1                  T2
     El DBA         • Ejemplo     SFIND X
                                  X = X – 50
    El SMBD                                           SFIND X
                                                      TEMP = X*0,1
Manejo de Memoria                 XUPDATE X

                                                      X=X – TEMP
  Restauración
                                                      XUPDATE X
                                                      (wait)
 Concurrencia
 Concurrencia                     RELEASE(X)                         ¿Qué pasa si T1 hace
                                  SFIND Y                                 Rollback
Diccionario Datos                                     XUPDATE X
                                                      RELEASE X
 Proc. Consultas
                                  Y = Y + 50
   Integridad                     XUPDATE Y
                                  RELEASE Y                              Dependencia no
   Seguridad                                          SFIND Y              confirmada
                                                      Y=Y+2
                                                      XUPDATE Y
                                                      (wait)
     Marzo 2012             Administración de Base de Datos                            34
Técnicas de control de
                                                      concurrencia

     El DBA         • Protocolo de bloqueo a dos fases
                      – En los protocolos anteriores, si se libera un
    El SMBD
                        dato que es actualizado, antes de que la
Manejo de Memoria       transacción termine, un ROLLBACK puede
                        producir una “dependencia no confirmada”
  Restauración
                      – Teorema: Si todas las transacciones siguen las
 Concurrencia
 Concurrencia           siguientes reglas cumplen el bloqueo a 2 fases
Diccionario Datos
                         a) Antes de operar sobre cualquier elemento de
                            datos la transacción debe adquirir un bloqueo
 Proc. Consultas            sobre este dato.
                         b) Después de liberar un bloqueo, la transacción no
   Integridad
                            adquiere ningún otro bloqueo.
   Seguridad




     Marzo 2012               Administración de Base de Datos             35
Técnicas de control de
                                                       concurrencia

     El DBA         • Protocolo de bloqueo a dos fases
                      – Fase de crecimiento: la transacción adquiere
    El SMBD
                        los bloqueos
Manejo de Memoria
                      – Fase de decrecimiento: la transacción libera los
                        bloqueos
  Restauración                                                         Orden de
                                                                       precedencia
 Concurrencia
 Concurrencia          Fase        T1 T2 T3                      Fase
                       crecimiento                               decrecimiento
Diccionario Datos

 Proc. Consultas                          T. activa
   Integridad

   Seguridad
                                     t1 t2 t3


     Marzo 2012                Administración de Base de Datos                       36
Técnicas de control de
                                                      concurrencia

     El DBA         • Protocolos
                      – PXC: Protocolo Exclusivo con bloqueo a 2 fases
    El SMBD
                      – PSC: Protocolo Compartico con bloqueo a 2
Manejo de Memoria
                        fases
  Restauración        – PUC: Protocolo de actualización con bloqueo a
                        2 fases
 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos        37
Manejo de Interbloqueos

     El DBA         • Interbloqueo: Un sistema está en un
                      estado de interbloqueo si para cada
    El SMBD
                      transacción Ti en un conjunto de dos o
Manejo de Memoria
                      más      transacciones, espera  por   la
  Restauración        liberación de un recurso que esta
 Concurrencia
 Concurrencia
                      bloqueado por alguna otra transacción Tj
                      (i  j).
Diccionario Datos

 Proc. Consultas
                    • Los bloqueos pueden ser
   Integridad
                      – prevenidos o
   Seguridad          – detectados.


     Marzo 2012              Administración de Base de Datos   38
Prevención de Interbloqueos

     El DBA         • Planificación de transacciones
    El SMBD
                    • Rechazo de requerimientos
Manejo de Memoria
                    • Retroceso de la transacción (rollback)
                      – Con marcas de tiempo
  Restauración
                      – Sin marcas de tiempo
 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012              Administración de Base de Datos   39
Prevención de Interbloqueos

     El DBA         • Planificación de transacciones:
                      – Se asegura que dos transacciones no serán
    El SMBD
                        ejecutadas concurrentemente si sus
Manejo de Memoria       requerimientos de datos están en conflicto.
  Restauración
                      – Exige que cada transacción bloquee todos sus
                        elementos de datos en un paso (de manera
 Concurrencia
 Concurrencia           atómica), antes de su ejecución. Ésto conlleva
                        a dos inconvenientes principales:
Diccionario Datos
                         • Es difícil predecir, antes de que comience la
 Proc. Consultas           transacción, cuáles elementos de datos deben
                           bloquearse.
   Integridad
                         • La utilización de elementos puede ser muy baja,
   Seguridad               ya que muchos pueden estar bloqueados pero sin
                           usar.

     Marzo 2012               Administración de Base de Datos           40
Prevención de Interbloqueos

     El DBA         • Rechazo de Requerimientos
                      – Implica rechazar cualquier requerimiento de
    El SMBD
                        bloqueo,    si   al   ser   aceptado      genera
Manejo de Memoria       interbloqueo.
  Restauración
                      – Se implementa un grafo de espera, si un
                        requerimiento     produce    un    ciclo,   este
 Concurrencia
 Concurrencia           requerimiento se descarta y se retrocede la
                        transacción que lo genero total o parcialmente.
Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos         41
Prevención de Interbloqueos

     El DBA         • Retroceso de Transacciones
                        Esta técnica requiere que alguna de las
    El SMBD
                        transacciones implicadas en un bloqueo deba
Manejo de Memoria       hacer ROLLBACK y ser reiniciada. Existen dos
                        enfoques:
  Restauración
                      – Con marcas de tiempo
 Concurrencia
 Concurrencia         – Sin marcas de tiempo
Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos          42
Prevencion de Interbloqueos

     El DBA         • Retroceso con marcas de tiempo
    El SMBD
                      – Una marca de tiempo es un identificador
                        unívoco creado por el SMDB para identificar el
Manejo de Memoria
                        tiempo de inicio relativo de una transacción.
  Restauración        – Pueden generarse
 Concurrencia
 Concurrencia             • Utilizando el valor del reloj del sistema en el
                            momento de iniciarse la transacción o
Diccionario Datos
                          • Incrementando un contador lógico cada vez que
 Proc. Consultas            se inicia una nueva transacción
   Integridad        Siendo MT(Ti) la marca de tiempo de la transacción Ti y MT(Tj)
                                la Marca de tiempo de la transacción Tj
   Seguridad         Si MT(Ti) < MT(Tj) entonces Tj es más joven que Ti



     Marzo 2012                 Administración de Base de Datos                  43
Prevencion de Interbloqueos

     El DBA         • Retroceso con marcas de tiempo
                      – Si Ti requiere un elemento de datos que esta
    El SMBD
                        bloqueado por Tj de manera conflictiva
Manejo de Memoria        1. Wait-Die
                            Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti
  Restauración
                               Ti espera.
 Concurrencia               Sino
 Concurrencia
                               Ti Muere (RollBack) y se reinicia posteriormente
Diccionario Datos        2. Wound-Wait
 Proc. Consultas
                            Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti
                               Ti hiere a Tj #Ti obliga a Tj a abortar.
   Integridad                  Tj muere (RollBack) y se reinicia posteriormente
                            Sino
   Seguridad
                               Ti espera


     Marzo 2012               Administración de Base de Datos                 44
Prevención de Interbloqueos

     El DBA         • Retroceso sin marcas de tiempo
                      – No Espera
    El SMBD
                         • Si una transacción no puede lograr un bloqueo,
Manejo de Memoria          no espera y se reinicia tras un lapso de tiempo,
                           sin comprobar si ha sucedido un interbloqueo.
  Restauración
                      – Espera Cautelosa
 Concurrencia
 Concurrencia            • Surge debido a la presencia de ROLLBACKS
                           innecesarios en el esquema de No Espera
Diccionario Datos
                         • Si Ti solicita un recurso X bloqueado por Tj
 Proc. Consultas             Si Tj está en espera entonces Ti retrocede sino Ti
                               espera
   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos                     45
Detección de Interbloqueos

     El DBA         • La forma más sencilla de implementarse
                      es mediante un grafo de espera.
    El SMBD
                      – Se crea un nodo por transacción activa.
Manejo de Memoria
                      – Se crea un arco dirigido, por cada transacción
  Restauración          Ti, que espera por un elemento que mantiene
                        bloqueado de manera conflictiva Tj (Ti -> Tj)
 Concurrencia
 Concurrencia
                      – Cuando Tj libera los bloqueos los arcos hacia él
Diccionario Datos       desaparecen (Si se usa el 2PL)
 Proc. Consultas      – Existe un interbloqueo si y sólo si existe un
                        ciclo en el grafo.
   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos         46
Detección de Interbloqueos

     El DBA         Recuperando el interbloqueo:
    El SMBD
                    • Selección de una víctima:
                      – Se debe tomar en cuenta:
Manejo de Memoria
                         • Si existe más de un ciclo, en cuántos ciclos está
  Restauración             involucrada la transacción
                      – Cuántos elementos de datos ha actualizado la
 Concurrencia
 Concurrencia
                        transacción.
Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012               Administración de Base de Datos              47
Próxima clase

     El DBA         • Ejercicio
    El SMBD
                    • Control de Concurrencia con marcas de
Manejo de Memoria
                      tiempo
                    • Control de Concurrencia Optimista
  Restauración
                      (Validación)
 Concurrencia
 Concurrencia

Diccionario Datos

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012              Administración de Base de Datos       48
Ejemplo
                      TIEMPO        T1                 T2                  T3                T4
     El DBA                    1 FIND X
                               2                       FIND Y

    El SMBD                    3 FIND Z
                               4                                           FIND A
                               5                                           FIND B
Manejo de Memoria
                               6                                                             FIND X
                               7 UPDATE X: X + 20
  Restauración                 8 UPDATE Z: Z - 20
                               9                       UPDATE Y: 80                          FIND Z
 Concurrencia
 Concurrencia                  10                                          UPDATE A: A + B
                               11                      FIND X

Diccionario Datos              12 COMMIT
                               13                                          FIND Y
                               14                                                            UPDATE Z: Z + 70
 Proc. Consultas
                               15                      UPDATE X: X -30
                               16                      COMMIT
   Integridad                  17                                                            FIND Y
                               18                                          ROLLBACK
   Seguridad                   19                                                            UPDATE Y: Y + Z

                    Ejecute la20
                               planificación usando el                                       FIND A

                    protocolo 22
                              PUC
                              21                                                             UPDATE A: A - 10
                                                                                             COMMIT

     Marzo 2012                          Administración de Base de Datos                                        49
Ejemplo
                    TIEMPO        T1                T2                 T3                 T4
     El DBA                  1 UFIND X
                             2                      UFIND Y

    El SMBD                  3 UFIND Z
                             4                                         UFIND A
                             5                                         UFIND B
Manejo de Memoria
                             6                                                            UFIND X
                             7 XUPDATE X: X + 20                                          wait
  Restauración               8 XUPDATE Z: Z - 20                                          wait
                             9                      XUPDATE Y: 80
                             10                                        XUPDATE A: A + B   wait
 Concurrencia
 Concurrencia                                       UFIND X
                             11                     wait                                  wait
Diccionario Datos            12 COMMIT                                                    wait
                                                                       UFIND Y
                             13                                        wait
 Proc. Consultas                                                                          UFIND Z
                             14                                                           XUPDATE Z: Z + 70
                             15                     XUPDATE X: X -30
   Integridad
                             16                     COMMIT
                             17                                                           UFIND Y
   Seguridad                 18                                        ROLLBACK
                             19                                                           XUPDATE Y: Y + Z
                             20                                                           UFIND A
                             21                                                           XUPDATE A: A - 10
                             22                                                           COMMIT
     Marzo 2012                        Administración de Base de Datos                                        50
Ejercicio

     El DBA
                    •   Dada la ejecución de las siguientes transacciones A y B,
    El SMBD
                        ejecute la planificación usando:
                        1. Utilizando el protocolo PXC
Manejo de Memoria       2. Utilizando el protocolo PSC
                        3. PUC si se actualiza y PSC si
  Restauración
                           no se va a actualizar
 Concurrencia
 Concurrencia
                        4. En el caso 2 use el algoritmo
Diccionario Datos
                           Wait-die para la prevención de
 Proc. Consultas           Interbloqueo MT(A)<MT(B) y
                           2 unidades de tiempo para
   Integridad              recomenzar la transacción
   Seguridad




     Marzo 2012                   Administración de Base de Datos             51
Técnicas de control de
                                                      concurrencia

     El DBA         • Ordenamiento por marcas de tiempo
                      Timestamp Ordering (TO)
    El SMBD
                      – Asegura que todas las operaciones UPDATE y
Manejo de Memoria
                        FIND conflictivas se ejecuten en el orden de las
  Restauración
                        marcas temporales.
                      – UMAX(X): Denota la mayor marca temporal de
 Concurrencia
 Concurrencia
                        todas las transacciones que ejecutaron
Diccionario Datos       Update(X) con éxito
 Proc. Consultas      – FMAX(X): Denota la mayor marca temporal de
                        todas las transacciones que ejecutaron FIND(X)
   Integridad
                        con éxito
   Seguridad




     Marzo 2012               Administración de Base de Datos         52
Técnicas de control de
                                                      concurrencia

     El DBA         • Sean Ti y Tj dos transacciones (i ≠ j) y X
                      un recurso compartido
    El SMBD
                        Si Ti ejecuta LEER(X)
Manejo de Memoria
                        a) Si MT(Ti) < UMAX(X)
  Restauración            entonces Ti necesita leer un valor de X ya
                          sobreescrito, por lo que se rechaza la operación y
 Concurrencia
 Concurrencia             Ti retrocede.
Diccionario Datos
                        b) Si MT(Ti)  UMAX(X)
 Proc. Consultas
                           entonces se ejecuta la operación FIND(X) y se
   Integridad              actualiza FMAX(X) al valor máximo entre FMAX(X)
                           y MT(Ti)
   Seguridad




     Marzo 2012               Administración de Base de Datos              53
Técnicas de control de
                                                  concurrencia
                    Si Ti ejecuta UPDATE(X)
     El DBA
                    a) Si MT(Ti) < FMAX(X)
    El SMBD
                       entonces el valor X de Ti se necesita previamente
Manejo de Memoria      y el sistema asume que dicho valor no se puede
                       producir nunca. Se rechaza la transacción y se
  Restauración         retrocede.

 Concurrencia
 Concurrencia
                    b) Si MT(Ti) < UMAX(X)
Diccionario Datos     entonces se intenta escribir un valor de X
 Proc. Consultas
                      obsoleto. Se rechaza la transacción y se
                      retrocede.
   Integridad

   Seguridad        c) En cualquier otro caso se ejecuta UPDATE y
                       MT(Ti) se asigna a UMAX(X)


     Marzo 2012           Administración de Base de Datos             54
Técnicas de control de
                                         concurrencia optimistas

     El DBA         • En las técnicas pesimistas se realiza una
                      comprobación antes de que se ejecute
    El SMBD
                      cualquier operación. Esta comprobación
Manejo de Memoria
                      conlleva un costo de procesamiento
  Restauración      • En las técnicas optimistas no se realiza
 Concurrencia
 Concurrencia         comprobación alguna mientras la
Diccionario Datos
                      transacción se ejecuta.
 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012              Administración de Base de Datos      55
Técnicas de control de
                                             concurrencia optimista

     El DBA         • Cada transacción Ti se ejecuta en tres
                      fases:
    El SMBD
                      – Fase de lectura: Se leen los elementos de datos
Manejo de Memoria       necesarios y se escriben las actualizaciones en las
                        variables locales
  Restauración
                      – Fase de validación: Ti comprueba si alguna de las
 Concurrencia
 Concurrencia           actualizaciones viola la seriabilidad, para comprobar
                        si no existe violación en la serialización.
Diccionario Datos
                      – Fase de escritura: Si la validación es exitosa,
 Proc. Consultas        entonces las actualizaciones efectivas se aplican a la
                        base de datos y la transacción se compromete, de lo
   Integridad
                        contrario se descartan.
   Seguridad




     Marzo 2012                Administración de Base de Datos                56
Técnicas de control de
                                             concurrencia optimista

     El DBA         • La validación se realiza mediante las
                      siguientes marcas de tiempo
    El SMBD
                       – Inicio(Ti)
Manejo de Memoria
                       – Validación(Ti)
  Restauración         – Fin(Ti)
 Concurrencia
 Concurrencia
                    • Se determina el orden secuencial a través de la
Diccionario Datos
                      técnica de ordenación por marcas temporales
 Proc. Consultas      entonces toda planificación que se produzca debe
                      ser equivalente a una planificación secuencial
   Integridad

   Seguridad




     Marzo 2012                Administración de Base de Datos       57
Técnicas de control optimista

     El DBA         • Para dos transacciones Ti y Tj, se conoce
                      que validacion(Ti) < validacion(Tj),
    El SMBD
                      entonces:
Manejo de Memoria
                      – Fin(Ti) < Fin(Tj)
  Restauración        – El conjunto de todos los elementos de datos
                        que escribe Ti tiene intersección vacía con el
 Concurrencia
 Concurrencia
                        conjunto de elementos de datos que lee Tj,
Diccionario Datos     – Inicio(Tj) < Fin(Ti) < Validación(Tj).
 Proc. Consultas          ¿Qué implica ésto?
   Integridad
                          Que las transacciones no se superpongan y
                        se mantenga la secuencialidad.
   Seguridad




     Marzo 2012               Administración de Base de Datos            58
Técnicas de control de
                                         concurrencia optimista

     El DBA         Conclusiones
                    – La idea del control optimista es hacer
    El SMBD
                      todas       las         comprobaciones
Manejo de Memoria     inmediatamente antes de la escritura.
  Restauración
                    –     Por lo tanto la ejecución de una
 Concurrencia
 Concurrencia           transacción tiene un costo mínimo hasta
Diccionario Datos       alcanzar la fase de validación, donde la
                        mayoría serán validas si son en su
 Proc. Consultas
                        mayoría de solo lectura, en caso contrario
   Integridad           esta técnica no funciona bien.
   Seguridad




     Marzo 2012            Administración de Base de Datos           59
Ejercicio

     El DBA
                    •   Dada la ejecución de las siguientes transacciones A y B,
    El SMBD
                        ejecute la planificación usando:

Manejo de Memoria       1. Utilizando la técnica de
                           control de concurrencia con
  Restauración             marcas de tiempo con
                           MT(A)<MT(B)
  Concurrencia          2. Espere dos unidades de
                           tiempo antes de recomenzar
Diccionario Datos          la transacción

 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012                   Administración de Base de Datos             60
Ejercicio

     El DBA
                    Dato   Fmax          Umax
    El SMBD
                    X
Manejo de Memoria

                    Y
  Restauración


  Concurrencia      Z
Diccionario Datos
                    W
 Proc. Consultas

   Integridad

   Seguridad




     Marzo 2012             Administración de Base de Datos           61

Más contenido relacionado

Más de Escuela de Computación UCV

Concurrencia 2 ABD UCV
Concurrencia 2 ABD UCVConcurrencia 2 ABD UCV
Concurrencia 2 ABD UCV
Escuela de Computación UCV
 
Concurrencia 1 ABD UCV
Concurrencia 1 ABD UCVConcurrencia 1 ABD UCV
Concurrencia 1 ABD UCV
Escuela de Computación UCV
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
Escuela de Computación UCV
 
Seguridad datos i
Seguridad datos i Seguridad datos i
Seguridad datos i
Escuela de Computación UCV
 
Seguridad datos ii vii
Seguridad datos ii viiSeguridad datos ii vii
Seguridad datos ii vii
Escuela de Computación UCV
 
Abd manejo memoria III
Abd manejo memoria IIIAbd manejo memoria III
Abd manejo memoria III
Escuela de Computación UCV
 
Abd manejo memoria II
Abd manejo memoria IIAbd manejo memoria II
Abd manejo memoria II
Escuela de Computación UCV
 
Abd manejo memoria Parte I
Abd manejo memoria Parte IAbd manejo memoria Parte I
Abd manejo memoria Parte I
Escuela de Computación UCV
 
Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
Escuela de Computación UCV
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
Escuela de Computación UCV
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
Escuela de Computación UCV
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
Escuela de Computación UCV
 
Bd no sql tecnicas
Bd no sql tecnicasBd no sql tecnicas
Bd no sql tecnicas
Escuela de Computación UCV
 
Bd no sqlcb2
Bd no sqlcb2Bd no sqlcb2
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
Escuela de Computación UCV
 
Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)
Escuela de Computación UCV
 
Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)
Escuela de Computación UCV
 
Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)
Escuela de Computación UCV
 
Abd tema0y1
Abd tema0y1Abd tema0y1
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
Escuela de Computación UCV
 

Más de Escuela de Computación UCV (20)

Concurrencia 2 ABD UCV
Concurrencia 2 ABD UCVConcurrencia 2 ABD UCV
Concurrencia 2 ABD UCV
 
Concurrencia 1 ABD UCV
Concurrencia 1 ABD UCVConcurrencia 1 ABD UCV
Concurrencia 1 ABD UCV
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
Seguridad datos i
Seguridad datos i Seguridad datos i
Seguridad datos i
 
Seguridad datos ii vii
Seguridad datos ii viiSeguridad datos ii vii
Seguridad datos ii vii
 
Abd manejo memoria III
Abd manejo memoria IIIAbd manejo memoria III
Abd manejo memoria III
 
Abd manejo memoria II
Abd manejo memoria IIAbd manejo memoria II
Abd manejo memoria II
 
Abd manejo memoria Parte I
Abd manejo memoria Parte IAbd manejo memoria Parte I
Abd manejo memoria Parte I
 
Bd no sq ldocumento
Bd no sq ldocumentoBd no sq ldocumento
Bd no sq ldocumento
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
 
Bd no sql tecnicas
Bd no sql tecnicasBd no sql tecnicas
Bd no sql tecnicas
 
Bd no sqlcb2
Bd no sqlcb2Bd no sqlcb2
Bd no sqlcb2
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)
 
Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)
 
Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)
 
Abd tema0y1
Abd tema0y1Abd tema0y1
Abd tema0y1
 
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
 

Abd tema3

  • 1. Administración de Base de Datos Concurrencia Prof Mercy Ospina Torres mercy.ospinat@gmail.com Prof Renny A. Hernandez renny.hernandez@ciens.ucv.ve
  • 2. Contenido El DBA • Qué es la concurrencia en BD El SMBD • Problemas que ocasiona la concurrencia Manejo de Memoria • Planificación de transacciones – Planificación serial o secuencial Restauración – Precedencia Concurrencia Concurrencia – Seriabilidad Diccionario Datos – Serialización por conflicto Proc. Consultas • Técnicas de control de concurrencia – Pesimistas Integridad • Bloqueos Seguridad • Marcas de tiempo – Optimistas Marzo 2012 Administración de Base de Datos 2
  • 3. Concurrencia ¿Qué es la concurrencia en BD? El DBA • Coordinación de la ejecución simultanea de El SMBD transacciones en un SBD que soporta Manejo de Memoria multiprocesamiento Restauración Ventajas Concurrencia Concurrencia • Aumenta la productividad por la mejor utilización de los recursos y produce que el tiempo de espera Diccionario Datos de los usuarios se reduzca en promedio. Proc. Consultas • Una transacción individual producirá un estado Integridad correcto en la BD si se ejecuta de forma aislada Seguridad Marzo 2012 Administración de Base de Datos 3
  • 4. Concurrencia Problemas El DBA • Cuando se ejecutan transacciones de manera El SMBD concurrente puede haber interferencias entre ellas Manejo de Memoria que produzcan resultados no correctos, debido a que no se cumple completamente la propiedad de Restauración aislamiento Concurrencia Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 4
  • 5. Problemas • Actualización perdida El DBA T1 Tiempo T2 X El SMBD 1. Ambas T1 FIND X 100 transacciones Manejo de Memoria FIND X T2 100 guardan su copia Restauración T3 X = X+100 100 de X 2. T1 y T2 realizan X=X-10 T4 100 modificaciones Concurrencia Concurrencia T5 UPDATE X 200 200 diferentes en X Diccionario Datos UPDATE X T6 90 90 3. T2 actualiza su T7 COMMIT 90 valor en Proc. Consultas COMMIT T8 90 memoria principal Integridad 4. T2 actualiza y se pierde la Seguridad actualizacion de T1 Marzo 2012 Administración de Base de Datos 5
  • 6. Problemas • Dependencia no confirmada El DBA T1 Tiempo T2 X El SMBD 1. T2 actualiza X a T1 FIND X 100 200 Manejo de Memoria T2 X = X+100 100 2. T1 lee el nuevo Restauración T3 UPDATE X 200 100 valor de X 3. T2 hace rollback FIND X T4 200 por lo que la Concurrencia Concurrencia X=X-10 T5 200 actualización se Diccionario Datos T6 ROLLBACK 100 90 deshace UPDATE X T7 90 190 4. T1 continua Proc. Consultas COMMIT T8 190 trabajando con el valor Integridad actualizado por lo que el nuevo Seguridad valor de X es incorrecto Marzo 2012 Administración de Base de Datos 6
  • 7. Problemas El DBA • Otros problemas – Suma incorrecta: Si una transacción está El SMBD calculando una suma sobre varios registros , Manejo de Memoria mientras otras transacciones están actualizando algunos de estos registros , la función suma puede Restauración tomar algunos valores antes de que sean actualizados y otros después de ser actualizados . Concurrencia Concurrencia – Lectura irrepetible: En dos lecturas sucesivas de Diccionario Datos un elemento, la transacción Ti recibe respuestas Proc. Consultas distintas. Integridad Seguridad Marzo 2012 Administración de Base de Datos 7
  • 8. Planificación de transacciones El DBA • Para n transacciones T1, T2, .. Tn, una planificación: El SMBD – Representa el orden cronológico en el que se Manejo de Memoria ejecutan las instrucciones de dichas transacciones en el sistema. Restauración – La secuencia debe conservar el orden dentro de Concurrencia Concurrencia cada transacción individual. Diccionario Datos • Una planificación puede ser: Proc. Consultas – Secuencial (o serial) Integridad – Concurrente Seguridad • Serializable • No serializable Marzo 2012 Administración de Base de Datos 8
  • 9. Planificación de transacciones El DBA • Dadas las siguientes transacciones El SMBD Manejo de Memoria Restauración Concurrencia Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 9
  • 10. Planificación de transacciones El DBA • Planificaciones secuenciales El SMBD Manejo de Memoria Restauración Concurrencia Concurrencia Diccionario Datos Proc. Consultas – Cada transacción se ejecuta completamente Integridad antes de la siguiente. Seguridad – Para un conjunto de n transacciones hay n! planificaciones secuenciales Marzo 2012 Administración de Base de Datos 10
  • 11. Planificación de transacciones El DBA • Pero se pueden definir un número m>>n! de planificaciones concurrentes El SMBD T1 T2 Planificaciones Manejo de Memoria FIND X X = X – 50 Restauración FIND X Planificaciones TEMP = A*0,1 concurrentes Concurrencia Concurrencia UPDATE X FIND Y Diccionario Datos A=A – TEMP UPDATE A Proc. Consultas FIND Y Y = Y + 50 Integridad UPDATE Y Y = Y + TEM Seguridad UPDATE Y Planificaciones secuenciales Marzo 2012 Administración de Base de Datos 11
  • 12. Planificación de transacciones El DBA • Para que una planificación concurrente sea correcta El SMBD – Debe tener el mismo efecto que una Manejo de Memoria planificación secuencial Restauración Concurrencia Concurrencia Planificación serializable Diccionario Datos – Es una planificación concurrente, equivalente Proc. Consultas a una secuencial Integridad Seguridad Marzo 2012 Administración de Base de Datos 12
  • 13. Planificación de transacciones El DBA Clasificación de Planificaciones El SMBD Planificaciones Manejo de Memoria concurrentes Restauración Concurrencia Concurrencia Diccionario Datos Planificaciones Proc. Consultas serializables Integridad Seguridad Planificaciones secuenciales Marzo 2012 Administración de Base de Datos 13
  • 14. Niveles de aislamiento El DBA • Determina el tipo de problema que el sistema puede tolerar entre transacciones El SMBD Manejo de Memoria Nivel de Lectura sucia Lectura Actualización aislamiento irrepetible fantasma Restauración READ Si Si Si UNCOMMITED Concurrencia Concurrencia READ No Si Si Diccionario Datos COMMITED Proc. Consultas REPEATABLE No No Si READ Integridad SERIALIZABLE No No No Seguridad Marzo 2012 Administración de Base de Datos 14
  • 15. Planificación de transacciones El DBA • ¿Cómo saber si una planificación es serializable? El SMBD – Precedencia: Se tiene que una transacción TA Manejo de Memoria precede a una transacción TB si TB ve un dato Restauración que TA modificó o si TA ve un dato que TB modificará y se denota TA TB. Concurrencia Concurrencia – Seriabilidad: Proceso de determinar que una Diccionario Datos planificación concurrente es equivalente a una Proc. Consultas secuencial, es decir si TA TB o TB TA Integridad Seguridad Marzo 2012 Administración de Base de Datos 15
  • 16. Planificación de transacciones El DBA • Serialización por conflictos El SMBD – Se tienen dos instrucciones Ii e Ij, pertenecientes a las transacciones Ti y Tj Manejo de Memoria respectivamente (i ≠ j) Restauración – Si Ii e Ij se refieren a distintos elementos de datos no están en conflicto y pueden ir Concurrencia Concurrencia en cualquier orden Diccionario Datos – Si Ii e Ij se refieren al mismo elemento, Proc. Consultas entonces el orden es importante y se deben considerar cuatro casos: Integridad Seguridad Marzo 2012 Administración de Base de Datos 16
  • 17. Planificación de transacciones El DBA • Serialización por conflictos El SMBD – Casos a) Ii = FIND (Q), Ij= FIND (Q): Manejo de Memoria El orden de Ii e Ij no importa puesto que leen el mismo valor de Q. Restauración b) Ii= FIND(Q), Ij = UPDATE (Q): Concurrencia Concurrencia Si Ii esta antes que Ij, entonces Ti lee un valor que Tj modificará (Ti Tj) en caso contrario Ti lee un valor que Tj Diccionario Datos modificó (Tj Ti). Proc. Consultas c) Ij = FIND (Q), Ii = UPDATE (Q): Igual al caso anterior. Integridad d) Ii = UPDATE (Q), Ij = UPDATE (Q): Seguridad No afecta ni a Ti ni a Tj, sin embargo el valor que obtendrá la siguiente instrucción FIND (Q) si se ve afectado. Marzo 2012 Administración de Base de Datos 17
  • 18. Planificación de transacciones El DBA • Serialización por conflictos El SMBD Manejo de Memoria Se dice entonces que dos instrucciones Ii e Ij están en conflicto Restauración si son de distintas transacciones, Concurrencia Concurrencia operan sobre el mismo elemento de datos, y al menos una de ellas Diccionario Datos actualiza dicho dato. Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 18
  • 19. Planificación de transacciones El DBA • Grafo de precedencia El SMBD – Determina si una planificación es serializable por conflicto Manejo de Memoria – Cada transacción es un nodo Restauración – Los arcos determinan la precedencia, determinada por los conflictos definidos antes Concurrencia Concurrencia – Si existe un ciclo, la planificación no es Diccionario Datos serializable Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 19
  • 20. Planificación de transacciones El DBA • Algoritmo para hacer el grafo de precedencia El SMBD a) Cada vez que Ti ejecute UPDATE(Q) antes de Manejo de Memoria que Tj ejecute FIND(Q) crear un arco de Ti a Restauración Tj (Ti Tj). b) Cada vez que Ti ejecute UPDATE(Q) después Concurrencia Concurrencia de que Tj ejecute FIND(Q) crear un arco de Tj Diccionario Datos a Ti (Tj Ti). Proc. Consultas c) Cada vez que Ti ejecute UPDATE(Q) antes de que Tj ejecute UPDATE(Q) crear un arco de Ti Integridad a Tj, (Ti Tj). Seguridad Marzo 2012 Administración de Base de Datos 20
  • 21. Planificación de transacciones El DBA • Ejemplo Y El SMBD T1 T2 T3 FIND(Z) T1 T2 Manejo de Memoria FIND(Y) X UPDATE(Y) Y, Z Restauración FIND(Y) FIND(Z) Y T3 Concurrencia Concurrencia FIND(X) UPDATE(X) Diccionario Datos UPDATE(Y) UPDATE(Z) Proc. Consultas FIND(X) FIND(Y) Integridad UPDATE(Y) Hay un ciclo -> no es UPDATE(X) serializable Seguridad Marzo 2012 Administración de Base de Datos 21
  • 22. Técnicas de control de concurrencia El DBA • Su objetivo es garantizar que la ejecución de un conjunto de transacciones sea El SMBD serializable Manejo de Memoria – Bloqueos – Marcas de tiempo Pesimistas Restauración Concurrencia – Validación Optimistas Concurrencia Diccionario Datos – Pesimistas: Se garantiza la seriabilidad antes Proc. Consultas de la ejecución Integridad – Optimistas: Se ejecuta y luego se verifica si la ejecución es serializable Seguridad Marzo 2012 Administración de Base de Datos 22
  • 23. Técnicas de control de concurrencia El DBA • Bloqueo: técnica que regula el acceso concurrente a objetos compartidos (buffer El SMBD de datos) Manejo de Memoria – Granularidad: pueden aplicarse a diferentes Restauración unidades de dato Base de Concurrencia Concurrencia datos Diccionario Datos Tabla Proc. Consultas Registro Grano mas fino Integridad Mayor concurrencia Mayor posibilidades de Seguridad Campo interbloqueo Mas costos de manejo de concurrencia Marzo 2012 Administración de Base de Datos 23
  • 24. Técnicas de control de concurrencia El DBA • Tipos de Bloqueo – Bloqueo exclusivo (Protocolo: PX) El SMBD Memoria principal Área de trabajo de Ti Manejo de Memoria Restauración R Ri Concurrencia Concurrencia B Diccionario Datos Ti: XFIND(R) Proc. Consultas Manejador de Integridad concurrencia Seguridad Tj, …Tn Cola de espera Marzo 2012 Administración de Base de Datos 24
  • 25. Técnicas de control de concurrencia Transacción 1 Tiempo Transacción 2 El DBA XFIND(R) 1 COPY R.F INTO El SMBD ATEMP Manejo de Memoria 2 XFIND R Restauración UPDATE R: 3 wait REPLACE R.F Concurrencia BY ATEMP + 1 XRELEASE R 4 Diccionario Datos 5 (reinicia XFIND R) Proc. Consultas COPY R.F INTO BTEMP Integridad 6 UPDATE R: Seguridad REPLACE R.F BY 2*BTEMP 7 XRELEASE R Marzo 2012 Administración de Base de Datos 25
  • 26. Técnicas de control de concurrencia El DBA • Tipos de Bloqueo – Bloqueo Compartido (Protocolo: PS) El SMBD Memoria principal Área de trabajo de Ti Manejo de Memoria Área de Restauración R Ri trabajo de Ts Concurrencia Concurrencia B Diccionario Datos Ti: SFIND(R) Proc. Consultas Ts: SFIND(R) Manejador de Integridad concurrencia Seguridad Tj, …Tn Cola de espera Bloqueo Exclusivo Marzo 2012 Administración de Base de Datos 26
  • 27. Técnicas de control de concurrencia ACC1 = 40 ACC2 = 50 ACC3 = 30 El DBA Transacción 1 Tiempo Transacción 2 SFIND ACC1 1 El SMBD SUM = SUM + ACC1 (40) Manejo de Memoria SFIND ACC2 2 SUM = SUM + ACC2 (90) Restauración 3 Concurrencia 4 XFIND ACC3 UPD ACC3: Diccionario Datos ACC3 = ACC3 – 10 SFIND ACC3 5 Proc. Consultas WAIT 6 RELEASE ACC3 Integridad SFIND ACC1 7 COMMIT Seguridad SUM = SUM + ACC3 8 (110) Marzo 2012 Administración de Base de Datos 27
  • 28. Técnicas de control de concurrencia ACC1 = 40 ACC2 = 50 ACC3 = 30 El DBA Transacción 1 Tiempo Transacción 2 SFIND ACC1 1 El SMBD SUM = SUM + ACC1 Manejo de Memoria SFIND ACC2 2 SUM = SUM + ACC2 Restauración 3 SFIND ACC3 XUPDXACC3: Concurrencia ACC3 = ACC3 – 10 4 SFIND ACC1 Diccionario Datos Proc. Consultas 5 XUPD ACC1 wait Integridad SFIND ACC3 6 wait Wait Seguridad wait 7 wait 8 Interbloqueo Marzo 2012 Administración de Base de Datos 28
  • 29. Técnicas de control de concurrencia El DBA • Tipos de Bloqueo – Bloqueo de Actualización (Protocolo: PU) El SMBD Memoria principal Área de trabajo de Ti Manejo de Memoria Área de Restauración R Ri trabajo de Ts Concurrencia Concurrencia B Diccionario Datos Ti: UFIND(R) Proc. Consultas Ts: SFIND(R) Manejador de Integridad concurrencia To, …Tq Seguridad Tj, …Tn Cola de espera Bloqueo de actualización Cola de espera Bloqueo Exclusivo Marzo 2012 Administración de Base de Datos 29
  • 30. Técnicas de control de concurrencia El DBA Transacción 1 Tiempo Transacción 2 El SMBD SFIND R 1 COPY R.F INTO A.TEMP Manejo de Memoria 2 SFIND R COPY R.F INTO B.TEMP Restauración XUPD R 3 Concurrencia Wait Wait 4 XUPD R Diccionario Datos wait wait wait wait Proc. Consultas wait 5 wait Integridad wait 6 wait Seguridad wait Interbloqueo Marzo 2012 Administración de Base de Datos 30
  • 31. Técnicas de control de concurrencia El DBA Transacción 1 Tiempo Transacción 2 El SMBD UFIND R 1 COPY R.F INTO A.TEMP Manejo de Memoria 2 UFIND R Wait Restauración UPDX R 3 Wait Concurrencia REPLACE R.F By ATEMP +1 Diccionario Datos COMMIT 4 REINICIA Copy R.F into B.temp UPD R: Proc. Consultas Replace R.F By B.temp + 1 Integridad 5 COMMIT Seguridad 6 Marzo 2012 Administración de Base de Datos 31
  • 32. Técnicas de control de concurrencia El DBA • Conversión de bloqueos: – Una transacción que ya posee un bloqueo de un El SMBD tipo puede, bajo ciertas condiciones, convertir Manejo de Memoria su bloqueo a otro Promoción: Convertir un Restauración bloqueo a otro mas restrictivo Concurrencia Concurrencia SFIND (R) Diccionario Datos XUPDATE (R) Proc. Consultas UFIND (R) Integridad Seguridad Cualquier transacción que intente actualizar un registro debe promover el bloqueo a exclusivo (si no lo tiene) Marzo 2012 Administración de Base de Datos 32
  • 33. Técnicas de control de concurrencia El DBA • Matriz de compatibilidad de bloqueos El SMBD T1T2 X S U Manejo de Memoria X No No No Restauración S No Si Si Concurrencia Concurrencia U No Si No Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 33
  • 34. Técnicas de control de concurrencia T1 T2 El DBA • Ejemplo SFIND X X = X – 50 El SMBD SFIND X TEMP = X*0,1 Manejo de Memoria XUPDATE X X=X – TEMP Restauración XUPDATE X (wait) Concurrencia Concurrencia RELEASE(X) ¿Qué pasa si T1 hace SFIND Y Rollback Diccionario Datos XUPDATE X RELEASE X Proc. Consultas Y = Y + 50 Integridad XUPDATE Y RELEASE Y Dependencia no Seguridad SFIND Y confirmada Y=Y+2 XUPDATE Y (wait) Marzo 2012 Administración de Base de Datos 34
  • 35. Técnicas de control de concurrencia El DBA • Protocolo de bloqueo a dos fases – En los protocolos anteriores, si se libera un El SMBD dato que es actualizado, antes de que la Manejo de Memoria transacción termine, un ROLLBACK puede producir una “dependencia no confirmada” Restauración – Teorema: Si todas las transacciones siguen las Concurrencia Concurrencia siguientes reglas cumplen el bloqueo a 2 fases Diccionario Datos a) Antes de operar sobre cualquier elemento de datos la transacción debe adquirir un bloqueo Proc. Consultas sobre este dato. b) Después de liberar un bloqueo, la transacción no Integridad adquiere ningún otro bloqueo. Seguridad Marzo 2012 Administración de Base de Datos 35
  • 36. Técnicas de control de concurrencia El DBA • Protocolo de bloqueo a dos fases – Fase de crecimiento: la transacción adquiere El SMBD los bloqueos Manejo de Memoria – Fase de decrecimiento: la transacción libera los bloqueos Restauración Orden de precedencia Concurrencia Concurrencia Fase T1 T2 T3 Fase crecimiento decrecimiento Diccionario Datos Proc. Consultas T. activa Integridad Seguridad t1 t2 t3 Marzo 2012 Administración de Base de Datos 36
  • 37. Técnicas de control de concurrencia El DBA • Protocolos – PXC: Protocolo Exclusivo con bloqueo a 2 fases El SMBD – PSC: Protocolo Compartico con bloqueo a 2 Manejo de Memoria fases Restauración – PUC: Protocolo de actualización con bloqueo a 2 fases Concurrencia Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 37
  • 38. Manejo de Interbloqueos El DBA • Interbloqueo: Un sistema está en un estado de interbloqueo si para cada El SMBD transacción Ti en un conjunto de dos o Manejo de Memoria más transacciones, espera por la Restauración liberación de un recurso que esta Concurrencia Concurrencia bloqueado por alguna otra transacción Tj (i  j). Diccionario Datos Proc. Consultas • Los bloqueos pueden ser Integridad – prevenidos o Seguridad – detectados. Marzo 2012 Administración de Base de Datos 38
  • 39. Prevención de Interbloqueos El DBA • Planificación de transacciones El SMBD • Rechazo de requerimientos Manejo de Memoria • Retroceso de la transacción (rollback) – Con marcas de tiempo Restauración – Sin marcas de tiempo Concurrencia Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 39
  • 40. Prevención de Interbloqueos El DBA • Planificación de transacciones: – Se asegura que dos transacciones no serán El SMBD ejecutadas concurrentemente si sus Manejo de Memoria requerimientos de datos están en conflicto. Restauración – Exige que cada transacción bloquee todos sus elementos de datos en un paso (de manera Concurrencia Concurrencia atómica), antes de su ejecución. Ésto conlleva a dos inconvenientes principales: Diccionario Datos • Es difícil predecir, antes de que comience la Proc. Consultas transacción, cuáles elementos de datos deben bloquearse. Integridad • La utilización de elementos puede ser muy baja, Seguridad ya que muchos pueden estar bloqueados pero sin usar. Marzo 2012 Administración de Base de Datos 40
  • 41. Prevención de Interbloqueos El DBA • Rechazo de Requerimientos – Implica rechazar cualquier requerimiento de El SMBD bloqueo, si al ser aceptado genera Manejo de Memoria interbloqueo. Restauración – Se implementa un grafo de espera, si un requerimiento produce un ciclo, este Concurrencia Concurrencia requerimiento se descarta y se retrocede la transacción que lo genero total o parcialmente. Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 41
  • 42. Prevención de Interbloqueos El DBA • Retroceso de Transacciones Esta técnica requiere que alguna de las El SMBD transacciones implicadas en un bloqueo deba Manejo de Memoria hacer ROLLBACK y ser reiniciada. Existen dos enfoques: Restauración – Con marcas de tiempo Concurrencia Concurrencia – Sin marcas de tiempo Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 42
  • 43. Prevencion de Interbloqueos El DBA • Retroceso con marcas de tiempo El SMBD – Una marca de tiempo es un identificador unívoco creado por el SMDB para identificar el Manejo de Memoria tiempo de inicio relativo de una transacción. Restauración – Pueden generarse Concurrencia Concurrencia • Utilizando el valor del reloj del sistema en el momento de iniciarse la transacción o Diccionario Datos • Incrementando un contador lógico cada vez que Proc. Consultas se inicia una nueva transacción Integridad Siendo MT(Ti) la marca de tiempo de la transacción Ti y MT(Tj) la Marca de tiempo de la transacción Tj Seguridad Si MT(Ti) < MT(Tj) entonces Tj es más joven que Ti Marzo 2012 Administración de Base de Datos 43
  • 44. Prevencion de Interbloqueos El DBA • Retroceso con marcas de tiempo – Si Ti requiere un elemento de datos que esta El SMBD bloqueado por Tj de manera conflictiva Manejo de Memoria 1. Wait-Die Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti Restauración Ti espera. Concurrencia Sino Concurrencia Ti Muere (RollBack) y se reinicia posteriormente Diccionario Datos 2. Wound-Wait Proc. Consultas Si M(Ti) < MT(Tj) entonces #Tj es más joven que Ti Ti hiere a Tj #Ti obliga a Tj a abortar. Integridad Tj muere (RollBack) y se reinicia posteriormente Sino Seguridad Ti espera Marzo 2012 Administración de Base de Datos 44
  • 45. Prevención de Interbloqueos El DBA • Retroceso sin marcas de tiempo – No Espera El SMBD • Si una transacción no puede lograr un bloqueo, Manejo de Memoria no espera y se reinicia tras un lapso de tiempo, sin comprobar si ha sucedido un interbloqueo. Restauración – Espera Cautelosa Concurrencia Concurrencia • Surge debido a la presencia de ROLLBACKS innecesarios en el esquema de No Espera Diccionario Datos • Si Ti solicita un recurso X bloqueado por Tj Proc. Consultas Si Tj está en espera entonces Ti retrocede sino Ti espera Integridad Seguridad Marzo 2012 Administración de Base de Datos 45
  • 46. Detección de Interbloqueos El DBA • La forma más sencilla de implementarse es mediante un grafo de espera. El SMBD – Se crea un nodo por transacción activa. Manejo de Memoria – Se crea un arco dirigido, por cada transacción Restauración Ti, que espera por un elemento que mantiene bloqueado de manera conflictiva Tj (Ti -> Tj) Concurrencia Concurrencia – Cuando Tj libera los bloqueos los arcos hacia él Diccionario Datos desaparecen (Si se usa el 2PL) Proc. Consultas – Existe un interbloqueo si y sólo si existe un ciclo en el grafo. Integridad Seguridad Marzo 2012 Administración de Base de Datos 46
  • 47. Detección de Interbloqueos El DBA Recuperando el interbloqueo: El SMBD • Selección de una víctima: – Se debe tomar en cuenta: Manejo de Memoria • Si existe más de un ciclo, en cuántos ciclos está Restauración involucrada la transacción – Cuántos elementos de datos ha actualizado la Concurrencia Concurrencia transacción. Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 47
  • 48. Próxima clase El DBA • Ejercicio El SMBD • Control de Concurrencia con marcas de Manejo de Memoria tiempo • Control de Concurrencia Optimista Restauración (Validación) Concurrencia Concurrencia Diccionario Datos Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 48
  • 49. Ejemplo TIEMPO T1 T2 T3 T4 El DBA 1 FIND X 2 FIND Y El SMBD 3 FIND Z 4 FIND A 5 FIND B Manejo de Memoria 6 FIND X 7 UPDATE X: X + 20 Restauración 8 UPDATE Z: Z - 20 9 UPDATE Y: 80 FIND Z Concurrencia Concurrencia 10 UPDATE A: A + B 11 FIND X Diccionario Datos 12 COMMIT 13 FIND Y 14 UPDATE Z: Z + 70 Proc. Consultas 15 UPDATE X: X -30 16 COMMIT Integridad 17 FIND Y 18 ROLLBACK Seguridad 19 UPDATE Y: Y + Z Ejecute la20 planificación usando el FIND A protocolo 22 PUC 21 UPDATE A: A - 10 COMMIT Marzo 2012 Administración de Base de Datos 49
  • 50. Ejemplo TIEMPO T1 T2 T3 T4 El DBA 1 UFIND X 2 UFIND Y El SMBD 3 UFIND Z 4 UFIND A 5 UFIND B Manejo de Memoria 6 UFIND X 7 XUPDATE X: X + 20 wait Restauración 8 XUPDATE Z: Z - 20 wait 9 XUPDATE Y: 80 10 XUPDATE A: A + B wait Concurrencia Concurrencia UFIND X 11 wait wait Diccionario Datos 12 COMMIT wait UFIND Y 13 wait Proc. Consultas UFIND Z 14 XUPDATE Z: Z + 70 15 XUPDATE X: X -30 Integridad 16 COMMIT 17 UFIND Y Seguridad 18 ROLLBACK 19 XUPDATE Y: Y + Z 20 UFIND A 21 XUPDATE A: A - 10 22 COMMIT Marzo 2012 Administración de Base de Datos 50
  • 51. Ejercicio El DBA • Dada la ejecución de las siguientes transacciones A y B, El SMBD ejecute la planificación usando: 1. Utilizando el protocolo PXC Manejo de Memoria 2. Utilizando el protocolo PSC 3. PUC si se actualiza y PSC si Restauración no se va a actualizar Concurrencia Concurrencia 4. En el caso 2 use el algoritmo Diccionario Datos Wait-die para la prevención de Proc. Consultas Interbloqueo MT(A)<MT(B) y 2 unidades de tiempo para Integridad recomenzar la transacción Seguridad Marzo 2012 Administración de Base de Datos 51
  • 52. Técnicas de control de concurrencia El DBA • Ordenamiento por marcas de tiempo Timestamp Ordering (TO) El SMBD – Asegura que todas las operaciones UPDATE y Manejo de Memoria FIND conflictivas se ejecuten en el orden de las Restauración marcas temporales. – UMAX(X): Denota la mayor marca temporal de Concurrencia Concurrencia todas las transacciones que ejecutaron Diccionario Datos Update(X) con éxito Proc. Consultas – FMAX(X): Denota la mayor marca temporal de todas las transacciones que ejecutaron FIND(X) Integridad con éxito Seguridad Marzo 2012 Administración de Base de Datos 52
  • 53. Técnicas de control de concurrencia El DBA • Sean Ti y Tj dos transacciones (i ≠ j) y X un recurso compartido El SMBD Si Ti ejecuta LEER(X) Manejo de Memoria a) Si MT(Ti) < UMAX(X) Restauración entonces Ti necesita leer un valor de X ya sobreescrito, por lo que se rechaza la operación y Concurrencia Concurrencia Ti retrocede. Diccionario Datos b) Si MT(Ti)  UMAX(X) Proc. Consultas entonces se ejecuta la operación FIND(X) y se Integridad actualiza FMAX(X) al valor máximo entre FMAX(X) y MT(Ti) Seguridad Marzo 2012 Administración de Base de Datos 53
  • 54. Técnicas de control de concurrencia Si Ti ejecuta UPDATE(X) El DBA a) Si MT(Ti) < FMAX(X) El SMBD entonces el valor X de Ti se necesita previamente Manejo de Memoria y el sistema asume que dicho valor no se puede producir nunca. Se rechaza la transacción y se Restauración retrocede. Concurrencia Concurrencia b) Si MT(Ti) < UMAX(X) Diccionario Datos entonces se intenta escribir un valor de X Proc. Consultas obsoleto. Se rechaza la transacción y se retrocede. Integridad Seguridad c) En cualquier otro caso se ejecuta UPDATE y MT(Ti) se asigna a UMAX(X) Marzo 2012 Administración de Base de Datos 54
  • 55. Técnicas de control de concurrencia optimistas El DBA • En las técnicas pesimistas se realiza una comprobación antes de que se ejecute El SMBD cualquier operación. Esta comprobación Manejo de Memoria conlleva un costo de procesamiento Restauración • En las técnicas optimistas no se realiza Concurrencia Concurrencia comprobación alguna mientras la Diccionario Datos transacción se ejecuta. Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 55
  • 56. Técnicas de control de concurrencia optimista El DBA • Cada transacción Ti se ejecuta en tres fases: El SMBD – Fase de lectura: Se leen los elementos de datos Manejo de Memoria necesarios y se escriben las actualizaciones en las variables locales Restauración – Fase de validación: Ti comprueba si alguna de las Concurrencia Concurrencia actualizaciones viola la seriabilidad, para comprobar si no existe violación en la serialización. Diccionario Datos – Fase de escritura: Si la validación es exitosa, Proc. Consultas entonces las actualizaciones efectivas se aplican a la base de datos y la transacción se compromete, de lo Integridad contrario se descartan. Seguridad Marzo 2012 Administración de Base de Datos 56
  • 57. Técnicas de control de concurrencia optimista El DBA • La validación se realiza mediante las siguientes marcas de tiempo El SMBD – Inicio(Ti) Manejo de Memoria – Validación(Ti) Restauración – Fin(Ti) Concurrencia Concurrencia • Se determina el orden secuencial a través de la Diccionario Datos técnica de ordenación por marcas temporales Proc. Consultas entonces toda planificación que se produzca debe ser equivalente a una planificación secuencial Integridad Seguridad Marzo 2012 Administración de Base de Datos 57
  • 58. Técnicas de control optimista El DBA • Para dos transacciones Ti y Tj, se conoce que validacion(Ti) < validacion(Tj), El SMBD entonces: Manejo de Memoria – Fin(Ti) < Fin(Tj) Restauración – El conjunto de todos los elementos de datos que escribe Ti tiene intersección vacía con el Concurrencia Concurrencia conjunto de elementos de datos que lee Tj, Diccionario Datos – Inicio(Tj) < Fin(Ti) < Validación(Tj). Proc. Consultas ¿Qué implica ésto? Integridad Que las transacciones no se superpongan y se mantenga la secuencialidad. Seguridad Marzo 2012 Administración de Base de Datos 58
  • 59. Técnicas de control de concurrencia optimista El DBA Conclusiones – La idea del control optimista es hacer El SMBD todas las comprobaciones Manejo de Memoria inmediatamente antes de la escritura. Restauración – Por lo tanto la ejecución de una Concurrencia Concurrencia transacción tiene un costo mínimo hasta Diccionario Datos alcanzar la fase de validación, donde la mayoría serán validas si son en su Proc. Consultas mayoría de solo lectura, en caso contrario Integridad esta técnica no funciona bien. Seguridad Marzo 2012 Administración de Base de Datos 59
  • 60. Ejercicio El DBA • Dada la ejecución de las siguientes transacciones A y B, El SMBD ejecute la planificación usando: Manejo de Memoria 1. Utilizando la técnica de control de concurrencia con Restauración marcas de tiempo con MT(A)<MT(B) Concurrencia 2. Espere dos unidades de tiempo antes de recomenzar Diccionario Datos la transacción Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 60
  • 61. Ejercicio El DBA Dato Fmax Umax El SMBD X Manejo de Memoria Y Restauración Concurrencia Z Diccionario Datos W Proc. Consultas Integridad Seguridad Marzo 2012 Administración de Base de Datos 61