Sie sind auf Seite 1von 20

UNIVERSIDAD DE CASTILLA-LA MANCHA

ESCUELA SUPERIOR DE INFORMÁTICA

“Rendimiento: Bases de Datos Paralelas y Grid”

Autores: Javier Portillo

Juan Jesus Valero Arroyo

Pedro J. López del Río

Ignacio de la Cruz Maldonado

Manoli del Fresno Flores

Jose Enrique Plaza Morales

Asignatura: Modelos Avanzados de Bases de Datos

Fecha: 29/04/08
Rendimiento 2008

Índice

BASES DE DATOS PARALELAS_____________________________________________ __3

1. Introducción._________ _______________________________________________ 3

2. Paralelismo de E/S. ___________________________________________________ 3

2.1 Comparativa entre técnicas de división ____________________________ 4

3. Paralelismo entre consultas._________ ___________________________________ 5

4. Paralelismo en consultas._. _____________________________________________6

4.1. Paralelismo en operaciones___________ __________________________6

4.1.1. Ordenación paralela __________________________________ 7

4.1.2. Reunión paralela _____________________________________ 8

4.1.3. Otras operaciones relacionales __________________________ 9

4.1.4. Coste de la evaluación en paralelo de las operaciones _______ 10

4.2. Paralelismo entre operaciones.__________ _______________________ 10

4.3. Optimización de consultas.________________ ____________________ 11

4.4 Diseño de sistemas paralelos.__________ ________________________ 12

BASES DE DATOS GRID. ___________________________________________________ 13

1. Introducción. ______________________________________________________ 13

2. Grid middleware. ___________________________________________________14

3. Bases de datos GRID. ________________________________________________14

4. Requisitos para la utilización de BBDD en Grid____________________________15

5. Integración de Bases de datos en un sistema Grid___________________________15

6. Ventajas e Inconvenientes de las BBDD en un Sistema GRID_________________17

7. Metadatos en Bases de Datos en un Sistema GRID._________________________18

7.1 ¿Por qué son necesarios los metadatos?___________________________18

7.2. Servicios que describen los metadatos____________________________18

8. Tiempo dedicado al desarrollo del trabajo_________________________________20

9. Bibliografia_________________________________________________________20

2|Página
Rendimiento 2008

Bases de Datos Paralelas.


1. Introducción

De forma general el concepto de paralelismo en las bases de datos lo podríamos definir


como la partición de la base de datos (normalmente a nivel de relaciones) para poder procesar
de forma paralela en distintos discos y con distintos procesadores una sola operación sobre la
base de datos.

Hace unos años este tipo de bases de datos estaban casi descartadas pero actualmente casi todas
las marcas de bases de datos venden este producto con éxito. Esto se ha debido a:

• Los requisitos transaccionales que tienen las empresas han aumentado al mismo tiempo
que ha crecido el empleo de computadoras. Además los sitios web tienen millones de
visitantes para los que se requieren bases de datos enormes.
• Las empresas utilizan cada vez mayores volúmenes de datos para planificar sus
actividades. Las consultas usadas para estos fines son de ayuda a la toma de decisiones
y pueden necesitar hasta varios terabytes de datos que no se pueden manejar con un
único procesador en el tiempo necesario.
• La naturaleza orientada a conjuntos de las consultas se presta a la paralelización.
• Las máquinas paralelas con varios procesadores son relativamente baratas.

El paralelismo se usa para mejorar la velocidad en la ejecución de consultas. Además el


paralelismo se usa para proporcionar dimensionabilidad ya que la creciente carga de trabajo se
trata sin incrementar el tiempo de respuesta pero incrementando el grado de paralelismo.
Existen cuatro arquitecturas de sistemas paralelos:

• De memoria compartida: Todos los procesadores comparten una memoria común.


• De discos compartidos: Todos los procesadores comparten un conjunto de discos
común.
• Sin compartimiento: Los procesadores no comparten ni memoria ni disco.
• Jerárquica: Este modelo es un híbrido de las arquitecturas anteriores.

2. Paralelismo de E/S

De forma general podemos hablar de paralelismo de E/S cuando hablamos de divisiones en


las relaciones entre varios discos para reducir el tiempo necesario de su recuperación.
Normalmente la división más común en un entorno de bases de datos paralelas es la división
horizontal. En este tipo de división las tuplas de cada relación se dividen entre varios discos de
modo que cada tupla resida en un disco distinto. Suponiendo que tenemos n discos (D0,D1,…,Dn-
1) entre los que se van a dividir los datos, existen varias estrategias de división:

3|Página
Rendimiento 2008
• Turno rotatorio: Se recorre la relación y la i-ésima tupla se envía al disco Di mod n
quedando una distribución homogénea de las tuplas en los discos.
• División por asociación: Se escogen varios atributos del esquema de la relación y se
designan como atributos de división. Se escoge una función de asociación cuyo rango es
{0,1,…,n-1}. Cada tupla de la relación original se asocia en términos de los atributos de
división. Si la función de asociación devuelve i, la tupla de ubica en el disco DI.
• División por rangos: Se distribuye rangos contiguos de valores de los atributos a cada
disco. Para ello se escoge un atributo de división, AD, como vector de división y la
relación se divide de la siguiente manera:
o Sea [vo, v1, …, vn-2] el vector de división con i<j y vi<vj. Considérese una tupla t
tal que t[A]=x.
o Si x< vo entonces t se ubica en el disco Do.
o Si x≥vn-2 entonces t se ubica en el disco Dn-1.
o Si vi≤x < vi+1 entonces t se ubica en el disco DI+1

2.1. Comparativa entre técnicas de división

Cuando ya hemos dividido una relación en varios discos se puede recuperar en paralelo
utilizándolos todos de la misma manera que se puede escribir en paralelo cuando se está
dividiendo una relación. Por lo tanto, cuando se quiera leer (o escribir) la relación completa
ganaremos tiempo gracias al paralelismo. Además de leer de forma completa una relación
existen otro tipo de lecturas o consultas:

• Exploración de la relación completa: Ya mencionada


• Consultas concretas: Buscan tuplas con un determinado valor para un atributo
concreto.
• Consultas de rango: Buscan tuplas con un valor que esté dentro de un rango para un
atributo concreto.

Las técnicas de división explicadas permiten estos tipos de acceso pero con diferentes
niveles de eficacia:

• Turno rotatorio: Se adapta bien a la exploración completa pero no es eficiente para


consultas concretas y de rango ya que tiene que buscar en todos los discos.
• División por asociación: Este esquema se adapta bien a las consultas concretas basadas
en el atributo de división ya que dirigimos la consulta al disco que se nos indica la
función de asociación para el atributo y el valor del mismo. También se adapta bien a
una exploración completa si la función de asociación reparte bien las tuplas en los
discos. Sin embargo no es adecuada esta técnica para consultas concretas cuando el
atributo de búsqueda no coincide con el atributo de división.
• División por rangos: Se adapta bien a las consultas concretas y de rango basadas en el
atributo de división. Para consultas concretas se debe analizar el vector de división para

4|Página
Rendimiento 2008
ver en que disco está la tupla al igual que para una consulta de rango se consulta el
vector de división para ver en que rango de discos están las tuplas.

Resumiendo, la elección de la técnica depende de las operaciones que se vayan a ejecutar.


En general se prefiere división por asociación o por rangos a turno rotatorio. En la siguiente
tabla se resume la comparativa:

Técnica División Relación Consulta Consulta de


Completa Concreta Rango

Turno Eficaz Ineficaz Ineficaz


Rotatorio

Por Rango - Eficaz si coincide Eficaz si coincide


con atributo de con atributo de
división división

Por Asociación Eficaz si la Eficaz si coincide -


función reparte con atributo de
bien las tuplas división

El problema de las divisiones por asociación es que tienden a almacenar un alto porcentaje
de tuplas en algunos discos específicos, situación que no se da con el turno rotatorio. Esto se
debe a que muchas tuplas contiene valores similares en sus atributos. Para minimizar este
problema se debe de elegir un vector de división equilibrado.

Si una relación contiene un número pequeño de tuplas ésta no debe ser dividida y debe
almacenarse en un solo disco.

3. Paralelismo entre consultas

Los sistemas de bases de datos con arquitectura paralela deben asegurar de que dos
procesadores no actualicen simultáneamente los mismos datos de manera independiente.

Cuando un procesador accede a los datos o los actualiza, el sistema de bases de datos debe
garantizar que tenga su última versión en la memoria intermedia. El problema de asegurar que la
versión sea la última disponible se denomina problema de coherencia de cache.

Existen una serie de protocolos para garantizar la coherencia de cache, que normalmente
se integran con los de control de concurrencia para reducir la sobrecarga.

5|Página
Rendimiento 2008
Los protocolos de este tipo de sistemas de disco compartido son los siguientes:

• Antes de cualquier acceso de lectura o escritura de una página, la transacción la bloquea


en modo compartido o excluso, según corresponda. Inmediatamente después de obtener
el bloqueo compartido o exclusivo de la página, la transacción lee también su copia mas
reciente del disco compartido.
• Antes de que una transacción libere el bloqueo exclusivo de una página, la traslada al
disco compartido, posteriormente libera el bloqueo.

Con este protocolo se garantiza que cuando una transacción establece un bloqueo
compartido o exclusivo sobre una página, obtenga la copia correcta de la página.

4. Paralelismo en consultas

Es la ejecución en paralelo de una única consulta entre varios procesadores y discos, cuyo
objetivo es acelerar las consultas de ejecución prologada. Por tanto se puede hacer paralelas las
consultas haciendo paralelas las operaciones que las forman.

Existen dos maneras de ejecutar en paralelo una sola consulta:

• Paralelismo en operaciones. Se puede acelerar el procesamiento de las


consulta haciendo paralela la ejecución de cada una de sus operaciones
individuales ordenación, selección, proyección y reunión.
• Paralelismo entre Operaciones. Se puede acelerar el procesamiento de la
consulta ejecutando en paralelo las diferentes operaciones de las expresiones de
las consultas.

Por lo tanto el objetivo que se persigue es dividir la relación que interviene en la consulta
por medio de técnicas de división de relaciones, guardar dichas relaciones en discos que van a
ser gestionados cada uno de ellos por un procesador, a su vez, cada procesador ejecuta su
consulta local y cada uno de estos resultados parciales se unen para formar la respuesta a la
consulta.

4.1. Paralelismo en operaciones

Ya que las operaciones relacionales trabajan con relaciones que contienen grandes
conjuntos de tuplas, las operaciones se pueden paralelizar ejecutándolas sobre subconjuntos
diferentes de las relaciones en paralelo.

Según el tipo de operación se siguen distintos criterios en el tratamiento que son:

• Ordenación Paralela
• Reunión Paralela.

6|Página
Rendimiento 2008

4.1.1. Ordenación Paralela.

Dependiendo del criterio en la división de la relación se pueden distinguir dos tipos de


ordenación:

Ordenación división de Rangos. Esta forma de división por rangos posee dos etapas
diferenciadas:

1. Redistribuir las tuplas de la relación utilizando una estrategia de división por rangos, de
manera que todas las tuplas que se hallen dentro del rango i-ésimo se envíen al
procesador Pi, que almacena temporalmente la relación en el disco Di. Para
implementar en paralelo la división por rangos cada procesador lee las tuplas de su
disco y las envía al procesador de destino. Cada procesador P0,P1…Pn también recibe
las tuplas correspondientes a su partición y las almacena localmente.
2. Cada uno de los procesadores ordena localmente su partición de la relación sin
interactuar con los demás. La operación final de mezcla es trivial ya que la división por
rangos de la primera etapa asegura que los valores de la clave del procesador Pi sean
menores que los procesador Pj

Ordenación y mezcla externa paralela. Este tipo de ordenación es una alternativa


a la efectuada por la división por rangos. Las etapas que se definen una vez que la relación se ha
divida entre los diferentes discos D1,D2…Dn-a son las siguientes:

1. Cada procesador Pi ordena localmente los datos del disco Di


2. El sistema mezcla las partes ordenadas por cada procesador para obtener el resultado
ordenado final.

A su vez el paso en el que el sistema realiza la mezcla puede ser también paralelizado
mediante la siguiente secuencia de acciones.

1. El sistema divide en rangos las particiones ordenadas encada procesador Pi


entre los procesadores P0,P1…Pn-1. Envía las tuplas de acuerdo con el orden
establecido por lo que cada procesador recibe las tuplas en corrientes
ordenadas.
2. Cada procesador Pi, realiza una mezcla de las corrientes según las recibe para
obtener una sola parte ordenada.
3. Las partes ordenadas de los procesadores P0,P1… Pn-1 se concatenan para
obtener el resultado final.

7|Página
Rendimiento 2008

4.1.2. Reunión Paralela.

La operación reunión exige que el sistema compare pares de tuplas para ver si satisface la
condición de reunión, si la cumple añade el par al resultado de la reunión. Los algoritmos de
reunión paralela intentan repartir entre varios procesadores los pares que hay que comparar.
Cada procesador procesa luego localmente parte de la reunión. Después, el sistema reúne los
resultados de cada procesador para producir el resultado final.

Existe un problema por el cual no todas los tipos de reuniones pueden ser divididas por lo
que existen distintas formas de proceder que son:

Reunión por División. Válida para reuniones de tipo equirreuniones y reuniones


naturales, en la cual existen n procesadores y las relaciones que hay que reunir son r y s. La
reunión por división funciona de esta forma:

• El sistema divide las relaciones r y s en n particiones r0,r1,…rn-1 y s0,s1,…sn-1


• Envía las particiones ri y si al procesador Pi, donde la reunión se procesa localmente.

Existen dos maneras diferentes de dividir las relaciones r y s y son

• División por rangos de los atributos de reunión, en el que se debe usar el mismo vector
de división.
• División por asociación de los atributos de reunión, se debe usar la misma función de
asociación.

Una vez divididas las relaciones se pueden utilizar localmente cualquier técnica de reunión
en cada procesador Pi para calcular la reunión de ri y si.

Reunión con fragmentos y replicas. Proporcionan una alternativa para las


reuniones que no puede ser procesada por la técnica de reunión por división, como por ejemplo
si la condición de reunión es una desigualdad. En este tipo de reuniones pueden paralelizarse
utilizando una técnica denominada fragmentos y replicas, cuyo funcionamiento es el siguiente.

1. El sistema divide una de las relaciones (por ejemplo s) mediante cualquier técnica de
división, incluida por turno rotatorio.
2. El sistema replica la otra relación r en todos los procesadores
3. El procesador Pi procesa localmente la reunión de ri con todos, utilizando cualquier
técnica de reunión.

Reunión por asociación dividida en paralelo. La reunión por asociación realizada en


cada procesador es independiente de las realizadas en otros procesadores, y recibir las tuplas de
ri y de si es parecido a leerlas del disco. En concreto, se puede utilizar el algoritmo híbrido de
reunión por asociación para guardar en caché algunas de las tuplas de entrada, y evitar así los
costes de escribirlas y volver a leerlas.

8|Página
Rendimiento 2008

4.1.3. Otras operaciones relacionales

También se puede realizar en paralelo la evaluación de otras operaciones relacionales:


• Selección. Sea la selección me(r). Considérese primero el caso en el que e es de la
forma ai = v, donde ai es un atributo y v es un valor. Si la relación r se divide basándose
en ai la selección se lleva a cabo en un solo procesador. Si e es de la forma l ) ai ) u (es
decir, que ees una selección de rango) y la relación se ha dividido por rangos basándose
en ai, entonces la selección se lleva a cabo en cada procesador cuya partición se solape
con el rango de valores especificado. En el resto de los casos la selección se lleva a cabo
en todos los procesadores en paralelo.
• Eliminación de duplicados. La eliminación de duplicados puede llevarse a cabo por
ordenación; puede utilizarse cualquiera de las técnicas de ordenación en paralelo, con la
optimización de eliminar los duplicados durante la ordenación tan pronto como se
encuentren. También se puede realizar la eliminación de duplicados en paralelo
dividiendo las tuplas (mediante división por rangos o por asociación) y llevando a cabo
localmente en cada procesador la eliminación de duplicados.
• Proyección. Se puede llevar a cabo la proyección sin eliminación de duplicados según
se leen en paralelo las tuplas del disco. Si se va a llevar a cabo la eliminación de
duplicados se pueden utilizar las técnicas que se acaban de describir.
• Agregación. La agregación puede considerarse una operación. Se puede paralelizar la
operación dividiendo la relación basándose en los atributos de agrupación y procesando
luego localmente los valores de agregación en cada procesador. Se puede utilizar
división por rangos o por asociación. Si la relación ya está dividida basándose en los
atributos de agrupación se puede omitir el primer paso.

9|Página
Rendimiento 2008

4.1.4. Coste de la evaluación en paralelo de las operaciones

Se puede obtener el paralelismo dividiendo la E/S entre varios discos y el trabajo de la


UCP entre varios procesadores. Si se logra un reparto así sin sobrecarga y no hay sesgo en el
reparto del trabajo, las operaciones en paralelo que utilicen n procesadores tardarán 1/n lo que
tardarían en un solo procesador. Ya se sabe cómo estimar el coste de operaciones como la
reunión o la selección. El coste en tiempo del procesamiento paralelo sería entonces 1/n el del
procesamiento secuencial de la operación.
También hay que tener en cuenta los costes siguientes:
• Los costes de iniciar la operación en varios procesadores.
• El sesgo en la distribución de trabajo entre los procesadores, con algunos procesadores
con mayor número de tuplas que otros.
• La contención de recursos —como la memoria, los discos y la red de
comunicaciones— que dan lugar a retrasos.
• El coste de construir el resultado final transmitiendo los resultados parciales desde
cada procesador.
Aunque dividir una sola consulta en varios pasos en paralelo reduce el tamaño del paso
medio, es el tiempo de procesamiento del paso más lento el que determina el tiempo empleado
en procesar la consulta en su conjunto. Una evaluación en paralelo de las particiones, por
ejemplo, sólo es tan rápida como la más lenta de sus ejecuciones en paralelo. Por tanto, el
rendimiento se ve muy afectado por cualquier sesgo en la distribución del trabajo entre los
procesadores.
El problema del sesgo de la división está íntimamente relacionado con el del
desbordamiento de particiones en las reuniones por asociación secuenciales.
Se puede utilizar la resolución del desbordamiento y las técnicas de evitación desarrolladas
para las reuniones por asociación para tratar el sesgo cuando se utilice la división por
asociación.

4.2. 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
economía de procesamiento para el procesamiento de consultas de bases de datos. La ventaja
principal de la ejecución 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 inter-
medios.
En los sistemas paralelos el encauzamiento se utiliza principalmente por la misma razón que
en los sistemas secuenciales. Sin embargo, el encauzamiento puede utilizarse también como
fuente de paralelismo, del mismo modo que el encauzamiento de instrucciones se utiliza como

10 | P á g i n a
Rendimiento 2008
fuente de paralelismo en el diseño de hardware. Esta forma de paralelismo se denomina parale-
lismo de encauzamiento.
El paralelismo encauzado resulta útil con un número pequeño de procesadores, pero no
puede extenderse bien:
1. En primer lugar, las cadenas del cauce no suelen lograr la longitud suficiente para
proporcionar un alto grado de paralelismo.
2. En segundo lugar, no es posible encauzar los operadores de relación que no producen
resultados hasta que se ha tenido acceso a todas las entradas, como la operación
diferencia de conjuntos.
3. En tercer lugar, sólo se obtiene una aceleración marginal en los casos frecuentes en que
el coste de ejecución de un operador es mucho mayor que los de los demás 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 razón 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.

4.3. Optimización de consultas.

Un factor importante en el éxito de la tecnología relacional ha sido el diseño con éxito de


optimizadores de consultas.
Los optimizadores de consultas para la evaluación de consultas en paralelo son más
complicados que los optimizadores de consultas para la evaluación secuencial de consultas. En
primer lugar, los modelos de costes son más complicados dado que hay que tener en cuenta los
costes de división, y deben tenerse en consideración aspectos como el sesgo y la contención de
recursos. Resulta de mayor importancia el asunto de la paralelización de las consultas.
Supóngase que de algún modo se ha escogido una expresión (de entre las equivalentes a la
consulta) para utilizarla para evaluar la consulta.
Para evaluar un árbol de operadores en un sistema paralelo hay que tomar las decisiones
siguientes:
• El modo en que se paralelice cada operación y el número de procesadores que se
utilizará para ello.
• Las operaciones que se encauzan entre los diferentes procesadores, las operaciones que
se ejecuten independientemente en paralelo y las que se ejecuten secuencialmente, una
tras otra.

11 | P á g i n a
Rendimiento 2008

4.4. Diseño de sistemas paralelos.

La carga de datos en paralelo desde fuentes externas es un requisito importante si se van a


tratar grandes volúmenes de datos entrantes.
Un gran sistema paralelo de bases de datos debe abordar también los siguientes aspectos de
disponibilidad:
• El poder de recuperación frente al fallo de algunos procesadores o discos
• La reorganización interactiva de los datos y los cambios de los esquemas.
Con un gran número de procesadores y de discos la probabilidad de que al menos un
procesador o un disco funcionen mal es significativamente mayor que en sistema con un único
procesador y un solo disco. Un sistema paralelo mal diseñado dejará de funcionar si cualquier
componente (procesador o disco) falla. Suponiendo que la probabilidad de fallo de cada
procesador o disco es pequeña, la probabilidad de fallo del sistema asciende.
Por tanto, los sistemas paralelos de bases de datos de gran escala se diseñan para operar
incluso si falla un procesador o un disco. Los datos se replican en al menos dos procesadores. Si
falla un procesador se puede seguir teniendo acceso desde los demás 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 desvían automáticamente a los emplazamientos de las copias de seguridad que guardan
una réplica de los datos.

Cuando se manejan grandes volúmenes de datos (del orden de terabytes), las operaciones
sencillas, como la creación de índices, y los cambios en los esquemas, como añadir una
columna a una relación, pueden tardar mucho tiempo (quizás horas o incluso días). Por tanto, es
inaceptable que los sistemas de bases de datos no estén disponibles mientras se llevan a cabo
tales operaciones. Los sistemas paralelos de bases de datos permiten que tales operaciones se
lleven a cabo interactivamente, es decir, mientras el sistema ejecuta otras transacciones.

12 | P á g i n a
Rendimiento 2008

Bases de Datos GRID


1. Introducción.

Grid es una tecnología que surgió como una nueva forma de computación distribuida. Ian
Foster y Carl Kesselman son considerados los padres de esta tecnología, introducida por ellos
en los años 90. Esta tecnología se basa en la utilización de recursos externos además de los
locales, logrando con ello una mayor disponibilidad de recursos para la realización de una tarea.
La tecnología estándar, o una de las más utilizadas en su comienzo al menos, es el Globus
Toolkit. El objetivo es permitir el uso de recursos libres de otras computadoras localizadas en
otro lugar geográfico y que no estén utilizando toda su potencia. De este modo alguien que no
disponga de la suficiente potencia o recursos en su lugar de trabajo, no se vera imposibilitado
para realizar la tarea deseada ya que podrá hacer uso de recursos ajenos.

Como consecuencia del uso de una red Grid, un usuario puede hacer uso de recursos
libres situados en los computadores que se encuentren dentro de esta red Grid, sin importar la
localización del mismo. De este modo, el usuario dispone de un computador ficticio con la
potencia, disco duro o memoria RAM necesitada.

Por otro lado, podemos decir que con Grid, no ponemos atención en los datos que se
transmiten en sí, como es el caso de los sistemas Cliente-Servidor sino que el punto de interés y
estudio son los recursos computacionales y el uso que se hace de ellos.

Otro avance de Grid es que genera un incremento de las posibilidades del uso de
internet ya que proporciona un incremento de su usabilidad. De este modo se obtiene una mayor
velocidad de procesamiento así como la facilidad de tener bases de datos de mayor tamaño.

Una definición de computación Grid encontrada en la wikipedia es la siguiente:

GRID COMPUTING:

Es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de
recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos
a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la
cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores,
clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet).
Desarrollado en ámbitos científicos a principios de los años 90 su entrada al mercado comercial
siguiendo la idea de la llamada Utility Computing supone una revolución que dará mucho que
hablar.

Las características de esta arquitectura serían:

13 | P á g i n a
Rendimiento 2008
• Capacidad de balanceo de sistemas: no habría necesidad de calcular la capacidad de los
sistemas en función de los picos de trabajo, ya que la capacidad se puede reasignar
desde la granja de recursos a donde se necesite;
• Alta disponibilidad. Con la nueva funcionalidad, si un servidor falla, se reasignan los
servicios en los servidores restantes;
• Reducción de costes: Con esta arquitectura los servicios son gestionados por "granjas de
recursos". Ya no es necesario disponer de "grandes servidores" y podremos hacer uso de
componentes de bajo coste.

2. GRID Middleware.

En las tecnologías Grid, además de tenerse en cuenta el hardware como son los
recursos, los dispositivos de almacenamiento y por supuesto la propia red Grid, es necesario un
soporte software que gestione todas las transferencias y el modo en que se realizan, asi como la
seguridad, todo esto resulta una tarea complicada y no exenta de posibles errores. Esto no
implica que la aparición de un error en un equipo y en una localización determinada, provoque
el error en toda la red.

3. Bases de Datos GRID.

Las Bases de Datos Grid nos proporcionan una visión uniforme de bases de datos
heterogéneas en los entornos Grid. Es decir, puesto que existen diversos tipos de bases de datos,
refiriéndonos con ellos a que éstas pueden ser relacionales, orientadas a objetos, en XML,
etcétera, nuestro sistema nos tiene que proporcionar la abstracción necesaria de los datos para
que el usuario no distinga entre si esta accediendo a una relacional o a una orientada a objetos,
ya que el usuario no le importa como se realice el trabajo, solo necesita que se haga y debe ser
el Grid middleware quien se ocupe de que se efectúe correctamente.

Por otro lado la especificación de los servicios de bases de datos deben ser ortogonales a
los mecanismos de autentificación y autorización de los sistemas Grid, lo que significa que las
bases de datos deben poseer sistemas de seguridad que identifiquen a un usuario del Grid y que
por tanto permitan o no su acceso.

Las propias bases de datos deben de ser transparentes al usuario, logrando así que este se
abstraiga de todo lo relacionado con el como se hace, donde o incluso que recursos o
almacenamiento esta siendo utilizado. Del mismo modo, no deberá preocuparse por la
administración de los recursos.

14 | P á g i n a
Rendimiento 2008

4. Requisitos para la utilización de BBDD en GRID

Para utilizar Base de Datos en el GRID, estas primeramente deben de cumplir una serie de
condiciones previas, como son las normas de seguridad en un GRID.

Algunos aspectos claves de la seguridad en el GRID son:

• Autentificación: Verificación de la validez de la identidad de un usuario, recurso,


servicio,..
• Autorización: Cada recurso o usuario solo debe usar los servicios para los que esta
permitido (control de acceso).
• Integridad: Asegura que los datos no han sido alterados fraudulentamente.
• Confidencialidad: Información sensible como puede ser información de carácter
personal, orientación sexual, datos médicos o bancarios, no puede ser observada por
terceros.
• Gestión de claves: Hace referencia a la gestión de seguridad, proceso de distribución,
generación y almacenamiento de claves.
• Encriptación:
o Simétrica: El proceso de encriptación se realiza usando la misma clave privada.
 Inconvenientes: El emisor y el receptor deben intercambiar la clave.
o Asimétrica: Se utilizan dos claves diferentes para encriptar y desencriptar datos.
Criptografía de clave publica.
 Lentitud considerable en mensajes grandes.
 Aparición de patrones que puede simplificar su criptoanálisis.
• Secure Socket Layer/ Transport Layer Security (SSL/ TLS): Protocolo de comunicación
segura.
• Autentificación Mutua: Dos entidades que quieren comunicarse usan su clave pública
almacenada en un certificado digital para autentificarse.
Estos servicios fundamentales se garantizan mediante:

• GRID Security Infrastructure (GSI)


• Public Key Infrastructure (PKI)

5. Integración de Base de Datos en un Sistema GRID

En los sistemas de bases de datos Grid los servicios ofrecidos deben estar, en la medida
de lo posible estandarizados, y decimos en la medida de lo posible ya que resulta imposible que
todos los servicios se estandaricen debido a la existencia de distintos tipos de bases de datos que
pueden existir en el sistema y que pueden estar usando lenguajes diferentes que no pueden ser
integrados en un único lenguaje debido a su naturaleza. De esta forma podemos aumentar la

15 | P á g i n a
Rendimiento 2008
portabilidad de dichos sistemas. Otra de las ventajas de estandarizar siempre es reducir el
esfuerzo de construcción del sistema.
Con lo mencionado anteriormente se hace imprescindible la presencia de los metadatos
en este tipo de sistemas. Con los metadatos lo que conseguimos es que cada sistema que se
conecta al Grid pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos
saber las operaciones que soporta cada uno.
El sistema gestor de bases de datos (SGBD) va a ser el encargado de saber que servicios
ofrece cada una de las bases de datos, que operaciones se pueden realizar sobre ellas y de
gestionar los permisos de acceso a cada una.
Los servicios que cada sistema debe tener disponibles dentro del Grid son los siguientes:
• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. Además,
cuando los usuarios del sistema soliciten un servicio no saben en que sistema está y
mediante los metadatos el se pueden construir dinámicamente las interfaces para
acceder a los distintos sistemas de bases de datos que forman parte del Grid.
• Manejo de consultas. Como hemos comentado más arriba los lenguajes pueden ser
diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el
lenguaje de consulta que soporta cada base de datos. También es importante que los
resultados de una consulta se puedan enviar a distintos destinos y que sean
comprensibles por éstos para poder construir sistemas más amplios y complejos.
• Transacciones. Estas operaciones son en las que interviene un único sistema de base de
datos y a su vez que cada sistema individual tome parte en las transacciones
distribuidas. La gran variedad de tipos de transacciones que maneja el sistema gestor de
base de datos de un sistema Grid, debido sobre todo a la heterogeneidad de los sistemas
individuales que lo componen, hace que el servicio deba poner claramente en
conocimiento del resto cual es el tipo de transacciones que soporta el sistema individual
de base de datos.
o Carga del sistema o carga de datos. Cuando tenemos grandes cantidades de taos
este tipo de servicio debe ser capaz de acceder a los protocolos de
comunicación del sistema Grid para llevar a cabo la transferencia de esos datos.
o Notificación. Sirve para notificar los cambios que se producen a los clientes que
deseen recibir esa información. Los clientes deben poder expresar si están
interesados en recibir las notificaciones cuando se inserten o se borren datos o
cuando se realicen actualizaciones o en caso de varias acciones como insertar y
actualizar. La forma más sencilla de que este servicio se ponga en
funcionamiento es que el sistema gestor de base de datos subyacente
proporcione la ayuda necesaria, por ejemplo mediante disparadores.
• Planificación. Se debe permitir por ejemplo que cuando un superordenador conecte con
un DBS, la información recuperada del DBS se pueda procesar por el superordenador.
El ancho de banda en la red que los conecta necesita ser reservada. Como el acceso
exclusivo a un DBS no es práctico, se requieren mecanismos con suficientes recursos
(discos, CPUs, memoria, red).

16 | P á g i n a
Rendimiento 2008

6. Ventajas e Inconvenientes de las BBDD en un Sistema


GRID

Las bases de datos alojadas en un sistema GRID van a heredar todas las características:
ventajas e inconvenientes del sistema al que pertenecen.

La Computación GRID está creada con el fin de ofrecer una solución a determinadas
cuestiones, como problemas que requieren de:

• Un gran número de ciclos de procesamiento o


• Un acceso a una gran cantidad de datos.
Las principales ventajas de un sistema GRID son:

• Nunca queda obsoleta, ya que se integran diferentes tipos de máquinas y de recursos y


todos los recursos se aprovechan. Si se renuevan todas las PCs de una oficina, se
pueden incorporar las antiguas y las nuevas.
• Facilita la posibilidad de compartir, acceder y gestionar información, mediante la
colaboración y la flexibilidad operacional, aunando no sólo recursos tecnológicos
dispares, sino también personas y aptitudes diversas.
o Permite a las empresas acceder y compartir bases de datos remotas. Esto es
de gran importancia en las empresas que se dedican a la investigación, en donde
enormes cantidades de información son generadas y analizadas casi a diario.
o Las empresas pueden mejorar la calidad y el tiempo de entrega de los
productos y servicios que ofrecen, a la vez que reducen costes de TI al permitir
la colaboración transparente y la compartición de recursos.
• Tiende a incrementar la productividad otorgando a los usuarios finales acceso a los
recursos de computación, datos y almacenamiento que necesiten, cuando los necesiten.
o Se aprovechan los ciclos de procesamiento inutilizados de ordenadores que se
encuentran en diversas zonas geográficas.
o Ejemplo: ordenadores que normalmente se encuentran inutilizados por la noche
en una compañía en Europa, podrían ser utilizados en el día por una sede de
operaciones en América.
• El paralelismo puede estar visto como un problema, ya que una máquina paralela es
muy costosa. Pero, si tenemos disponibilidad de un conjunto de máquinas heterogéneas
de pequeño o mediano porte, cuya potencia computacional sumada sea considerable,
eso permitiría generar sistemas distribuidos de muy bajo coste y gran potencia
computacional.
• La tolerancia a fallos significa que si una de las máquinas que forman parte del GRID
colapsa, el sistema lo reconoce y la tarea se reenvía a otra máquina, con lo cual se
cumple el objetivo de crear infraestructuras operativas flexibles y resistentes. Así se
obtiene una tecnología más robusta y resistente, capaz de responder a desastres.

17 | P á g i n a
Rendimiento 2008
Por tanto se puede decir que un sistema GRID proporciona:

• Una forma transparente de ejecutar el trabajo que se desea:


o Encuentra los recursos (maquinas) disponibles.
o Asegura un acceso optimizado a los datos (incluyendo copias locales/ cache…)
o Comprueba la autorización del usuario.
o Monitoriza la ejecución.
o Además, si es posible monitoriza el trabajo
Los principales inconvenientes de un sistema GRID son:

• Necesita para mantener su estructura, de diferentes servicios como Internet,


conexiones de 24 horas, los 365 días, con banda ancha, servidores de capacidad,
seguridad informática, VPN, firewalls, encriptación, comunicaciones seguras, políticas
de seguridad, normas ISO, y algunas características más…

7. Metadatos en Bases de Datos en un Sistema GRID.

7.1. ¿Por qué son necesarios los metadatos?

En los sistemas de bases de datos GRID los servicios ofrecidos deben estar, en la medida
de lo posible estandarizados ya que resulta imposible que todos los servicios se estandaricen
debido a la existencia de distintos tipos de bases de datos en el sistema GRID y que pueden
estar usando lenguajes diferentes que no pueden ser integrados en un único lenguaje. De esta
forma podemos aumentar la portabilidad de dichos sistemas. Otra de las ventajas de estandarizar
es reducir el esfuerzo de construcción del sistema.
Con lo mencionado anteriormente se hace imprescindible la presencia de los metadatos en
este tipo de sistemas. Con los metadatos lo que conseguimos es que cada sistema que se conecta
al GRID pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos saber
las operaciones que soporta cada uno.
El sistema gestor de bases de datos (SGBD) va a ser el encargado de saber que servicios
ofrece cada una de las bases de datos, que operaciones se pueden realizar sobre ellas y de
gestionar los permisos de acceso a cada una.

7.2. Servicios que describen los metadatos.

Los servicios que cada sistema debe tener disponibles dentro del GRID son los siguientes:
• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. Además,
cuando los usuarios del sistema soliciten un servicio no saben en qué sistema está y

18 | P á g i n a
Rendimiento 2008
mediante los metadatos se pueden construir dinámicamente las interfaces para acceder a
los distintos sistemas de bases de datos que forman parte del GRID.
• Manejo de consultas. Como hemos comentado más arriba los lenguajes pueden ser
diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el
lenguaje de consulta que soporta cada base de datos. También es importante que los
resultados de una consulta se puedan enviar a distintos destinos y que sean
comprensibles por éstos para poder construir sistemas más amplios y complejos.
• Transacciones. Estas operaciones son en las que interviene un único sistema de base de
datos y a su vez que cada sistema individual tome parte en las transacciones
distribuidas. La gran variedad de tipos de transacciones que maneja el sistema gestor de
base de datos de un sistema GRID, debido sobre todo a la heterogeneidad de los
sistemas individuales que lo componen, hace que el servicio deba poner claramente en
conocimiento del resto cual es el tipo de transacciones que soporta el sistema individual
de base de datos.
o Carga del sistema o carga de datos. Cuando tenemos grandes cantidades de taos
este tipo de servicio debe ser capaz de acceder a los protocolos de
comunicación del sistema GRID para llevar a cabo la transferencia de esos
datos.
o Notificación. Sirve para notificar los cambios que se producen a los clientes que
deseen recibir esa información. Los clientes deben poder expresar si están
interesados en recibir las notificaciones cuando se inserten o se borren datos o
cuando se realicen actualizaciones o en caso de varias acciones como insertar y
actualizar. La forma más sencilla de que este servicio se ponga en
funcionamiento es que el sistema gestor de base de datos subyacente
proporcione la ayuda necesaria, por ejemplo mediante disparadores.
• Planificación. Se debe permitir por ejemplo que cuando un superordenador conecte con
un sistema de base de datos, la información recuperada de ese sistema pueda ser
procesada por el superordenador. El ancho de banda en la red que los conecta necesita
ser reservada. Como el acceso exclusivo a un sistema de base de datos no es práctico, se
requieren mecanismos con suficientes recursos (discos, CPUs, memoria, red).

19 | P á g i n a
Rendimiento 2008

8. Tiempo dedicado al desarrollo del trabajo.

- Búsqueda Bibliográfica: 20 horas


- Análisis de la información: 14 horas
- Discusión de contenidos: 6 horas
- Generación del documento: 22 horas

9.Bibliografía.

 http://es.wikipedia.org/wiki/Grid_computing
 http://www.catedravodafone.etsit.upm.es/formacion/seminarios/grid.html
 http://seti.astroseti.org/setiathome/que.php
 http://ciencia.astroseti.org/planetary/articulo.php?num=320
 http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida#Grid
 http://websearch.internet2.edu/query.html?Search.x=0&Search.y=0&qt=middleware&c
ol=i2sites&charset=iso-8859-1
 http://wiki.dbgrid.org/index.php
 http://www.gridpp.ac.uk/papers/DAISStatementSpec.pdf
 SilBerschatz, Kort, Sudarshan Fundamentos de Base de Datos (4º y 5º Edición),
España, Mc Graw Hill, 2002 y 2007.
 http://www.ayi-asociados.com/presentaciones/Grid_cast-B&N.pdf
 (http://www.fdi.ucm.es/profesor/rubensm/Doctorado/Introduccion%20a%20la%20Segu
ridad%20en%20un%20GRID.pdf)
 http://www.gae.unican.es/Top/Presentaciones/SC06/SemanadelaCiencia_UNICAN_v1.
ppt
 http://indico.ifca.es/indico/getFile.py/access?contribId=9&resId=1&materialId=slides&
confId=75
 http://www.error500.net/garbagecollector/archives/categorias/bases_de_datos/sistema_g
estor_de_base_de_datos_sgbd.php
 http://psicosix.iespana.es/bd2/trabajo01.pdf
 http://eu-datagrid.web.cern.ch/eu-datagrid/
 DATABASES AND THE GRID. Watson, P.. University of Newcastle [2001]
 WHAT IS THE GRID? A THREE POINT CHECKLIST. Foster, I., University of Chicago
[2002]
 ORACLE DATABASE 10G: THE DATABASE FOR THE GRID. An Oracle White
Paper.Oracle [2003]

20 | P á g i n a

Das könnte Ihnen auch gefallen