Vous êtes sur la page 1sur 6

ALGORITMOS DE CONTROL DE CONCURRENCIA EN BASES DE DATOS DISTRIBUIDAS

CARRANZA ATH FREDY BASES DE DATOS II ESCUELA ACADMICO PROFESIONAL DE INFORMTICA UNIVERSIDAD NACIONAL DE TRUJILLO Trujillo Per 2006
Resumen. El presente artculo tiene como finalidad presentar una descripcin de dos algoritmos muy reconocidos para el Control de Concurrencia en el mbito de las bases de Datos Distribuidas, como son el algoritmo de Dos Fases Distribuidos y el de Estampas de Tiempo. Dichos algoritmos cuentan con particularidades diferentes siendo el primero el bloqueo y el estado de los mismos en dos fases, y del segundo, la sincronizacin de las operaciones en base a marcas de tiempo. Dichos algoritmos son usados comercialmente, y son los ms conocidos en el mbito de las Bases de Datos, de manera que su conocimiento es base para un buen estudio.

1. INTRODUCCIN Con el mayo avance de las redes y los procesos distribuidos, las Ciencias de la Computacin y en especial el rea de las Bases de Datos, tienen como menester incluir en ellas, propsito de mejora y cambio. Bien conocido por todos es, que las Bases de datos son un punto importante en cualquier estructura que se base en redes, pero la resolucin de este problema no es tarea fcil, considerando que las operaciones en una red son constantes y los usuarios exigen rapidez y eficiencia. As pues, una de las mayores preocupaciones es resolver el caso de la concurrencia. Esta concurrencia, mucha o poca, viene a ser un problema a resolver, es por eso que se presentan algoritmos que permiten ayudar en estos campos. El presente documento presentar dos de los ms importantes algoritmo de Control de Concurrencia, ellos son el conocido Algoritmo de Bloqueo de Dos Fases(2PL) y el de Estampas de Tiempo(TS). Estos algoritmos diferentes en su estructura, pretenden resolver cualquier dificultad en la ejecucin de las mltiples ejecuciones de las operaciones en un entorno de Bases de Datos Distribuidas. El 2PL bsicamente nos enfocar en un mbito de bloqueos y desbloqueos que para algunos resulta tedioso, pero que ciertamente es el ms usado comercialmente, y el TS nos permitir evitar estos bloqueos, pero con el coste de necesitar mayores comparaciones y espacio auxiliar. Los algoritmos presentados, resolvers los problemas en el Control de Concurrencia, pero eso no equivale a decir que son los nicos, sino que simplemente son los ms comerciales y conocidos. Dichos algoritmos no solo mejorarn nuestro entendimiento en el estudio de las Bases de Datos Distribuidas sino que permitirn obtener un mejor concepto del cmo y porqu se debe controlar la concurrencia. 2. ALGORITMO DE DOS FASES DISTRIBUIDO 2.1. DESCRIPCIN GENERAL

Existe un Lock Manager en cada sitio. Cada uno es responsable de la gestin de bloqueos de los datos que hay en ese nodo, adems de ello implementa el protocolo de control de concurrencia ROWA (Read One Write All), lo que significa que se puede utilizar cualquier copia de un dato para ser ledo, pero para escribir se deben ser bloqueadas todas las copias. [Segn 1] En los candados de dos fases distribuidos se presentan despachadores en cada nodo del sistema. Cada despachador maneja las solicitudes de candados para los datos en ese nodo. Una transaccin puede leer cualquiera de las copias replicada del elemento x, obteniendo un candado de lectura en cualquiera de las copias de x. La escritura sobre x requiere que se obtengan candados para todas las copias de x. La comunicacin entre los nodos que cooperan para ejecutar una transaccin de acuerdo al protocolo de candados distribuidos de dos fases se presenta en la Figura 2.1.1. Los mensajes de solicitud de candados se envan a todos los administradores de candados que participan en el sistema. Las operaciones son pasadas a los procesadores de datos por los administradores de candados. Los procesadores de datos enva su mensaje de "fin de operacin" al administrador de transacciones coordinador.[Segn 2]

Figura 2.1.1. Comunicacin de bloqueos en el 2PL distribuido Se distribuye un gestor de bloqueo en cada nodo. Cada uno es responsable de la gestin de bloqueos de los datos que contiene en ese nodo. El 2PL distribuido implementa una protocolo de control de replicas Read-One-Write-All. Cualquier copia de un dato replicado puede ser usada para operaciones de lectura, pero todas las copias deben ser bloqueadas para escritura antes que se puedan modificar. [Segn 3] En el 2PL distribuido, cada transaccin puede consistir de varias subtransacciones corriendo en sitios diferentes. Aqu se considera lo siguiente que una planificacin es serializable si es equivalente en su efecto sobre la base de datos a una planificacin serial. Adems de ello el Bloqueo de dos fases exige que los bloqueos se dividan en dos fases: fase de bloqueo (crecimiento) y fase de desbloqueo (decrecimiento). [Segn 4] 2.2. CARACTERSTICAS A continuacin se presenta las caractersticas que describen la actuacin del algoritmo. Vale aclarar que dada la mltiple bibliografa, las siguientes aseveraciones podran variar en cuanto a ciertas estructuras usadas para realizar el algoritmo, pero ello no significa que los algoritmos sean diferentes, sino que se presenta una perspectiva distinta siempre con el mismo modelo a seguir. En el algoritmo de deteccin de bloqueos totalmente distribuido, todos los controladores comparten equitativamente la responsabilidad de detectar los bloqueos. En este esquema, cada una de las localidades construye un grafo de espera local que representa una parte del grafo total, dependiendo del comportamiento dinmico del sistema. La idea es que, si existe un bloqueo, aparezca un ciclo en (por lo menos) uno de los grafos parciales. A continuacin se presenta un algoritmo de este tipo, en el cual requiere de la construccin de grafos parciales en todas las localidades. Cada una de las localidades mantiene su grafo de espera local. Estos grafos locales difieren de los antes mencionados en que se agrega un nodo adicional, Tex al grafo. Existir un arco Ti Tex en el grafo si
2

Ti est esperando un dato de otra localidad que est siendo ocupado por cualquier otra transaccin. De manera similar, existir un arco Tex Ti en el grafo si existe una transaccin en otra localidad que est esperando un recurso que Ti est esperando en sta. En el caso en que un grafo de espera local contiene un ciclo en el que no participa el nodo Tex , entonces el sistema se encontrar en un estado de bloqueo. Sin embargo, la existencia de un ciclo que incluya a Tex , implica la posibilidad de que se haya presentado un bloqueo. Para verificar si es as, es necesario invocar un algoritmo distribuido de deteccin de bloqueos. Suponemos que el grafo de espera de la localidad Li contiene un ciclo en el que participa el nodo Tex .Este ciclo debe tener la forma: Tex Tk1 Tk2 Tm Tex alguna otra

lo que indica que la transaccin Tk de Li est en espera para poder ocupar un dato de localidad, por ejemplo Lj . Al descubrir este ciclo, la localidad Li mandar un mensaje de deteccin de bloqueos a la localidad Lj, el cual contendr informacin referente al ciclo.

T1

T2

Tex

T2

T4

T5

T3

Tex T3

Localidad L1 Figura 2.2.1. Grafo de espera local

Localidad L2

Cuando una localidad Lj recibe un mensaje de ese tipo, actualiza su grafo de espera local con la informacin que acaba de obtener. Una vez hecho eso, determina si en el grafo de espera nuevo existe un ciclo en el que no participe Tex. En caso afirmativo, se habr detectado un bloqueo y se invocar un esquema de recuperacin apropiado. Si se descubre un ciclo en el que participe Tex, Lj transmitir un mensaje de deteccin de paralizaciones a la localidad correspondiente, por ejemplo Lk. La localidad Lk, a su vez, repetir el procedimiento. As, despus de un nmero finito de repeticiones, bien se habr detectado un boqueo, o se suspender el algoritmo de deteccin. Para ilustrar lo anterior, examinamos los grafos de espera locales de la Figura 2.2.1. Suponemos que la localidad L1 descubre el ciclo: Tex T2 T3 Tex

Puesto que T3 est esperando un dato de la localidad L2, la localidad L1 transmitir un mensaje de deteccin de paralizaciones que describa este ciclo a la localidad L2. En el momento en que L2 reciba este mensaje, actualizar su grafo de espera local para producir el grafo de espera de la Figura 2.2.2. Este grafo contiene el ciclo: T2 T3 T4 T2

que no incluye al nodo Tex. Por tanto, el sistema est en estado de bloqueo y es conveniente invocar un esquema de recuperacin apropiado.

Tex

T2

T4

T3

Localidad L2

Figura 2.2.2. Grafo de espera local Es conveniente apuntar que el resultado habra sido el mismo si la localidad L2 y hubiera descubierto primero el ciclo en su grafo de espera local y hubiera enviado el mensaje de deteccin de bloqueos a la localidad L1. En el peor de los casos, las dos localidades descubriran el ciclo aproximadamente al mismo tiempo, con lo que se mandara dos mensajes de deteccin de bloqueos, uno de L1 a L2 y otro de L2 a L1. Esto conduce a una transferencia innecesaria de mensajes y un cierto retraso mientras se actualizan los dos grafos de espera locales y se buscan ciclos en ambos grafos. Para reducir el trfico de mensajes, se asigna a cada transaccin Ti un identificador nico, denotado por ID(Ti). En el caso en el que la localidad Lk descubra que su grafo de espera local contiene un ciclo en que participa el nodo Tex y que tiene la forma Tex Tk1 Tk2 Tkn Tex slo enviar un mensaje de deteccin de bloqueos a otra localidad si: ID(Tkn)< ID(Tk1) De no ser as, Lk continuar con su ejecucin normal y dejar la responsabilidad de iniciar el algoritmo de deteccin de bloqueos a alguna otra localidad. Consideremos de nuevo los grafos de espera de la Figura 2.2.1 que mantienen las localidades L1 y L2. Suponemos que: ID(T1)< ID(T2)<ID(T3)ID(T4) Suponemos que en ambas localidades descubren estos ciclos locales aproximadamente al mismo tiempo. El ciclo en L1 tiene forma: Tex T2 T3 Tex

Puesto que ID(T3)>ID(T2), la localidad L1 no enviar un mensaje de deteccin de bloqueos a la localidad L2. El ciclo en la localidad L2 tiene forma: Tex T3 T4 T2 Tex

Puesto que ID(T2)<ID(T3), la localidad L2 si enviar un mensaje de deteccin de bloqueos a la localidad L1. Esta, al recibir el mensaje, actualizar su grafo de espera local, lo examinar para determinar si contiene ciclos y descubrir que el sistema est en estado de bloqueo. [Segn 3]1 Aqu se presenta la caracterizacin desde otra ptica pero que permitir obtener los mismos resultados. Supongamos que la transaccin T1 tiene dos subtransacciones: T1.1 corriendo en S1 y escribiendo un nuevo valor para la copia A1 de A. T1.2 corriendo en S2 y escribiendo un nuevo valor para la copia A2 de A. Ahora supongamos que la transaccin T2 tiene dos subtransacciones: T2.1 corriendo en S1 y escribiendo un nuevo valor para la copia A1 de A. T2.2 corriendo en S2 y escribiendo un nuevo valor para la copia A2 de A

Figura 2.2.3. Planeamiento 1 para las transacciones 1 y 2 Como se observa en la Figura 2.2.3. los elementos que aparecen en una misma lnea podran ocurrir simultneamente, o en cierto orden. Primero segn el sitio S1, T1.1 debe preceder a T2.1 (T1 antes que T2). Y por el otro lado, segn el sitio S2, T2.2 debe preceder a T1.2 (T2 antes que T1). Por lo tanto, esta planificacin no es serializable. El problema de las transacciones distribuidas es que no slo debemos controlar que se realicen localmente los bloqueos en dos fases, sino en la transaccin global. Por lo tanto, ninguna subtransaccin Ti.n de una transaccin Ti puede liberar un bloqueo si otra subtransaccin Tj.m (de Tj) realizar despus un bloqueo (read-lock o write-lock). Ejemplo, En la planificacin 1 la transaccin T1 viola este principio pues T1.1 libera el bloqueo sobre A1 antes que T1.2 bloquee a A2. En el bloqueo de dos fases estricto cada subtransaccin debe informar a las otras subtransacciones de que ha requerido todos los bloqueos. Luego de que todas las transacciones completaron su fase 1 (de bloqueo) pueden continuar con las lecturas y escrituras para luego liberar los bloqueos (unlock). [Segn 4] 3. ALGORITMO DE ESTAMPAS DE TIEMPO DISTRIBUIDO 3.1. DESCRIPCIN GENERAL En un sistema distribuido, cada transaccin debe tener una estampilla de tiempo nica para usar en la decisin del orden de serializabilidad. Para la generacin de estampillas nicas, en el modelo

La referencia a la bibliografa comprende desde el inicio del apartado 2.2. hasta la misma nota de referencia
5

Thank you for evaluating Wondershare PDF Converter.

You can only convert 5 pages with the trial version.

To get all the pages converted, you need to purchase the software from:

http://cbs.wondershare.com/go.php?pid=755&m=db

Vous aimerez peut-être aussi