e.e. base de datos

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

Author: oliver

Post on 07-Jan-2016

42 views

Category:

Documents


1 download

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Presentacin de PowerPoint

E.E. Base de DatosProf. Luis A. Lpez CmaraAquino Alejandrez Jaime O.Calles Muoz YoselinDe la Hoz Vargas YanahiRosas Morales AnahSandoval Tejeda Karen S.Equipo No. 2Tcnicas de control de concurrenciaLa mayora de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicacin, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos..

Tcnicas del bloqueo.. Bloqueo en dos fases Interbloqueo Granularidad

Ordenamiento por marcas de tiempo.. Ordenamiento total / Ordenamiento parcial Regla de Thomas

Tcnicas multiversin

Tcnicas de Validacin

Granularidad de elementos de datos

Bloqueo de granularidad mltiple

Usos de bloqueo para control de concurrencia en ndice

Otras cuestiones sobre el control de concurrencias.

Tcnicas de bloqueoLas tcnicas ms 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 grnulo que describe las operaciones que se pueden realizar sobre l.

Dado que dos operaciones de transacciones diferentes sobre el mismo grnulo que no sean permutables pueden provocar violaciones en el orden de serializacin, pueden prevenirse las violaciones bloqueando los accesos a dicho grnuloMatriz binaria de compatibilidad:: Es una matriz binaria quedescribe las operaciones compatibles ( 1 = s,, 0 = no)..C leer escribirleer 1 0escribir 0 0

Se introducen operaciones adicionales en las transacciones:

bloquear(g, M): indica al planificador el comienzo de una operacin o conjunto de ellas de modo definido por M sobre el grnulo g. desbloquear(g): indica al planificador el final de las operaciones realizadas por la transaccin correspondiente. Un modo de operacin M es un vector binario que indica las operaciones que una T desea bloquear sobre el grnulo g.. p.e., si leer o escribir modo M=(1 0) o (0 1) o (1 1)Una transaccin en el esquema del bloqueo deber:

Emitir una operacin bloquear(g,M) antes de operar sobre g en el modo M.. Emitir una operacin desbloquear((g)) despus de terminar la operacin u operaciones correspondientes.. No emitir una operacin bloquear si ya tiene el bloqueo sobre el grnulo (excepto promociones).. No emitir una operacin desbloquear a menos que ya posea el bloqueo correspondiente.

El mdulo de gestin de bloqueos del SGBD se ocupa de asegurar que se cumpla lo anterior.Qu informacin se necesita mantener en el protocolo del bloqueo?Informacin sobre las transacciones que bloquean un determinado grnulo: tabla de bloqueo.

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

A(g,i)=[a1,a2,..,aj,...,ak]Tigaj=1 si Ti tiene bloqueado g para esa operacin.aj=0 si Ti no tiene bloqueado g para esa operacinM=[m1,m2,..,mj,...,mk]Proposicin: los modos de operacin solicitados durante una accin de bloquear((g,, M,, Tp)) son compatibles con los modos de operacin 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 peticin en una colla de espera,, y se bloquea la transaccin hasta que el grnulo est disponible.

La insercin en la cola de espera puede seguir diversos criterios

Cada grnulo tiene una cola de espera que indica las transacciones que estn esperando para utilizarlo y el modo de operacin que solicitan.bloquear(grnulo g, modos M, id_transac p)

{if ( (Ui!=p A(i,g)*C)) M ) A(g,p)=A(g,p) U M; //permite promociones de bloqueos else {inserta_modo_en_cola(p,M,g);bloquea_transaccion(p); }}Codificacindesbloquear(grnulo g, id_transac t){ elem_cola *q; id_transac p;

A(g,t)=0; //vector con todo ceros q=primer_elem_cola(g); while(q!=NULL) {p=q->id_transac;M=q->modo_op;if ( ((Ui!=p A(i,g))*C)) M ){ A(g,p)=A(g,p) U M; eliminar_de_cola(g,p); desbloquear_transaccion(p);}q=sig_elem_cola(g); }}Se llama transaccin en dos fases aquella que norealiza ningn bloqueo despus de haber realizadoalguna operacin de desbloquear. En unatransaccin en dos fases: FASE DE EXPANSIN ( o de crecimiento), durante la cual se pueden adquirir nuevos bloqueos sobre elementos pero no se puede liberar ninguno. FASE DE CONTRACCIN, durante la cual se pueden liberar todos los bloqueos existentes pero no se pueden adquirir nuevos bloqueos.Proposicin: toda planificacin compuesta de transacciones en dos fases es serializable.Bloqueo EN DOS FASES

Bloqueo EN DOS FASES: INTERBLOQUEO

El protocolo en dos fases limita la concurrencia pero garantiza que los planes sean serializables. B2F bsico: va tomando bloqueos y luego los va liberando.B2F conservador: toma todos los bloqueos al principio y si no se espera (poco prctico). B2F estricto: no libera ningn bloqueo exclusivo hasta despus de confirmar o abortar. (asegura planificaciones estrictas)B2F riguroso: no libera ningn bloqueo hasta despus de confirmar o abortar.

Bloqueo EN DOS FASES: INTERBLOQUEOSe basa en asegurar que el acceso a los grnulos por las transacciones 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 transaccin (la que produjo el conflicto) se revierte la transaccin y se relanza asignndole otra marca tiempo. Posible codificacin:

ORDENAMIENTO DE MARCAS DE TIEMPO

Un enfoque para garantizar la seriabilidad de los planes supone usar marcas de tiempo para ordenar la ejecucin de estas. Una marca de tiempo es un identificador nico que el SGBD crea para identificar una transaccin. Las marcas de tiempo se asignan en el orden en que lastransacciones se introducen en el sistema. Generacin de marcas de tiempo: Contador Reloj del sistema La marca de tiempo de grnulo es un valor numrico asociado con un grnulo que almacena la marca de tiempo de la ltima transaccin que oper sobre el grnulo.ORDENAMIENTO DE MARCAS DE TIEMPO Se intenta ordenar aquellas operaciones que son conflictivas (y que no son permutables). Se definen dos marcas de tiempo para un grnulo: Marca de tiempo de lectura ( MT lec(g) ): corresponde a la mayor (la ms alta) marca de tiempo de las transacciones que han ledo el granulo. Marca de tiempo de escritura (( MT_esc(g)): corresponde a la mayor (la ms 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.ORDENAMIENTO parcial o total

Regla de escritura de Thomas: constituye una mejora del algoritmo anterior en la escritura. Si una transaccin pretende escribir en un grnulo con una MT_esc > MT de la transaccin, se puede ignorar dicha escritura (siempre que ninguna transaccin con marca posterior haya ledo el granulo).REGLA DE THOMAS

Este algoritmo consiste en ir guardando varias versiones del mismo dato (grnulo): se conservan los valores antiguos de los grnulos que se han actualizado.

Lectura: Cuando una Transaccin necesita leer algn grnulo, se elige una versin adecuada para mantener la seriabilidad de la planificacin, si es posible.

Escritura: Cuando una Transaccin escribe un grnulo, escribe una nueva versin de ese grnulo, conservndose adems la versin anterior. Desventaja: requiere ms almacenamiento que los anteriores. Muchas veces estas versiones se aprovechan para la recuperacin.TECNICAS DE CONTROL DE CONCURRENCIA MULTIVERSION.TECNICAS DE CONTROL DE CONCURRENCIA MULTIVERSION.

CODIFICACIONSi hay pocas interferencias (conflictos) entre transacciones (mayoritariamente son lecturas), casi todas se validarn sin dificultad (por ello se llaman optimistas).Existen varios algoritmos de este tipo. Uno de ellos se basa en la asignacin de marcas de tiempo. La fase de validacin comprueba para cada transaccin Ti las siguientes condiciones:

TECNICAS DE VALIDACION PARA EL CONTROL DE CONCURRENCIA.

Toda tcnica de control de concurrencia supone que la base de datos est constituida por un conjunto de elementos de datos con nombreNormalmente, un elemento de datos ser uno de estos:un valor de campo de un registro de la BDun registro de la BDuna pgina (uno o varios bloques de disco)un ficherola BD completaGranularidad = tamao del elemento de informacinGranularidad fina elementos de tamao pequeoGranularidad gruesa elementos grandes GRANULARIDAD DE DATOSElementos de bases de datos y granularidadEn Oracle un elemento puede ser una fila (registro) en una tabla o una tabla completa (un segmento). As, se permite el bloqueo de filas (automtico) o de tablas completas (manual).En el contexto de los mtodos de bloqueo, el tamao del elemento de datos afecta al grado de concurrencia: tamao(elemento) Grado de concurrenciaY tambin... nmero de elementos en la BD carga de trabajo para la gestin de bloqueos, y espacio ocupado por la informacin de bloqueoPero... Cul es el tamao adecuado para los elementos?Pues depende de la naturaleza de las transacciones:Si una T representativa accede a pocos registroselegir granularidad de registroSi T accede a muchos registros de un mismo ficheroelegir granularidad de pgina o de ficheroPara trabajar con granularidad mltiple se define una matriz de compatibilidad con los modos normales y los modos de intencin, repitindose C y siendo E una matriz de unos.POR EJEMPLO:

GRANULARIDAD MULTIPLE C C C ELEL10E00LEILIEL1010E0000IL1011IE0011Para bloquear un grnulo en un modo determinado, la transaccin debe bloquear todos los grnulos que lo contengan en modo de intencin y el grnulo en modo normal. GRANULARIDAD MULTIPLEGeneralmente los bloqueos se hacen en los ndices, de manera que hay ciertas variantes entre los distintos tipos.B-tree indexes: Bloqueos exclusivos o compartidos para R/W a nivel de pginaLos bloqueos son liberados inmediatamente despus de que cada tupla es recuperada o insertadaProveen la ms alta concurrencia sin condiciones de "deadlock"Hash indexes: Bloqueos exclusivos o compartidos para R/W a nivel de pginaLos bloqueos son liberados inmediatamente despus de que cada pgina es procesadaEl bloqueo por pgina es mejor (hablando de concurrencia) que aquellos por nivel de ndice pero son ms factibles para "deadlocks"

USO DE BLOQUEO PARA EL CONTROL DE CONCURRENCIA EN INDICE.B-Tree ndices ofrecen el mejor rendimiento para aplicaciones concurrentes, adems de tener ms 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.

Bloqueos mortales o interbloqueos: (deadlock)

Un sistema est en estado de interbloqueo cuando toda Ti del conjunto de Ts que estn en ejecucin, est esperando por algn recurso que tiene bloqueado otra Ti. Suceden cuanto ms alto es el grado de Aislamiento.

Hay dos estrategias: prevenirlos o detectarlos+recuperacin.

OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.Prevencin:1.- Usando bloqueos solamente:- BSF conservador: o todos los elementos bloqueados o ninguno- Difcil predecir qu bloqueos necesito antes de empezar- Se mantienen bloqueos innecesarios- Fijar un orden parcial preestablecido de ejecucin de las Ts: protocolo de rbol- Se necesita conocer el orden para programar: difcil. 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 conflictoNo se producen esperas indefinidas (inanicin):si Ti retrocede conserva su MT antigua. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.Diferencias de funcionamiento en las dos estrategias:- Esperar-morir: -Cuanto ms antigua es T, ms 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. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.