• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Concurrencia
 

Concurrencia

on

  • 2,477 views

 

Statistics

Views

Total Views
2,477
Views on SlideShare
2,005
Embed Views
472

Actions

Likes
0
Downloads
61
Comments
0

2 Embeds 472

http://basesdedatosseccion3.wordpress.com 471
http://basesdedatosseccion3.wordpress.com. 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Concurrencia Concurrencia Presentation Transcript

    • TÉCNICAS DE CONTROL DE CONCURRENCIA
    • EJECUCIONES CONCURRENTES Se permite ejecutar concurrentemente varias transacciones en el sistema. Las ventajas son: • aumento de la utilización del procesador y del disco, conduciendo a mejorar la productividad de la transacción una transacción puede estar utilizando la CPU, mientras otras está leyendo desde o escribiendo a disco • reducción del tiempo medio de respuesta de la transacciones: las transacciones pequeñas no tienen necesidad de esperar detrás de las grandes. Esquemas de control de concurrencia - mecanismos para conseguir aislamiento, es decir, para controlar la interacción entre la transacciones concurrentes a la hora de impedir que destruyan la consistencia de la base de datos Principales situaciones en las que una transacción (correcta individualmente) puede producir un resultado incorrecto al interferir con otra transacción. -Problema de la modificación perdida -Problema de la actualización temporal -Problema del resumen incorrecto.
    • Ejecuciones concurrentes (cont.) El problema de la modificación temporal. También se conoce como problema de la lectura sucia. Esta situación ocurre cuando una transacción modifica un ítem y a continuación la transacción falla por alguna razón. El ítem modificado es accedido por otra transacción antes de que el cambio sea desecho y el ítem vuelva a su valor original-La actualización perdida– T1 y T2 que acceden a los mismos datos, tienen susoperaciones intercaladas de modo que hacenincorrecto el valor de algún dato
    • Problemas potenciales provocados por la concurrencia • El resumen incorrectoTécnicas de control de concurrenc ia • Otra transacción T3 calcula una función agregada de resumen sobre varios registros (suma las plazas reservadas para todos los vuelos), mientras otras, como T1, actualizan dichos registros: puede que T3 considere unos registros antes de ser actualizados y otros después T1 T3 suma:=0; leer_elemento(A); suma:= suma+A; … leer_elemento(X); … X:= X-N; … T3 lee X después de escribir_elemento(X); restar N, pero lee Y antes leer_elemento(X); suma:= suma+X; de sumar N, así que el leer_elemento(Y); resultado es un resumen suma:= suma+Y; incorrecto (discrepancia … leer_elemento(Y); … de N) Y:=Y+N; … escribir_elemento(Y);
    • PLANIFICACIONES• Planificaciones – secuencias que indican el orden cronológico en el que se ejecutan las instrucciones de las transacciones concurrentes • una planificación para un conjunto de transacciones debe constar de todas las instrucciones de estas transacciones • debe preservar el orden en el que aparecen las instrucciones en cada transacción individual.
    • SERIABILIDAD DE LOS PLANESSuposición básica – Cada transacción preserva la consistencia de la base de datos.Así, la ejecución secuencial de un conjunto de transacciones preserva la consistencia de la base de datos.Una (posiblemente concurrente) planificación es serializable si es equivalente a una planificación secuencial. Diferentes formas de equivalencia de planificaciones dan lugar a los conceptos de: 1 Equivalencia en cuanto a conflictos 2 Equivalencia en cuanto a vistas
    • SERIABILIDAD EN CUANTO A CONFLICTOS (CONT.) • La planificación siguiente se puede transformar en la planificación en serie, una planificación en serie donde T2 sigue a T1, mediante conjuntos de intercambios de instrucciones no conflictivas. Por lo tanto, la planificación es serializable en cuanto a conflictos.Dos operaciones de un plan P están en conflicto si– pertenecen a diferentes transacciones,– tienen acceso al mismo elemento X,– y al menos una de ellas esESCRIBIR_ELEMENTO(X)
    • EL ALGORITMO SIGUIENTE VERIFICA LA SERIALIZABILIDAD DE UN PLAN STécnicas de control de concurrenc ia • (1) Para cada transacción Ti participante en el plan S crear un nodo etiquetado Ti en el grafo; • (2) Para cada caso en S donde Tj ejecuta un Leer_ítem(X) después de que Ti ejecuta un Escribir_ítem(X) crear un arco (Ti → Tj) en el grafo; • (3) Para cada caso en S donde Tj ejecuta un Escribir_ítem(X) después de que Ti ejecuta un Leer_ítem(X) crear un arco (Ti → Tj) en el grafo; • (4) Para cada caso en S donde Tj ejecuta un Escribir_ítem(X) después de que Ti ejecuta un Escribir_ítem(X) crear un arco (Ti → Tj) en el grafo; • (5) El plan S es serializable si y solo si el grafo de precedencias no tiene ciclos;
    • Si hay un ciclo en el grafo, P no es seriable por conflictos
    • T1Lee(x)Esc(x)Lee(y)Esc(y)T2Lee(z)Lee(y)Esc(y)Lee(x)Esc(x)T3Lee(y)Lee(z)Esc(y)Lee(z)
    • SERIABILIDAD EN CUANTO A CONFLICTOS• La seriabilidad en cuanto a T1 T2 conflictos es demasiado Leer (A) estricta• Hay planificaciones no A=A-50 serializables respecto a Escribir (A) conflictos y que no producen Leer (B) problemas de consistencia B=B-10 Escribir (B) Leer (B) B=B+50 Escribir (B) Leer (A) A=A+10 Escribir (A)
    • CONTROL DE CONCURRENCIA OPTIMISTASe trabaja con la presunción de que los conflictos entre los usuarios son improbables (aunque no imposibles)y se permite a las transacciones ejecutarse sin necesidad de bloquear recursos.Pesimista:Se bloquean los recursos cuando se requiera acceder a ellos durante todo el tiempo que dure la transacción.
    • BLOQUEOS BINARIOS• Un bloqueo binario puede tener dos estados (o valores): bloqueado (valor=1) y no bloqueado ó• desbloqueado (valor=0). Un bloqueo diferente se asocia a cada ítem X de la BD. Si el ítem X• está bloqueado, dicho ítem no puede ser accedido por operaciones de la BD. Si está• desbloqueado, entonces puede ser accedido. El valor del bloqueo del ítem X lo representaremos• por Lock(X).
    • BLOQUEAR ELEMENTO
    • DESBLOQUEAR ELEMENTO
    • UTILIZANDO EL BLOQUEO BINARIO, CADA TRANSACCIÓN DEBE OBEDECER LAS SIGUIENTES REGLAS:• 1. Una transacción T debe realizar una operación Bloquear_ítem(X) antes que un Leer_Ítem(X) o Escribir_ítem(X).• 2. Una transacción T debe realizar una operación Desbloquear_ítem(X) después de que todos los Leer_ítem(X) y Escribir_ítem(X) en T se han completado.• 3. Una transacción T no realizará un Bloquear_ítem(X) si ya posee el bloqueo de X.• 4. Una transacción T no realizará un Desbloquear_ítem(X) salvo que posea el bloquea de• X.
    • BLOQUEOS DE MODO MÚLTIPLE• El bloqueo binario es muy restrictivo, ya que sería mejor permitir que varias transacciones puedan acceder al mismo ítem X si todas ellas lo requieren sólo con propósitos de lectura.• SI una transacción pretende escribir un ítem X, entonces debería ser accedido de forma exclusiva.• Para poder hacer esto, se utilizará un bloqueo de modo múltiple. En este caso hay tres operaciones de bloqueo diferentes:• Bloquear_para_lectura(X), Bloquear_para_escritura(X) y• Desbloquear_ítem(X).• Un bloqueo asociado con el ítem X, Lock(X), tendrá tres estados posibles: bloqueado para lectura, bloqueado para escritura, ó desbloqueado.
    • Bloqueos Bloqueo Exclusivo o de EscrituraTransacciones Base de datos Transacción A Tupla Bloqueo Exclusivo Transacción B DB Si la transacción A pone un bloqueo exclusivo (X) sobre una tupla, entonces se rechazará una petición de cualquier otra transacción B para un bloqueo de cualquier tipo sobre la tupia
    • Bloqueos Bloqueo Compartido o de Lectura Transacciones Base de datos Tupla Transacción A Bloqueo Compartido Transacción B Transacción C DB Bloqueo ExclusivoSi la transacción A pone un bloqueo compartido (S) sobre la tupla entonces:Se rechazará una petición de cualquier otra transacción B para un bloqueo Exclusivo sobre la tupla.Se otorgará una petición de cualquier otra transacción B para un bloqueo S sobre la tupla (esto es, ahora también B tendrá un bloqueo S sobre la tupla
    • BLOQUEO MORTAL• El bloqueo mortal (deadlock) o interbloqueo se produce cuando un par de transacciones están• cada una esperando a que la otra libere un ítem.
    • PROBLEMAS DE LOS PROTOCOLOS BASADOS EN BLOQUEOS  En la mayoría de los protocolos de bloqueo se puede producir un interbloqueo potencial. En general, los interbloqueos son un mal necesario y manejable.  También es posible que se produzca la inanición si el gestor de control de concurrencia se ha diseñado defectuosamente. Por ejemplo: • Puede que una transacción esté esperando un bloqueo exclusivo sobre un elemento determinado mientras que una secuencia de transacciones diferentes solicitan y obtienen la autorización de bloqueo compartido sobre el mismo elemento. • La misma transacción retrocede repetidamente debido a los interbloqueos.  El gestor de control de concurrencia se puede diseñar para impedir que se produzca la inanición.
    • EL PROTOCOLO DE BLOQUEO DE DOS FASES Éste es un protocolo que asegura planificaciones secuenciables en cuanto a conflictos. Fase 1: Fase de crecimiento • las transacciones pueden conseguir bloqueos • las transacciones no pueden liberar bloqueos Fase 2: Fase de decrecimiento • las transacciones pueden liberar bloqueos • las transacciones no pueden conseguir bloqueos El protocolo asegura la secuencialidad. Se puede probar que las transacciones se pueden secuenciar en el orden de sus puntos de bloqueo (es decir, el punto de la planificación en el cual la transacción obtiene su bloqueo final).
    • TRANSACCIONES QUE SIGUEN EL PROTOCOLO B2F
    • EL PROTOCOLO DE BLOQUEO DE DOS FASESEl protocolo de bloqueo de dos fases NO asegura la ausencia de interbloqueos.El retroceso en cascada puede ocurrir en el bloqueo de dos fases. Se pueden evitar por medio de una modificación del protocolo denominado protocolo de bloqueo estricto de dos fases. En él una transacción debe mantener todos sus bloqueos exclusivos hasta que se complete o aborte.El protocolo de bloqueo riguroso de dos fases es incluso más estricto: en él todos los bloqueos se mantienen hasta que se complete o aborte. En este protocolo las transacciones se pueden secuenciar en el orden en que se comprometen.
    • PROTOCOLOS BASADOS EN LAS MARCAS TEMPORALES• Cada transacción genera una marca temporal cuando se introduce en el sistema. Si a la transacción Ti se le ha asignado la marca temporal MT(Ti) y una nueva transacción Tj entra en el sistema, entonces MT(Ti) < MT(Tj).• El protocolo maneja la ejecución concurrente de modo que las marcas temporales de las transacciones determinan el orden de secuencia.• Para asegurar dicho comportamiento, el protocolo mantiene por cada elemento de datos Q dos valores de marca temporal: • marca_temporal-E(Q) denota la mayor marca temporal de todas las transacciones que ejecutan con éxito escribir(Q). • marca_temporal-L(Q) denota la mayor marca temporal de todas las transacciones que ejecutan con éxito leer(Q).
    • PROTOCOLOS BASADOS EN LAS MARCAS TEMPORALES (CONT.) El protocolo de ordenación por marcas temporales asegura que todas las operaciones leer y escribir conflictivas se ejecutan en el orden de las marcas temporales Se asegura la seriabilidad en cuanto a conflictosSupóngase que la transacción Ti ejecuta leer(Q) 1. Si MT(Ti) ≤ marca_temporal-E(Q) entonces Ti necesita leer un valor de Q que ya se ha sobrescrito. Por tanto se rechaza la operación leer y Ti se retrocede.2. Si MT(Ti) ≥ marca_temporal-E(Q) entonces la operación leer se ejecuta, y marca_temporal-L(Q) se fija al máximo de marca_temporal-L(Q) y MT(Ti).
    • PROTOCOLOS BASADOS EN LASMARCAS TEMPORALES (CONT.)• Supóngase que la transacción Ti ejecuta escribir(Q).• Si MT(Ti) < marca_temporal-L(Q) entonces el valor de Q que produce Ti se necesita previamente y el sistema asume que dicho valor no se puede producir nunca. Por tanto, se rechaza la operación escribir y Ti se retrocede.• Si MT(Ti) < marca_temporal-E(Q) entonces Ti está intentando escribir un valor de Q obsoleto. Por tanto, se rechaza la operación escribir y Ti se retrocede.• En otro caso se ejecuta la operación escribir y MT(Ti) se asigna a marca_temporal-E(Q).