E.E. Base de Datos
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

E.E. Base de Datos PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on
  • Presentation posted in: General

E.E. Base de Datos. Prof. Luis A. López Cámara. Equipo No. 2. Aquino Alejandrez Jaime O. Calles Muñoz Yoselin De la Hoz Vargas Yanahi Rosas Morales Anahí Sandoval Tejeda Karen S.

Download Presentation

E.E. Base de Datos

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


E e base de datos

E.E. Base de Datos

Prof. Luis A. López Cámara

Equipo No. 2

Aquino Alejandrez Jaime O.

Calles Muñoz Yoselin

De la Hoz Vargas Yanahi

Rosas Morales Anahí

Sandoval Tejeda Karen S.


T cnicas de control de concurrencia

La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos..

Técnicas del bloqueo..

Bloqueo en dos fases

Interbloqueo

Granularidad

Ordenamiento por marcas de tiempo..

Ordenamiento total / Ordenamiento parcial

Regla de Thomas

Técnicas multiversión

Técnicas de Validación

Técnicas de control de concurrencia


E e base de datos

  • Granularidad de elementos de datos

  • Bloqueo de granularidad múltiple

  • Usos de bloqueo para control de concurrencia en índice

  • Otras cuestiones sobre el control de concurrencias.


T cnicas de bloqueo

Técnicas de bloqueo

  • Las técnicas más empleadas para controlar el acceso concurrente de las transacciones se basan en el concepto de bloquear elementos de datos.

  • Un bloqueo corresponde a una variable asociada al gránulo que describe las operaciones que se pueden realizar sobre él.

  • Dado que dos operaciones de transacciones diferentes sobre el mismo gránulo que no sean permutables pueden provocar violaciones en el orden de serialización, pueden prevenirse las violaciones bloqueando los accesos a dicho gránulo


E e base de datos

  • Matriz binaria de compatibilidad:: Es una matriz binaria que

    describe las operaciones compatibles ( 1 = sí,, 0 = no)..

    C leer escribir

    leer 1 0

    escribir 0 0

  • Se introducen operaciones adicionales en las transacciones:

    • bloquear(g, M): indica al planificador el comienzo de una operación o conjunto de ellas de modo definido por M sobre el gránulo g.

    • desbloquear(g): indica al planificador el final de las operaciones realizadas por la transacción correspondiente.

  • Un modo de operación M es un vector binario que indica las operaciones que una T desea bloquear sobre el gránulo g..

    p.e., si leer o escribir modo M=(1 0) o (0 1) o (1 1)


E e base de datos

  • Una transacción en el esquema del bloqueo deberá:

    • Emitir una operación bloquear(g,M) antes de operar sobre g en el modo M..

    • Emitir una operación desbloquear((g)) después de terminar la operación u operaciones correspondientes..

    • No emitirá una operación bloquear si ya tiene el bloqueo sobre el gránulo (excepto promociones)..

    • No emitirá una operación desbloquear a menos que ya posea el bloqueo correspondiente.

  • El módulo de gestión de bloqueos del SGBD se ocupa de asegurar que se cumpla lo anterior.


E e base de datos

A(g,i)=[a1,a2,..,aj,...,ak]

  • ¿Qué información se necesita mantener en el protocolo del bloqueo?

    • Información sobre las transacciones que bloquean un determinado gránulo: tabla de bloqueo.

  • Las operaciones solicitados para una transacción se almacenan en un vector de bits M (los k valores son las diferentes operaciones posibles, normalmente 2, lee y esc):

Ti

g

aj=1 si Ti tiene bloqueado g para esa operación.

aj=0 si Ti no tiene bloqueado g para esa operación

M=[m1,m2,..,mj,...,mk]


E e base de datos

  • Proposición: los modos de operación solicitados durante una acción de bloquear((g,, M,, Tp)) son compatibles con los modos de operación actualmente bloqueados sí se cumple lo siguiente:

  • ¬( (Ui!=p A(i,g)) * ¬C ) M

  • ¿Qué hacer cuando las operaciones no son compatibles?

  • Se guarda la petición en una colla de espera,, y se bloquea la transacción hasta que el gránulo esté disponible.

  • La inserción en la cola de espera puede seguir diversos criterios

  • Cada gránulo tiene una cola de espera que indica las transacciones que están esperando para utilizarlo y el modo de operación que solicitan.


Bloqueo en dos fases

Bloqueo EN DOS FASES

  • Se llama transacción en dos fases aquella que no

    realiza ningún bloqueo después de haber realizado

    alguna operación de desbloquear. En una

    transacción en dos fases:

  • FASE DE EXPANSIÓN ( o de crecimiento), durante la cual se pueden adquirir nuevos bloqueos sobre elementos pero no se puede liberar ninguno.

  • FASE DE CONTRACCIÓN, durante la cual se pueden liberartodos los bloqueos existentes pero no se pueden adquirirnuevos bloqueos.

  • Proposición: toda planificación compuesta de transacciones en dos fases es serializable.


Bloqueo en dos fases interbloqueo

Bloqueo EN DOS FASES: INTERBLOQUEO


Bloqueo en dos fases interbloqueo1

Bloqueo EN DOS FASES: INTERBLOQUEO

  • El protocolo en dos fases limita la concurrencia pero garantiza que los planes sean serializables.

    • B2F básico: va tomando bloqueos y luego los va liberando.

    • B2F conservador: toma todos los bloqueos al principio y si no se espera (poco práctico).

    • B2F estricto: no libera ningún bloqueo exclusivo hasta después de confirmar o abortar. (asegura planificaciones estrictas)

    • B2F riguroso: no libera ningún bloqueo hasta después de confirmar o abortar.


Ordenamiento de marcas de tiempo

ORDENAMIENTO DE MARCAS DE TIEMPO

  • Se basa en asegurar que el acceso a los gránulos por lastransacciones se realiza en el orden asignado inicialmente(que es el orden de inicio de las transacciones).

  • Si esto no se cumple: se debe abortar una transacción (la que produjo el conflicto) se revierte la transacción y se relanza asignándole otra marca tiempo.

  • Posible codificación:


Ordenamiento de marcas de tiempo1

ORDENAMIENTO DE MARCAS DE TIEMPO

  • Un enfoque para garantizar la seriabilidad de los planessupone usar marcas de tiempo para ordenar la ejecuciónde estas.

  • Una marca de tiempo es un identificador único que el SGBD crea para identificar una transacción.

  • Las marcas de tiempo se asignan en el orden en que las

  • transacciones se introducen en el sistema.

  • Generación de marcas de tiempo:

    • Contador

    • Reloj del sistema

  • La marca de tiempo de gránulo es un valor numéricoasociado con un gránulo que almacena la marca de tiempo de la última transacción que operó sobre elgránulo.


Ordenamiento parcial o total

ORDENAMIENTO parcial o total

  • Se intenta ordenar aquellas operaciones que son conflictivas (y que no son permutables).

  • Se definen dos marcas de tiempo para un gránulo:

    • Marca de tiempo de lectura ( MT lec(g) ):corresponde a la mayor (la más alta) marca de tiempo de las transacciones que han leído el granulo.

    • Marca de tiempo de escritura (( MT_esc(g)):corresponde a la mayor (la más alta) marca de tiempo de las transacciones que han escrito en el granulo.

  • Este algoritmo comprueba si las operaciones en conflicto respetan el orden asignado a las transacciones. Se realizan comprobaciones diferentes para las operaciones de lectura y escritura.


Regla de thomas

REGLA DE THOMAS

  • Regla de escritura de Thomas: constituye una mejora del algoritmo anterior en la escritura. Si una transacción pretende escribir en un gránulo con una MT_esc> MT de la transacción, se puede ignorar dicha escritura (siempre que ninguna transacción con marca posterior haya leído el granulo).


Tecnicas de control de concurrencia multiversion

TECNICAS DE CONTROL DE CONCURRENCIA MULTIVERSION.

  • Este algoritmo consiste en ir guardando varias versiones del mismodato (gránulo): se conservan los valores antiguos de los gránulos que se han actualizado.

  • Lectura:Cuando una Transacción necesita leer algún gránulo, se elige una versión adecuada para mantener la seriabilidad de la planificación, si es posible.

  • Escritura:Cuando una Transacción escribe un gránulo, escribe una nueva versión de ese gránulo, conservándose además la versión anterior.

  • Desventaja: requiere más almacenamiento que los anteriores.

  • Muchas veces estas versiones se aprovechan para la recuperación.


Tecnicas de control de concurrencia multiversion1

TECNICAS DE CONTROL DE CONCURRENCIA MULTIVERSION.

CODIFICACION


Tecnicas de validacion para el control de concurrencia

TECNICAS DE VALIDACION PARA EL CONTROL DE CONCURRENCIA.

  • Si hay pocas interferencias (conflictos) entre transacciones (mayoritariamente son lecturas), casi todas se validarán sin dificultad (por ello se llaman optimistas).

  • Existen varios algoritmos de este tipo. Uno de ellos se basa en laasignación de marcas de tiempo.

  • La fase de validación comprueba para cada transacción Ti las siguientes condiciones:


E e base de datos

GRANULARIDAD DE DATOS

Elementos de bases de datos y granularidad

  • Toda técnica de control de concurrencia supone que la base de datos está constituida por un conjunto deelementos de datos con nombre

  • Normalmente, un elemento de datos será uno de estos:

    • un valor de campo de un registro de la BD

    • un registro de la BD

    • una página (uno o varios bloques de disco)

    • un fichero

    • la BD completa

  • Granularidad = tamaño del elemento de información

    • Granularidad fina elementos de tamaño pequeño

    • Granularidad gruesa elementos grandes


E e base de datos

  • En el contexto de los métodos de bloqueo, el tamaño del elemento de datos afecta al grado de concurrencia:

    •  tamaño(elemento)  Grado de concurrencia

    • Y también...

    •  número de elementos en la BD

    • carga de trabajo para la gestión de bloqueos, y

    • espacio ocupado por la información de bloqueo

  • Pero... ¿Cuál es el tamaño adecuado para los elementos?

    • Pues depende de la naturaleza de las transacciones:

    • Si una T representativa accede a pocos registros

      • elegir granularidad de registro

    • Si T accede a muchos registros de un mismo fichero

      • elegir granularidad de página o de fichero


E e base de datos

GRANULARIDAD MULTIPLE

  • Para trabajar con granularidad múltiple se define una matriz de compatibilidad con los modos normales y los modos de intención, repitiéndose C y siendo E una matriz de unos.

  • POR EJEMPLO:

C C

C E


E e base de datos

GRANULARIDAD MULTIPLE

  • Para bloquear un gránulo en un modo determinado,la transacción debe bloquear todos los gránulos que lo contengan en modo de intención y el gránulo en modo normal.


Uso de bloqueo para el control de concurrencia en indice

USO DE BLOQUEO PARA EL CONTROL DE CONCURRENCIA EN INDICE.

  • Generalmente los bloqueos se hacen en los índices, de manera que hay ciertas variantes entre los distintos tipos.

  • B-treeindexes:

    • Bloqueos exclusivos o compartidos para R/W a nivel de página

    • Los bloqueos son liberados inmediatamente después de que cada tupla es recuperada o insertada

    • Proveen la más alta concurrencia sin condiciones de "deadlock" 

  • Hash indexes:

  • Bloqueos exclusivos o compartidos para R/W a nivel de página

  • Los bloqueos son liberados inmediatamente después de que cada página es procesada

  • El bloqueo por página es mejor (hablando de concurrencia) que aquellos por nivel de índice pero son más factibles para "deadlocks"


E e base de datos

  • B-Tree índices ofrecen el mejor rendimiento para aplicaciones concurrentes, además de tener más ventajas que los índices hash. Son recomendados para aplicaciones que requieren indexar datos "escalares" en otro caso hay que esta consientes de las limitantes que presentan los otros esquemas.


Otras cuestiones sobre el control de concurrencias

OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

  • Bloqueos mortales o interbloqueos: (deadlock)

  • Un sistema está en estado de interbloqueo cuando toda Ti del conjunto de T’s que están en ejecución, está esperando por algún recurso que tiene bloqueado otra Ti.

    Suceden cuanto más alto es el grado de Aislamiento.

  • Hay dos estrategias: prevenirlos o detectarlos+recuperación.


Otras cuestiones sobre el control de concurrencias1

OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

  • Prevención:

  • 1.- Usando bloqueos solamente:

    • - BSF conservador: o todos los elementos bloqueados o ninguno

    • - Difícil predecir qué bloqueos necesito antes de empezar

    • - Se mantienen bloqueos innecesarios

    • - Fijar un orden parcial preestablecido de ejecución de las T’s: protocolo de árbol

    • - Se necesita conocer el orden para programar: difícil.


Otras cuestiones sobre el control de concurrencias2

OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

  • Usando MTs y bloqueos: cada Ti. se pone su MT, y el CC usa bloqueos.

  • Dos estrategias para decidir quien tiene que esperar o retroceder si Ti solicita un elemento que tiene bloqueado Tj :

    • - Esperar-morir: - Ti espera solo si MT(Ti) < MT(Tj) -- Ti anterior a Tj –

    • - En otro caso Ti muere

    • - Herir-esperar: - Ti espera solo si MT(Ti) > MT(Tj)

    • - En otro caso Tj se retrocede --Ti “hiere” a Tj-- y Tj expropia el elemento en conflicto

  • No se producen esperas indefinidas (inanición):si Ti retrocede conserva su MT antigua.


E e base de datos

OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

  • Diferencias de funcionamiento en las dos estrategias:

    • - Esperar-morir: -Cuanto más antigua es T, más espera

    • -La Ti que muere, puede morir varias veces si el recurso sigue bloqueado

    • - Herir-esperar: -Una T antigua no espera a una T reciente

    • -Entre Ti y Tj se alternan la espera.


  • Login