Вы находитесь на странице: 1из 10

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA FUERZA ARMADA

BOLIVARIANA UNEFA, NCLEO LARA

Pantallas Sistema de Inscripciones

Realizado por: Yavic Arambarrio Juan C Medina Roraima Escalona Zulimar

CI. 15300139

Barquisimeto, Junio de 2011

El cmputo distribuido normalmente involucra computadoras conectadas en una red de rea local o en una red de rea amplia. Actualmente el incremento en el uso de estaciones de trabajo y computadoras paralelas poderosas en sistemas distribuidos tiene un alto impacto en la tecnologa de bases de datos distribuidas. Una computadora paralela o multiprocesador es en s mismo, un sistema distribuido compuesto por un nmero determinado de nodos (procesadores y memorias) conectados en una red rpida dentro de un gabinete. Por supuesto, se puede revisar la tecnologa de bases de datos distribuidas y extenderla para implementar los sistemas de bases de datos paralelas (SBDP en adelante). Un SBDP, explota el paralelismo en la manipulacin de los datos para producir alto desempeo y alta disponibilidad de los servidores de bases de datos. Las bases de datos paralelas (BDP) es una mezcla de otras tecnologas. Actualmente, se han desarrollado soluciones orientadas en software, que permiten explotar el hardware de los multiprocesadores. Los objetivos de los sistemas de bases de datos paralelas se pueden alcanzar extendiendo la tecnologa de las bases de datos distribuidas, por ejemplo, particionando la base de datos a travs de mltiples y pequeos discos, de tal forma que permita obtener consultas paralelas. Esto puede conducir a mejoras considerables tanto en tiempo de respuesta como en el nmero de transacciones por segundo.

PARALELISMO DE ENTRA Y SALIDA Se refiere a la reduccin del tiempo necesario para recuperar relaciones del disco dividindolas en varios discos. La forma ms frecuente de divisin de datos en un entorno de bases de datos paralelas es la divisin horizontal. En la divisin horizontal, las tuplas de las relaciones se dividen (o desagrupan) entre varios discos, de modo que cada tupla resida en un disco. Se han propuesto varias estrategias de divisin.

Tcnicas de divisin Turno rotatorio. La relacin se explora en cualquier orden y la i-sima tupla se enva al disco numerado Di mod n. El esquema de turno rotatorio asegura una distribucin homognea de las tuplas entre los discos; es decir, cada disco tiene aproximadamente el mismo nmero de tuplas que los dems. Divisin por asociacin. En esta estrategia de desagrupacin uno o ms atributos del esquema de la relacin dada se designan como atributos de la divisin. Se escoge una funcin de asociacin cuyo rango sea {0, 1,..., n-1}. Cada tupla de la relacin original se asocia en trminos de los atributos de la divisin. Si la funcin de asociacin devuelve i, la tupla se ubica en el disco Di. Divisin por rangos. Esta estrategia distribuye rangos contiguos de valores de los atributos a cada disco. Se escoge un atributo de divisin, A, como vector de divisin. Sea [v0, v1,..., vn-2] el vector de divisin, tal que , si i<j, entonces vi<vj. La relacin se divide como sigue. Considrese una tupla t tal que t[A]=x. Si x<v0 entonces t se ubica en el disco D0. Si xvn-2, entonces t se ubica en el disco Dn-1. Si vi x < vi+1, entonces t se ubica en el disco Di+1.

Comparacin de las tcnicas de divisin Una vez se ha dividido una relacin entre varios discos, se puede recuperar en paralelo utilizndolos todos. De modo parecido, cuando se est dividiendo una relacin, se puede escribir en paralelo en varios discos. De esta manera las velocidades de transferencia para la lectura o escritura de una relacin completa son mucho mayores con paralelismo de E/S que sin l. Sin embargo, la lectura de una relacin completa, o exploracin de la relacin es slo uno de los tipos de acceso a los datos. El acceso a los datos puede clasificarse de la manera siguiente: 1. Explorar la relacin completa.

2. Localizar una tupla de manera asociativa (por ejemplo, nombre-empleado = Garca); estas consultas, denominadas consultas concretas, buscan tuplas que tengan un valor concreto para un atributo concreto. 3. Localizar todas las tuplas cuyo valor de un atributo dado se halle en un rango especificado (por ejemplo, 10.000<sueldo<20.000); estas consultas se denominan consultas de rangos.} Tratamiento del sesgo La distribucin de las tuplas al dividir una relacin (excepto para el turno rotatorio) puede estar sesgada, con un porcentaje alto de tuplas ubicado en algunas divisiones y menos en otros. La manera en que puede aparecer el sesgo se clasifica de la manera siguiente: Sesgo de los valores de los atributos. Sesgo de la divisin. El sesgo de los valores de los atributos se refiere al hecho de que algunos valores pueden aparecer en los atributos de divisin de muchas tuplas. Todas las tuplas con el mismo valor del atributo de divisin terminan en la misma particin, lo que da lugar al sesgo. El sesgo de la divisin se refiere al hecho de que puede haber un desequilibrio en la carga de la divisin, aunque no haya sesgo en los atributos. El sesgo de los valores de los atributos puede dar lugar a una divisin sesgada independientemente de que se utilice divisin por rangos o por asociacin. Si no se escoge cuidadosamente el vector de divisin, la divisin por rangos puede dar lugar a sesgo de divisin. El sesgo de divisin es menos probable con divisin por asociacin si se ha escogido una buena funcin de asociacin. La sobrecarga de E/S debida a la construccin de un vector de divisin por rangos equilibrado se puede reducir construyendo y almacenado una tabla de frecuencias, o histograma, de los valores de atributos para todo atributo de las relaciones.
La idea es que incluso si un rango tiene muchas ms tuplas que los otros debido al sesgo, stas

se puedan repartir entre varios rangos de procesadores virtuales.

La asignacin por turno rotatorio de los procesadores virtuales a procesadores reales distribuira el trabajo extra entre varios procesadores reales, de forma que ningn procesador tenga que asumir toda la carga.

PARALELISMO ENTRE CONSULTAS En el paralelismo entre consultas se ejecutan en paralelo entre s diferentes consultas o transacciones. La productividad de transacciones puede aumentarse con esta forma de paralelismo. Sin embargo, el tiempo de respuesta de cada transaccin no es menor que si stas se ejecutaran aisladamente. Por ello, el uso principal del paralelismo entre consultas es ampliar los sistemas de procesamiento de transacciones para permitir un nmero mayor de transacciones por segundo. El paralelismo entre consultas es la forma ms sencilla de paralelismo que se permite en los sistemas de bases de datos, especialmente en sistemas paralelos de memoria compartida. Los sistemas de bases de datos Diseados para sistemas con un nico procesador pueden utilizarse en arquitecturas paralelas de memoria compartida con pocos cambios o con ninguno, dado que incluso los sistemas secuenciales de bases de datos permiten el procesamiento concurrente. Las transacciones que se habran realizado de manera concurrente en tiempo compartido en una mquina secuencial se realizan en paralelo en la arquitectura paralela de memoria compartida. Permitir el paralelismo entre consultas es ms complicado en las arquitecturas de disco compartido y sin compartimiento. Los procesadores tienen que realizar algunas tareas, como los bloqueos y el registro histrico, de forma coordinada, y eso exige que se intercambien mensajes. Los sistemas con arquitectura paralela tambin deben asegurar que dos procesadores no actualicen simultneamente los mismos datos de manera independiente. Adems, cuando un procesador tiene acceso a los datos o los actualiza, el sistema de bases de datos debe asegurar que el procesador tenga la ltima versin de stos en su memoria intermedia. Este ltimo problema se conoce como problema de coherencia cach.

Se han desarrollado varios protocolos para garantizar la coherencia cach; a menudo los protocolos de coherencia cach se integran con los de control de la concurrencia de modo que se reduzca la sobrecarga. Un protocolo de este tipo para sistemas de disco compartido es de la manera siguiente: 1. Antes de cualquier acceso de lectura o de escritura a una pgina, una transaccin la bloquea en modo compartido o exclusivo, segn corresponda. Inmediatamente despus de que la transaccin obtenga un bloqueo compartido o exclusivo de la pgina, lee tambin la copia ms reciente de la misma del disco compartido. 2. Antes de que una transaccin libere un bloqueo exclusivo de la pgina, traslada sta al disco compartido; luego, libera el bloqueo.

PARALELISMO EN CONSULTAS El paralelismo en consultas se refiere a la ejecucin en paralelo de una nica consulta en varios procesadores y discos. El uso del paralelismo en consultas es importante para acelerar las consultas de ejecucin larga. El paralelismo entre consultas no ayuda en esta labor, dado que cada consulta se ejecuta de manera secuencial. Para ilustrar la evaluacin en paralelo de una consulta considrese una que exija que se ordene una relacin. Supngase que la relacin se ha dividido en varios discos mediante la divisin por rangos basada en algn atributo y que se solicita la ordenacin basada en el atributo de divisin. La operacin de ordenacin se puede realizar de la manera siguiente: cada particin se ordena en paralelo y las particiones ordenadas se concatenan para obtener la relacin ordenada final. Por tanto, se puede hacer paralela una consulta haciendo paralelas las operaciones que la forman. Hay otra fuente de paralelismo para la evaluacin de las consultas: el rbol de operadores de una consulta puede contener varias operaciones. Se puede hacer paralela la evaluacin del rbol de operadores evaluando en paralelo algunas de las operaciones que no tengan ninguna dependencia entre s. Adems, puede que se logre encauzar el resultado de una operacin hacia otra. Las dos operaciones pueden ejecutarse en paralelo en

procesadores separados, uno que genere el resultado que consuma el otro, incluso simultneamente con su generacin.

PARALELISMO EN OPERACIONES Dado que las operaciones relacionales trabajan con relaciones que contienen grandes conjuntos de tuplas, se Pueden paralelizar las operaciones ejecutndolas en paralelo en subconjuntos diferentes de las relaciones. Dado que el nmero de tuplas de una relacin puede ser grande, el grado de paralelismo es potencialmente enorme. Por tanto, el paralelismo en operaciones es natural en los sistemas de bases de datos.

Ordenacin en paralelo Supngase que se desea ordenar una relacin que reside en n discos, D0,..., Dn-1. Si la relacin se ha dividido por rangos basndose en los atributos por los que se va a ordenar, entonces, como se indic en el Apartado 20.2.2, se puede ordenar por separado cada particin y concatenar los resultados para obtener la relacin completa ordenada. Dado que las tuplas se hallan divididas en n discos, el tiempo necesario para leer la relacin completa se reduce gracias al acceso en paralelo.

Ordenacin con divisin por rangos La ordenacin con divisin por rangos funciona en dos pasos: primero se divide por rangos la relacin y despus se ordena cada particin. Cuando se ordena la relacin con divisin por rangos no hace falta dividir en rangos la relacin en los mismos procesadores o discos en los que se guarda la relacin. Supngase que se escogen los procesadores P0, P1,,Pm, donde m<n para ordenar la relacin.

Ordenacin y mezcla externas paralelas Utilizar la ordenacin y mezcla externas paralelas es una alternativa a la divisin por rangos. Supngase que la relacin ya se ha dividido entre los discos D0, D1,..., Dn-1 (no importa la manera en que se haya dividido la relacin).

Reunin paralela La operacin reunin exige que se comparen pares de tuplas para ver si satisfacen la condicin de reunin: si lo hacen, el par se aade al resultado reunido. Los algoritmos de reunin paralela intentan repartir entre varios procesadores los pares que hay que comparar. Cada procesador luego localmente parte de la reunin. Luego hay que reunir los resultados de cada procesador para producir el resultado final. PARALELISMO ENTRE OPERACIONES Hay dos formas de paralelismo entre operaciones: el paralelismo de encauzamiento y el paralelismo independiente. Paralelismo de encauzamiento el encauzamiento supone una importante fuente de economa de procesamiento para el procesamiento de consultas de bases de datos. Hay que recordar que, en el encauzamiento, las tuplas resultado de una operacin, A, las consume una segunda operacin, B, incluso antes de que la primera operacin haya producido el conjunto completo de tuplas de su resultado. La ventaja principal de la ejecucin encauzada de las evaluaciones secuenciales es que se puede ejecutar una secuencia de operaciones de ese tipo sin escribir en el disco ninguno de los resultados intermedios. En los sistemas paralelos el encauzamiento se utiliza principalmente por la misma razn que en los sistemas secuenciales. Sin embargo, el encauzamiento puede utilizarse tambin como fuente de paralelismo, del mismo modo que el encauzamiento de instrucciones se utiliza como fuente de paralelismo en el diseo de hardware. En el ejemplo anterior es posible ejecutar simultneamente A y B en procesadores diferentes de modo que B consuma las tuplas en paralelo con su produccin por A. Esta forma de paralelismo se denomina paralelismo de encauzamiento. El paralelismo encauzado resulta til con un nmero pequeo de procesadores, pero no puede extenderse bien. En primer lugar, las cadenas del cauce no suelen lograr la longitud suficiente para proporcionar un alto grado de paralelismo. En segundo lugar, no es posible

encauzar los operadores de relacin que no producen resultados hasta que se ha tenido acceso a todas las entradas, como la operacin diferencia de conjuntos. En tercer lugar, slo se obtiene una aceleracin marginal en los casos frecuentes en que el coste de ejecucin de un operador es mucho mayor que los de los dems operadores. Por consiguiente, cuando el grado de paralelismo es elevado, la importancia del encauzamiento como fuente de paralelismo es secundaria respecto de la del paralelismo de particiones. La razn fundamental para utilizar el encauzamiento es que las ejecuciones encauzadas pueden evitar escribir en el disco los resultados intermedios.

PARALELISMO INDEPENDIENTE Las operaciones en las expresiones de las consultas que son independientes entre s pueden ejecutarse en paralelo. Esta forma de paralelismo se denomina paralelismo independiente. Al igual que el paralelismo encauzado, el paralelismo independiente no proporciona un alto grado de paralelismo y es menos til en sistemas con un elevado nivel de paralelismo, aunque resulta til con un grado menor de paralelismo. DISEO DE SISTEMAS PARALELOS
los

sistemas paralelos de bases de datos de gran escala se utilizan principalmente para almacenar grandes volmenes de datos y para procesar consultas de ayuda a las decisiones basadas en dichos datos, estos temas son los ms importantes en los sistemas paralelos de bases de datos. La carga de datos en paralelo desde fuentes externas es un requisito importante si se van a tratar grandes volmenes de datos entrantes. Un gran sistema paralelo de bases de datos debe abordar tambin los siguientes aspectos de disponibilidad: El poder de recuperacin frente al fallo de algunos procesadores o discos La reorganizacin interactiva de los datos y los cambios de los esquemas.

Si falla un procesador se puede seguir teniendo acceso desde los dems procesadores a los datos que guarda. El sistema hace un seguimiento de los procesadores con fallos y distribuye el trabajo entre los que funcionan. Las peticiones de los datos guardados en el emplazamiento con fallo se desvan automticamente a los emplazamientos de las copias de seguridad que guardan una rplica de los datos. Si todos los datos de un procesador A se replican en un solo procesador B, B tratar todas las peticiones hechas a A, as como las propias, y eso dar lugar a que B se transforme en un cuello de botella. Por tanto, las rplicas de los datos de un procesador se dividen entre varios procesadores. Cuando se manejan grandes volmenes de datos (del orden de terabytes), las operaciones sencillas, como la creacin de ndices, y los cambios en los esquemas, como aadir una columna a una relacin, pueden tardar mucho tiempo (quizs horas o incluso das). Por tanto, es inaceptable que los sistemas de bases de datos no estn disponibles mientras se llevan a cabo tales operaciones. Los sistemas paralelos de bases de datos, como los sistemas Himalaya de Compaq, permiten que tales operaciones se lleven a cabo interactivamente, es decir, mientras el sistema ejecuta otras transacciones. Considrese, por ejemplo, la construccin interactiva de ndices. Un sistema que permita esta prestacin permite que se realicen inserciones, borrados y actualizaciones en una relacin aunque se est generando un ndice de la misma. La operacin de generacin de ndices, por tanto, no puede bloquear toda la relacin en modo compartido, como habra hecho en caso contrario. En su lugar, el proceso hace un seguimiento de las actualizaciones que tienen lugar mientras est activo e incorpora los cambios en el ndice que se est generando.