13.08.2013 Views

“Rendimiento: Bases de Datos Paralelas y Grid” - Universidad de ...

“Rendimiento: Bases de Datos Paralelas y Grid” - Universidad de ...

“Rendimiento: Bases de Datos Paralelas y Grid” - Universidad de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UNIVERSIDAD DE CASTILLA-LA MANCHA<br />

ESCUELA SUPERIOR DE INFORMÁTICA<br />

<strong>“Rendimiento</strong>: <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>Paralelas</strong> y <strong>Grid”</strong><br />

Autores: Javier Portillo<br />

Juan Jesus Valero Arroyo<br />

Pedro J. López <strong>de</strong>l Río<br />

Ignacio <strong>de</strong> la Cruz Maldonado<br />

Manoli <strong>de</strong>l Fresno Flores<br />

Jose Enrique Plaza Morales<br />

Asignatura: Mo<strong>de</strong>los Avanzados <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong><br />

Fecha: 29/04/08


Índice<br />

Rendimiento 2008<br />

BASES DE DATOS PARALELAS_____________________________________________ __3<br />

1. Introducción._________ _______________________________________________ 3<br />

2. Paralelismo <strong>de</strong> E/S. ___________________________________________________ 3<br />

2.1 Comparativa entre técnicas <strong>de</strong> división ____________________________ 4<br />

3. Paralelismo entre consultas._________ ___________________________________ 5<br />

4. Paralelismo en consultas._. _____________________________________________6<br />

4.1. Paralelismo en operaciones___________ __________________________6<br />

4.1.1. Or<strong>de</strong>nación paralela __________________________________ 7<br />

4.1.2. Reunión paralela _____________________________________ 8<br />

4.1.3. Otras operaciones relacionales __________________________ 9<br />

4.1.4. Coste <strong>de</strong> la evaluación en paralelo <strong>de</strong> las operaciones _______ 10<br />

4.2. Paralelismo entre operaciones.__________ _______________________ 10<br />

4.3. Optimización <strong>de</strong> consultas.________________ ____________________ 11<br />

4.4 Diseño <strong>de</strong> sistemas paralelos.__________ ________________________ 12<br />

BASES DE DATOS GRID. ___________________________________________________ 13<br />

1. Introducción. ______________________________________________________ 13<br />

2. Grid middleware. ___________________________________________________14<br />

3. <strong>Bases</strong> <strong>de</strong> datos GRID. ________________________________________________14<br />

4. Requisitos para la utilización <strong>de</strong> BBDD en Grid____________________________15<br />

5. Integración <strong>de</strong> <strong>Bases</strong> <strong>de</strong> datos en un sistema Grid___________________________15<br />

6. Ventajas e Inconvenientes <strong>de</strong> las BBDD en un Sistema GRID_________________17<br />

7. Metadatos en <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> en un Sistema GRID._________________________18<br />

7.1 ¿Por qué son necesarios los metadatos?___________________________18<br />

7.2. Servicios que <strong>de</strong>scriben los metadatos____________________________18<br />

8. Tiempo <strong>de</strong>dicado al <strong>de</strong>sarrollo <strong>de</strong>l trabajo_________________________________20<br />

9. Bibliografia_________________________________________________________20<br />

2 | P á g i n a


1. Introducción<br />

<strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>Paralelas</strong>.<br />

Rendimiento 2008<br />

De forma general el concepto <strong>de</strong> paralelismo en las bases <strong>de</strong> datos lo podríamos <strong>de</strong>finir<br />

como la partición <strong>de</strong> la base <strong>de</strong> datos (normalmente a nivel <strong>de</strong> relaciones) para po<strong>de</strong>r procesar<br />

<strong>de</strong> forma paralela en distintos discos y con distintos procesadores una sola operación sobre la<br />

base <strong>de</strong> datos.<br />

Hace unos años este tipo <strong>de</strong> bases <strong>de</strong> datos estaban casi <strong>de</strong>scartadas pero actualmente casi todas<br />

las marcas <strong>de</strong> bases <strong>de</strong> datos ven<strong>de</strong>n este producto con éxito. Esto se ha <strong>de</strong>bido a:<br />

• Los requisitos transaccionales que tienen las empresas han aumentado al mismo tiempo<br />

que ha crecido el empleo <strong>de</strong> computadoras. A<strong>de</strong>más los sitios web tienen millones <strong>de</strong><br />

visitantes para los que se requieren bases <strong>de</strong> datos enormes.<br />

• Las empresas utilizan cada vez mayores volúmenes <strong>de</strong> datos para planificar sus<br />

activida<strong>de</strong>s. Las consultas usadas para estos fines son <strong>de</strong> ayuda a la toma <strong>de</strong> <strong>de</strong>cisiones<br />

y pue<strong>de</strong>n necesitar hasta varios terabytes <strong>de</strong> datos que no se pue<strong>de</strong>n manejar con un<br />

único procesador en el tiempo necesario.<br />

• La naturaleza orientada a conjuntos <strong>de</strong> las consultas se presta a la paralelización.<br />

• Las máquinas paralelas con varios procesadores son relativamente baratas.<br />

El paralelismo se usa para mejorar la velocidad en la ejecución <strong>de</strong> consultas. A<strong>de</strong>más el<br />

paralelismo se usa para proporcionar dimensionabilidad ya que la creciente carga <strong>de</strong> trabajo se<br />

trata sin incrementar el tiempo <strong>de</strong> respuesta pero incrementando el grado <strong>de</strong> paralelismo.<br />

Existen cuatro arquitecturas <strong>de</strong> sistemas paralelos:<br />

• De memoria compartida: Todos los procesadores comparten una memoria común.<br />

• De discos compartidos: Todos los procesadores comparten un conjunto <strong>de</strong> discos<br />

común.<br />

• Sin compartimiento: Los procesadores no comparten ni memoria ni disco.<br />

• Jerárquica: Este mo<strong>de</strong>lo es un híbrido <strong>de</strong> las arquitecturas anteriores.<br />

2. Paralelismo <strong>de</strong> E/S<br />

De forma general po<strong>de</strong>mos hablar <strong>de</strong> paralelismo <strong>de</strong> E/S cuando hablamos <strong>de</strong> divisiones en<br />

las relaciones entre varios discos para reducir el tiempo necesario <strong>de</strong> su recuperación.<br />

Normalmente la división más común en un entorno <strong>de</strong> bases <strong>de</strong> datos paralelas es la división<br />

horizontal. En este tipo <strong>de</strong> división las tuplas <strong>de</strong> cada relación se divi<strong>de</strong>n entre varios discos <strong>de</strong><br />

modo que cada tupla resida en un disco distinto. Suponiendo que tenemos n discos (D0,D1,…,Dn-<br />

1) entre los que se van a dividir los datos, existen varias estrategias <strong>de</strong> división:<br />

3 | P á g i n a


Rendimiento 2008<br />

• Turno rotatorio: Se recorre la relación y la i-ésima tupla se envía al disco Di mod n<br />

quedando una distribución homogénea <strong>de</strong> las tuplas en los discos.<br />

• División por asociación: Se escogen varios atributos <strong>de</strong>l esquema <strong>de</strong> la relación y se<br />

<strong>de</strong>signan como atributos <strong>de</strong> división. Se escoge una función <strong>de</strong> asociación cuyo rango es<br />

{0,1,…,n-1}. Cada tupla <strong>de</strong> la relación original se asocia en términos <strong>de</strong> los atributos <strong>de</strong><br />

división. Si la función <strong>de</strong> asociación <strong>de</strong>vuelve i, la tupla <strong>de</strong> ubica en el disco DI.<br />

• División por rangos: Se distribuye rangos contiguos <strong>de</strong> valores <strong>de</strong> los atributos a cada<br />

disco. Para ello se escoge un atributo <strong>de</strong> división, AD, como vector <strong>de</strong> división y la<br />

relación se divi<strong>de</strong> <strong>de</strong> la siguiente manera:<br />

o Sea [vo, v1, …, vn-2] el vector <strong>de</strong> división con i


Rendimiento 2008<br />

ver en que disco está la tupla al igual que para una consulta <strong>de</strong> rango se consulta el<br />

vector <strong>de</strong> división para ver en que rango <strong>de</strong> discos están las tuplas.<br />

Resumiendo, la elección <strong>de</strong> la técnica <strong>de</strong>pen<strong>de</strong> <strong>de</strong> las operaciones que se vayan a ejecutar.<br />

En general se prefiere división por asociación o por rangos a turno rotatorio. En la siguiente<br />

tabla se resume la comparativa:<br />

Técnica División Relación<br />

Turno<br />

Rotatorio<br />

Completa<br />

Consulta<br />

Concreta<br />

Consulta <strong>de</strong><br />

Rango<br />

Eficaz Ineficaz Ineficaz<br />

Por Rango - Eficaz si coinci<strong>de</strong><br />

Por Asociación Eficaz si la<br />

función reparte<br />

bien las tuplas<br />

con atributo <strong>de</strong><br />

división<br />

Eficaz si coinci<strong>de</strong><br />

con atributo <strong>de</strong><br />

división<br />

Eficaz si coinci<strong>de</strong><br />

con atributo <strong>de</strong><br />

división<br />

El problema <strong>de</strong> las divisiones por asociación es que tien<strong>de</strong>n a almacenar un alto porcentaje<br />

<strong>de</strong> tuplas en algunos discos específicos, situación que no se da con el turno rotatorio. Esto se<br />

<strong>de</strong>be a que muchas tuplas contiene valores similares en sus atributos. Para minimizar este<br />

problema se <strong>de</strong>be <strong>de</strong> elegir un vector <strong>de</strong> división equilibrado.<br />

Si una relación contiene un número pequeño <strong>de</strong> tuplas ésta no <strong>de</strong>be ser dividida y <strong>de</strong>be<br />

almacenarse en un solo disco.<br />

3. Paralelismo entre consultas<br />

Los sistemas <strong>de</strong> bases <strong>de</strong> datos con arquitectura paralela <strong>de</strong>ben asegurar <strong>de</strong> que dos<br />

procesadores no actualicen simultáneamente los mismos datos <strong>de</strong> manera in<strong>de</strong>pendiente.<br />

Cuando un procesador acce<strong>de</strong> a los datos o los actualiza, el sistema <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong>be<br />

garantizar que tenga su última versión en la memoria intermedia. El problema <strong>de</strong> asegurar que la<br />

versión sea la última disponible se <strong>de</strong>nomina problema <strong>de</strong> coherencia <strong>de</strong> cache.<br />

Existen una serie <strong>de</strong> protocolos para garantizar la coherencia <strong>de</strong> cache, que normalmente<br />

se integran con los <strong>de</strong> control <strong>de</strong> concurrencia para reducir la sobrecarga.<br />

-<br />

5 | P á g i n a


Los protocolos <strong>de</strong> este tipo <strong>de</strong> sistemas <strong>de</strong> disco compartido son los siguientes:<br />

Rendimiento 2008<br />

• Antes <strong>de</strong> cualquier acceso <strong>de</strong> lectura o escritura <strong>de</strong> una página, la transacción la bloquea<br />

en modo compartido o excluso, según corresponda. Inmediatamente <strong>de</strong>spués <strong>de</strong> obtener<br />

el bloqueo compartido o exclusivo <strong>de</strong> la página, la transacción lee también su copia mas<br />

reciente <strong>de</strong>l disco compartido.<br />

• Antes <strong>de</strong> que una transacción libere el bloqueo exclusivo <strong>de</strong> una página, la traslada al<br />

disco compartido, posteriormente libera el bloqueo.<br />

Con este protocolo se garantiza que cuando una transacción establece un bloqueo<br />

compartido o exclusivo sobre una página, obtenga la copia correcta <strong>de</strong> la página.<br />

4. Paralelismo en consultas<br />

Es la ejecución en paralelo <strong>de</strong> una única consulta entre varios procesadores y discos, cuyo<br />

objetivo es acelerar las consultas <strong>de</strong> ejecución prologada. Por tanto se pue<strong>de</strong> hacer paralelas las<br />

consultas haciendo paralelas las operaciones que las forman.<br />

Existen dos maneras <strong>de</strong> ejecutar en paralelo una sola consulta:<br />

• Paralelismo en operaciones. Se pue<strong>de</strong> acelerar el procesamiento <strong>de</strong> las<br />

consulta haciendo paralela la ejecución <strong>de</strong> cada una <strong>de</strong> sus operaciones<br />

individuales or<strong>de</strong>nación, selección, proyección y reunión.<br />

• Paralelismo entre Operaciones. Se pue<strong>de</strong> acelerar el procesamiento <strong>de</strong> la<br />

consulta ejecutando en paralelo las diferentes operaciones <strong>de</strong> las expresiones <strong>de</strong><br />

las consultas.<br />

Por lo tanto el objetivo que se persigue es dividir la relación que interviene en la consulta<br />

por medio <strong>de</strong> técnicas <strong>de</strong> división <strong>de</strong> relaciones, guardar dichas relaciones en discos que van a<br />

ser gestionados cada uno <strong>de</strong> ellos por un procesador, a su vez, cada procesador ejecuta su<br />

consulta local y cada uno <strong>de</strong> estos resultados parciales se unen para formar la respuesta a la<br />

consulta.<br />

4.1. Paralelismo en operaciones<br />

Ya que las operaciones relacionales trabajan con relaciones que contienen gran<strong>de</strong>s<br />

conjuntos <strong>de</strong> tuplas, las operaciones se pue<strong>de</strong>n paralelizar ejecutándolas sobre subconjuntos<br />

diferentes <strong>de</strong> las relaciones en paralelo.<br />

Según el tipo <strong>de</strong> operación se siguen distintos criterios en el tratamiento que son:<br />

• Or<strong>de</strong>nación Paralela<br />

• Reunión Paralela.<br />

6 | P á g i n a


4.1.1. Or<strong>de</strong>nación Paralela.<br />

Rendimiento 2008<br />

Dependiendo <strong>de</strong>l criterio en la división <strong>de</strong> la relación se pue<strong>de</strong>n distinguir dos tipos <strong>de</strong><br />

or<strong>de</strong>nación:<br />

Or<strong>de</strong>nación división <strong>de</strong> Rangos. Esta forma <strong>de</strong> división por rangos posee dos etapas<br />

diferenciadas:<br />

1. Redistribuir las tuplas <strong>de</strong> la relación utilizando una estrategia <strong>de</strong> división por rangos, <strong>de</strong><br />

manera que todas las tuplas que se hallen <strong>de</strong>ntro <strong>de</strong>l rango i-ésimo se envíen al<br />

procesador Pi, que almacena temporalmente la relación en el disco Di. Para<br />

implementar en paralelo la división por rangos cada procesador lee las tuplas <strong>de</strong> su<br />

disco y las envía al procesador <strong>de</strong> <strong>de</strong>stino. Cada procesador P0,P1…Pn también recibe<br />

las tuplas correspondientes a su partición y las almacena localmente.<br />

2. Cada uno <strong>de</strong> los procesadores or<strong>de</strong>na localmente su partición <strong>de</strong> la relación sin<br />

interactuar con los <strong>de</strong>más. La operación final <strong>de</strong> mezcla es trivial ya que la división por<br />

rangos <strong>de</strong> la primera etapa asegura que los valores <strong>de</strong> la clave <strong>de</strong>l procesador Pi sean<br />

menores que los procesador Pj<br />

Or<strong>de</strong>nación y mezcla externa paralela. Este tipo <strong>de</strong> or<strong>de</strong>nación es una alternativa<br />

a la efectuada por la división por rangos. Las etapas que se <strong>de</strong>finen una vez que la relación se ha<br />

divida entre los diferentes discos D1,D2…Dn-a son las siguientes:<br />

1. Cada procesador Pi or<strong>de</strong>na localmente los datos <strong>de</strong>l disco Di<br />

2. El sistema mezcla las partes or<strong>de</strong>nadas por cada procesador para obtener el resultado<br />

or<strong>de</strong>nado final.<br />

A su vez el paso en el que el sistema realiza la mezcla pue<strong>de</strong> ser también paralelizado<br />

mediante la siguiente secuencia <strong>de</strong> acciones.<br />

1. El sistema divi<strong>de</strong> en rangos las particiones or<strong>de</strong>nadas encada procesador Pi<br />

entre los procesadores P0,P1…Pn-1. Envía las tuplas <strong>de</strong> acuerdo con el or<strong>de</strong>n<br />

establecido por lo que cada procesador recibe las tuplas en corrientes<br />

or<strong>de</strong>nadas.<br />

2. Cada procesador Pi, realiza una mezcla <strong>de</strong> las corrientes según las recibe para<br />

obtener una sola parte or<strong>de</strong>nada.<br />

3. Las partes or<strong>de</strong>nadas <strong>de</strong> los procesadores P0,P1… Pn-1 se concatenan para<br />

obtener el resultado final.<br />

7 | P á g i n a


4.1.2. Reunión Paralela.<br />

Rendimiento 2008<br />

La operación reunión exige que el sistema compare pares <strong>de</strong> tuplas para ver si satisface la<br />

condición <strong>de</strong> reunión, si la cumple aña<strong>de</strong> el par al resultado <strong>de</strong> la reunión. Los algoritmos <strong>de</strong><br />

reunión paralela intentan repartir entre varios procesadores los pares que hay que comparar.<br />

Cada procesador procesa luego localmente parte <strong>de</strong> la reunión. Después, el sistema reúne los<br />

resultados <strong>de</strong> cada procesador para producir el resultado final.<br />

Existe un problema por el cual no todas los tipos <strong>de</strong> reuniones pue<strong>de</strong>n ser divididas por lo<br />

que existen distintas formas <strong>de</strong> proce<strong>de</strong>r que son:<br />

Reunión por División. Válida para reuniones <strong>de</strong> tipo equirreuniones y reuniones<br />

naturales, en la cual existen n procesadores y las relaciones que hay que reunir son r y s. La<br />

reunión por división funciona <strong>de</strong> esta forma:<br />

• El sistema divi<strong>de</strong> las relaciones r y s en n particiones r0,r1,…rn-1 y s0,s1,…sn-1<br />

• Envía las particiones ri y si al procesador Pi, don<strong>de</strong> la reunión se procesa localmente.<br />

Existen dos maneras diferentes <strong>de</strong> dividir las relaciones r y s y son<br />

• División por rangos <strong>de</strong> los atributos <strong>de</strong> reunión, en el que se <strong>de</strong>be usar el mismo vector<br />

<strong>de</strong> división.<br />

• División por asociación <strong>de</strong> los atributos <strong>de</strong> reunión, se <strong>de</strong>be usar la misma función <strong>de</strong><br />

asociación.<br />

Una vez divididas las relaciones se pue<strong>de</strong>n utilizar localmente cualquier técnica <strong>de</strong> reunión<br />

en cada procesador Pi para calcular la reunión <strong>de</strong> ri y si.<br />

Reunión con fragmentos y replicas. Proporcionan una alternativa para las<br />

reuniones que no pue<strong>de</strong> ser procesada por la técnica <strong>de</strong> reunión por división, como por ejemplo<br />

si la condición <strong>de</strong> reunión es una <strong>de</strong>sigualdad. En este tipo <strong>de</strong> reuniones pue<strong>de</strong>n paralelizarse<br />

utilizando una técnica <strong>de</strong>nominada fragmentos y replicas, cuyo funcionamiento es el siguiente.<br />

1. El sistema divi<strong>de</strong> una <strong>de</strong> las relaciones (por ejemplo s) mediante cualquier técnica <strong>de</strong><br />

división, incluida por turno rotatorio.<br />

2. El sistema replica la otra relación r en todos los procesadores<br />

3. El procesador Pi procesa localmente la reunión <strong>de</strong> ri con todos, utilizando cualquier<br />

técnica <strong>de</strong> reunión.<br />

Reunión por asociación dividida en paralelo. La reunión por asociación realizada en<br />

cada procesador es in<strong>de</strong>pendiente <strong>de</strong> las realizadas en otros procesadores, y recibir las tuplas <strong>de</strong><br />

r i y <strong>de</strong> s i es parecido a leerlas <strong>de</strong>l disco. En concreto, se pue<strong>de</strong> utilizar el algoritmo híbrido <strong>de</strong><br />

reunión por asociación para guardar en caché algunas <strong>de</strong> las tuplas <strong>de</strong> entrada, y evitar así los<br />

costes <strong>de</strong> escribirlas y volver a leerlas.<br />

8 | P á g i n a


4.1.3. Otras operaciones relacionales<br />

Rendimiento 2008<br />

También se pue<strong>de</strong> realizar en paralelo la evaluación <strong>de</strong> otras operaciones relacionales:<br />

• Selección. Sea la selección m e (r). Considérese primero el caso en el que e es <strong>de</strong> la<br />

forma a i = v, don<strong>de</strong> a i es un atributo y v es un valor. Si la relación r se divi<strong>de</strong> basándose<br />

en a i la selección se lleva a cabo en un solo procesador. Si e es <strong>de</strong> la forma l ) a i ) u (es<br />

<strong>de</strong>cir, que ees una selección <strong>de</strong> rango) y la relación se ha dividido por rangos basándose<br />

en a i , entonces la selección se lleva a cabo en cada procesador cuya partición se solape<br />

con el rango <strong>de</strong> valores especificado. En el resto <strong>de</strong> los casos la selección se lleva a cabo<br />

en todos los procesadores en paralelo.<br />

• Eliminación <strong>de</strong> duplicados. La eliminación <strong>de</strong> duplicados pue<strong>de</strong> llevarse a cabo por<br />

or<strong>de</strong>nación; pue<strong>de</strong> utilizarse cualquiera <strong>de</strong> las técnicas <strong>de</strong> or<strong>de</strong>nación en paralelo, con la<br />

optimización <strong>de</strong> eliminar los duplicados durante la or<strong>de</strong>nación tan pronto como se<br />

encuentren. También se pue<strong>de</strong> realizar la eliminación <strong>de</strong> duplicados en paralelo<br />

dividiendo las tuplas (mediante división por rangos o por asociación) y llevando a cabo<br />

localmente en cada procesador la eliminación <strong>de</strong> duplicados.<br />

• Proyección. Se pue<strong>de</strong> llevar a cabo la proyección sin eliminación <strong>de</strong> duplicados según<br />

se leen en paralelo las tuplas <strong>de</strong>l disco. Si se va a llevar a cabo la eliminación <strong>de</strong><br />

duplicados se pue<strong>de</strong>n utilizar las técnicas que se acaban <strong>de</strong> <strong>de</strong>scribir.<br />

• Agregación. La agregación pue<strong>de</strong> consi<strong>de</strong>rarse una operación. Se pue<strong>de</strong> paralelizar la<br />

operación dividiendo la relación basándose en los atributos <strong>de</strong> agrupación y procesando<br />

luego localmente los valores <strong>de</strong> agregación en cada procesador. Se pue<strong>de</strong> utilizar<br />

división por rangos o por asociación. Si la relación ya está dividida basándose en los<br />

atributos <strong>de</strong> agrupación se pue<strong>de</strong> omitir el primer paso.<br />

9 | P á g i n a


Rendimiento 2008<br />

4.1.4. Coste <strong>de</strong> la evaluación en paralelo <strong>de</strong> las operaciones<br />

Se pue<strong>de</strong> obtener el paralelismo dividiendo la E/S entre varios discos y el trabajo <strong>de</strong> la<br />

UCP entre varios procesadores. Si se logra un reparto así sin sobrecarga y no hay sesgo en el<br />

reparto <strong>de</strong>l trabajo, las operaciones en paralelo que utilicen n procesadores tardarán 1/n lo que<br />

tardarían en un solo procesador. Ya se sabe cómo estimar el coste <strong>de</strong> operaciones como la<br />

reunión o la selección. El coste en tiempo <strong>de</strong>l procesamiento paralelo sería entonces 1/n el <strong>de</strong>l<br />

procesamiento secuencial <strong>de</strong> la operación.<br />

También hay que tener en cuenta los costes siguientes:<br />

• Los costes <strong>de</strong> iniciar la operación en varios procesadores.<br />

• El sesgo en la distribución <strong>de</strong> trabajo entre los procesadores, con algunos procesadores<br />

con mayor número <strong>de</strong> tuplas que otros.<br />

• La contención <strong>de</strong> recursos —como la memoria, los discos y la red <strong>de</strong><br />

comunicaciones— que dan lugar a retrasos.<br />

• El coste <strong>de</strong> construir el resultado final transmitiendo los resultados parciales <strong>de</strong>s<strong>de</strong><br />

cada procesador.<br />

Aunque dividir una sola consulta en varios pasos en paralelo reduce el tamaño <strong>de</strong>l paso<br />

medio, es el tiempo <strong>de</strong> procesamiento <strong>de</strong>l paso más lento el que <strong>de</strong>termina el tiempo empleado<br />

en procesar la consulta en su conjunto. Una evaluación en paralelo <strong>de</strong> las particiones, por<br />

ejemplo, sólo es tan rápida como la más lenta <strong>de</strong> sus ejecuciones en paralelo. Por tanto, el<br />

rendimiento se ve muy afectado por cualquier sesgo en la distribución <strong>de</strong>l trabajo entre los<br />

procesadores.<br />

El problema <strong>de</strong>l sesgo <strong>de</strong> la división está íntimamente relacionado con el <strong>de</strong>l<br />

<strong>de</strong>sbordamiento <strong>de</strong> particiones en las reuniones por asociación secuenciales.<br />

Se pue<strong>de</strong> utilizar la resolución <strong>de</strong>l <strong>de</strong>sbordamiento y las técnicas <strong>de</strong> evitación <strong>de</strong>sarrolladas<br />

para las reuniones por asociación para tratar el sesgo cuando se utilice la división por<br />

asociación.<br />

4.2. Paralelismo entre operaciones.<br />

Hay dos formas <strong>de</strong> paralelismo entre operaciones: el paralelismo <strong>de</strong> encauzamiento y el<br />

paralelismo in<strong>de</strong>pendiente.<br />

Paralelismo <strong>de</strong> encauzamiento. El encauzamiento supone una importante fuente <strong>de</strong><br />

economía <strong>de</strong> procesamiento para el procesamiento <strong>de</strong> consultas <strong>de</strong> bases <strong>de</strong> datos. La ventaja<br />

principal <strong>de</strong> la ejecución encauzada <strong>de</strong> las evaluaciones secuenciales es que se pue<strong>de</strong> ejecutar<br />

una secuencia <strong>de</strong> operaciones <strong>de</strong> ese tipo sin escribir en el disco ninguno <strong>de</strong> los resultados inter-<br />

medios.<br />

En los sistemas paralelos el encauzamiento se utiliza principalmente por la misma razón que<br />

en los sistemas secuenciales. Sin embargo, el encauzamiento pue<strong>de</strong> utilizarse también como<br />

fuente <strong>de</strong> paralelismo, <strong>de</strong>l mismo modo que el encauzamiento <strong>de</strong> instrucciones se utiliza como<br />

10 | P á g i n a


Rendimiento 2008<br />

fuente <strong>de</strong> paralelismo en el diseño <strong>de</strong> hardware. Esta forma <strong>de</strong> paralelismo se <strong>de</strong>nomina parale-<br />

lismo <strong>de</strong> encauzamiento.<br />

El paralelismo encauzado resulta útil con un número pequeño <strong>de</strong> procesadores, pero no<br />

pue<strong>de</strong> exten<strong>de</strong>rse bien:<br />

1. En primer lugar, las ca<strong>de</strong>nas <strong>de</strong>l cauce no suelen lograr la longitud suficiente para<br />

proporcionar un alto grado <strong>de</strong> paralelismo.<br />

2. En segundo lugar, no es posible encauzar los operadores <strong>de</strong> relación que no producen<br />

resultados hasta que se ha tenido acceso a todas las entradas, como la operación<br />

diferencia <strong>de</strong> conjuntos.<br />

3. En tercer lugar, sólo se obtiene una aceleración marginal en los casos frecuentes en que<br />

el coste <strong>de</strong> ejecución <strong>de</strong> un operador es mucho mayor que los <strong>de</strong> los <strong>de</strong>más operadores.<br />

Por consiguiente, cuando el grado <strong>de</strong> paralelismo es elevado, la importancia <strong>de</strong>l<br />

encauzamiento como fuente <strong>de</strong> paralelismo es secundaria respecto <strong>de</strong> la <strong>de</strong>l paralelismo <strong>de</strong><br />

particiones. La razón fundamental para utilizar el encauzamiento es que las ejecuciones<br />

encauzadas pue<strong>de</strong>n evitar escribir en el disco los resultados intermedios.<br />

Paralelismo in<strong>de</strong>pendiente. Las operaciones en las expresiones <strong>de</strong> las consultas que son<br />

in<strong>de</strong>pendientes entre sí pue<strong>de</strong>n ejecutarse en paralelo. Esta forma <strong>de</strong> paralelismo se <strong>de</strong>nomina<br />

paralelismo in<strong>de</strong>pendiente.<br />

Al igual que el paralelismo encauzado, el paralelismo in<strong>de</strong>pendiente no proporciona un alto<br />

grado <strong>de</strong> paralelismo y es menos útil en sistemas con un elevado nivel <strong>de</strong> paralelismo, aunque<br />

resulta útil con un grado menor <strong>de</strong> paralelismo.<br />

4.3. Optimización <strong>de</strong> consultas.<br />

Un factor importante en el éxito <strong>de</strong> la tecnología relacional ha sido el diseño con éxito <strong>de</strong><br />

optimizadores <strong>de</strong> consultas.<br />

Los optimizadores <strong>de</strong> consultas para la evaluación <strong>de</strong> consultas en paralelo son más<br />

complicados que los optimizadores <strong>de</strong> consultas para la evaluación secuencial <strong>de</strong> consultas. En<br />

primer lugar, los mo<strong>de</strong>los <strong>de</strong> costes son más complicados dado que hay que tener en cuenta los<br />

costes <strong>de</strong> división, y <strong>de</strong>ben tenerse en consi<strong>de</strong>ración aspectos como el sesgo y la contención <strong>de</strong><br />

recursos. Resulta <strong>de</strong> mayor importancia el asunto <strong>de</strong> la paralelización <strong>de</strong> las consultas.<br />

Supóngase que <strong>de</strong> algún modo se ha escogido una expresión (<strong>de</strong> entre las equivalentes a la<br />

consulta) para utilizarla para evaluar la consulta.<br />

Para evaluar un árbol <strong>de</strong> operadores en un sistema paralelo hay que tomar las <strong>de</strong>cisiones<br />

siguientes:<br />

• El modo en que se paralelice cada operación y el número <strong>de</strong> procesadores que se<br />

utilizará para ello.<br />

• Las operaciones que se encauzan entre los diferentes procesadores, las operaciones que<br />

se ejecuten in<strong>de</strong>pendientemente en paralelo y las que se ejecuten secuencialmente, una<br />

tras otra.<br />

11 | P á g i n a


4.4. Diseño <strong>de</strong> sistemas paralelos.<br />

Rendimiento 2008<br />

La carga <strong>de</strong> datos en paralelo <strong>de</strong>s<strong>de</strong> fuentes externas es un requisito importante si se van a<br />

tratar gran<strong>de</strong>s volúmenes <strong>de</strong> datos entrantes.<br />

Un gran sistema paralelo <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong>be abordar también los siguientes aspectos <strong>de</strong><br />

disponibilidad:<br />

• El po<strong>de</strong>r <strong>de</strong> recuperación frente al fallo <strong>de</strong> algunos procesadores o discos<br />

• La reorganización interactiva <strong>de</strong> los datos y los cambios <strong>de</strong> los esquemas.<br />

Con un gran número <strong>de</strong> procesadores y <strong>de</strong> discos la probabilidad <strong>de</strong> que al menos un<br />

procesador o un disco funcionen mal es significativamente mayor que en sistema con un único<br />

procesador y un solo disco. Un sistema paralelo mal diseñado <strong>de</strong>jará <strong>de</strong> funcionar si cualquier<br />

componente (procesador o disco) falla. Suponiendo que la probabilidad <strong>de</strong> fallo <strong>de</strong> cada<br />

procesador o disco es pequeña, la probabilidad <strong>de</strong> fallo <strong>de</strong>l sistema ascien<strong>de</strong>.<br />

Por tanto, los sistemas paralelos <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong> gran escala se diseñan para operar<br />

incluso si falla un procesador o un disco. Los datos se replican en al menos dos procesadores. Si<br />

falla un procesador se pue<strong>de</strong> seguir teniendo acceso <strong>de</strong>s<strong>de</strong> los <strong>de</strong>más procesadores a los datos<br />

que guarda. El sistema hace un seguimiento <strong>de</strong> los procesadores con fallos y distribuye el<br />

trabajo entre los que funcionan. Las peticiones <strong>de</strong> los datos guardados en el emplazamiento con<br />

fallo se <strong>de</strong>svían automáticamente a los emplazamientos <strong>de</strong> las copias <strong>de</strong> seguridad que guardan<br />

una réplica <strong>de</strong> los datos.<br />

Cuando se manejan gran<strong>de</strong>s volúmenes <strong>de</strong> datos (<strong>de</strong>l or<strong>de</strong>n <strong>de</strong> terabytes), las operaciones<br />

sencillas, como la creación <strong>de</strong> índices, y los cambios en los esquemas, como añadir una<br />

columna a una relación, pue<strong>de</strong>n tardar mucho tiempo (quizás horas o incluso días). Por tanto, es<br />

inaceptable que los sistemas <strong>de</strong> bases <strong>de</strong> datos no estén disponibles mientras se llevan a cabo<br />

tales operaciones. Los sistemas paralelos <strong>de</strong> bases <strong>de</strong> datos permiten que tales operaciones se<br />

lleven a cabo interactivamente, es <strong>de</strong>cir, mientras el sistema ejecuta otras transacciones.<br />

12 | P á g i n a


1. Introducción.<br />

<strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> GRID<br />

Rendimiento 2008<br />

Grid es una tecnología que surgió como una nueva forma <strong>de</strong> computación distribuida. Ian<br />

Foster y Carl Kesselman son consi<strong>de</strong>rados los padres <strong>de</strong> esta tecnología, introducida por ellos<br />

en los años 90. Esta tecnología se basa en la utilización <strong>de</strong> recursos externos a<strong>de</strong>más <strong>de</strong> los<br />

locales, logrando con ello una mayor disponibilidad <strong>de</strong> recursos para la realización <strong>de</strong> una tarea.<br />

La tecnología estándar, o una <strong>de</strong> las más utilizadas en su comienzo al menos, es el Globus<br />

Toolkit. El objetivo es permitir el uso <strong>de</strong> recursos libres <strong>de</strong> otras computadoras localizadas en<br />

otro lugar geográfico y que no estén utilizando toda su potencia. De este modo alguien que no<br />

disponga <strong>de</strong> la suficiente potencia o recursos en su lugar <strong>de</strong> trabajo, no se vera imposibilitado<br />

para realizar la tarea <strong>de</strong>seada ya que podrá hacer uso <strong>de</strong> recursos ajenos.<br />

Como consecuencia <strong>de</strong>l uso <strong>de</strong> una red Grid, un usuario pue<strong>de</strong> hacer uso <strong>de</strong> recursos<br />

libres situados en los computadores que se encuentren <strong>de</strong>ntro <strong>de</strong> esta red Grid, sin importar la<br />

localización <strong>de</strong>l mismo. De este modo, el usuario dispone <strong>de</strong> un computador ficticio con la<br />

potencia, disco duro o memoria RAM necesitada.<br />

Por otro lado, po<strong>de</strong>mos <strong>de</strong>cir que con Grid, no ponemos atención en los datos que se<br />

transmiten en sí, como es el caso <strong>de</strong> los sistemas Cliente-Servidor sino que el punto <strong>de</strong> interés y<br />

estudio son los recursos computacionales y el uso que se hace <strong>de</strong> ellos.<br />

Otro avance <strong>de</strong> Grid es que genera un incremento <strong>de</strong> las posibilida<strong>de</strong>s <strong>de</strong>l uso <strong>de</strong><br />

internet ya que proporciona un incremento <strong>de</strong> su usabilidad. De este modo se obtiene una mayor<br />

velocidad <strong>de</strong> procesamiento así como la facilidad <strong>de</strong> tener bases <strong>de</strong> datos <strong>de</strong> mayor tamaño.<br />

Una <strong>de</strong>finición <strong>de</strong> computación Grid encontrada en la wikipedia es la siguiente:<br />

GRID COMPUTING:<br />

Es una tecnología innovadora que permite utilizar <strong>de</strong> forma coordinada todo tipo <strong>de</strong><br />

recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos<br />

a un control centralizado. En este sentido es una nueva forma <strong>de</strong> computación distribuida, en la<br />

cual los recursos pue<strong>de</strong>n ser heterogéneos (diferentes arquitecturas, supercomputadores,<br />

clusters...) y se encuentran conectados mediante re<strong>de</strong>s <strong>de</strong> área extensa (por ejemplo Internet).<br />

Desarrollado en ámbitos científicos a principios <strong>de</strong> los años 90 su entrada al mercado comercial<br />

siguiendo la i<strong>de</strong>a <strong>de</strong> la llamada Utility Computing supone una revolución que dará mucho que<br />

hablar.<br />

Las características <strong>de</strong> esta arquitectura serían:<br />

13 | P á g i n a


Rendimiento 2008<br />

• Capacidad <strong>de</strong> balanceo <strong>de</strong> sistemas: no habría necesidad <strong>de</strong> calcular la capacidad <strong>de</strong> los<br />

sistemas en función <strong>de</strong> los picos <strong>de</strong> trabajo, ya que la capacidad se pue<strong>de</strong> reasignar<br />

<strong>de</strong>s<strong>de</strong> la granja <strong>de</strong> recursos a don<strong>de</strong> se necesite;<br />

• Alta disponibilidad. Con la nueva funcionalidad, si un servidor falla, se reasignan los<br />

servicios en los servidores restantes;<br />

• Reducción <strong>de</strong> costes: Con esta arquitectura los servicios son gestionados por "granjas <strong>de</strong><br />

recursos". Ya no es necesario disponer <strong>de</strong> "gran<strong>de</strong>s servidores" y podremos hacer uso <strong>de</strong><br />

componentes <strong>de</strong> bajo coste.<br />

2. GRID Middleware.<br />

En las tecnologías Grid, a<strong>de</strong>más <strong>de</strong> tenerse en cuenta el hardware como son los<br />

recursos, los dispositivos <strong>de</strong> almacenamiento y por supuesto la propia red Grid, es necesario un<br />

soporte software que gestione todas las transferencias y el modo en que se realizan, asi como la<br />

seguridad, todo esto resulta una tarea complicada y no exenta <strong>de</strong> posibles errores. Esto no<br />

implica que la aparición <strong>de</strong> un error en un equipo y en una localización <strong>de</strong>terminada, provoque<br />

el error en toda la red.<br />

3. <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> GRID.<br />

Las <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> Grid nos proporcionan una visión uniforme <strong>de</strong> bases <strong>de</strong> datos<br />

heterogéneas en los entornos Grid. Es <strong>de</strong>cir, puesto que existen diversos tipos <strong>de</strong> bases <strong>de</strong> datos,<br />

refiriéndonos con ellos a que éstas pue<strong>de</strong>n ser relacionales, orientadas a objetos, en XML,<br />

etcétera, nuestro sistema nos tiene que proporcionar la abstracción necesaria <strong>de</strong> los datos para<br />

que el usuario no distinga entre si esta accediendo a una relacional o a una orientada a objetos,<br />

ya que el usuario no le importa como se realice el trabajo, solo necesita que se haga y <strong>de</strong>be ser<br />

el Grid middleware quien se ocupe <strong>de</strong> que se efectúe correctamente.<br />

Por otro lado la especificación <strong>de</strong> los servicios <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong>ben ser ortogonales a<br />

los mecanismos <strong>de</strong> autentificación y autorización <strong>de</strong> los sistemas Grid, lo que significa que las<br />

bases <strong>de</strong> datos <strong>de</strong>ben poseer sistemas <strong>de</strong> seguridad que i<strong>de</strong>ntifiquen a un usuario <strong>de</strong>l Grid y que<br />

por tanto permitan o no su acceso.<br />

Las propias bases <strong>de</strong> datos <strong>de</strong>ben <strong>de</strong> ser transparentes al usuario, logrando así que este se<br />

abstraiga <strong>de</strong> todo lo relacionado con el como se hace, don<strong>de</strong> o incluso que recursos o<br />

almacenamiento esta siendo utilizado. Del mismo modo, no <strong>de</strong>berá preocuparse por la<br />

administración <strong>de</strong> los recursos.<br />

14 | P á g i n a


4. Requisitos para la utilización <strong>de</strong> BBDD en GRID<br />

Rendimiento 2008<br />

Para utilizar Base <strong>de</strong> <strong>Datos</strong> en el GRID, estas primeramente <strong>de</strong>ben <strong>de</strong> cumplir una serie <strong>de</strong><br />

condiciones previas, como son las normas <strong>de</strong> seguridad en un GRID.<br />

Algunos aspectos claves <strong>de</strong> la seguridad en el GRID son:<br />

• Autentificación: Verificación <strong>de</strong> la vali<strong>de</strong>z <strong>de</strong> la i<strong>de</strong>ntidad <strong>de</strong> un usuario, recurso,<br />

servicio,..<br />

• Autorización: Cada recurso o usuario solo <strong>de</strong>be usar los servicios para los que esta<br />

permitido (control <strong>de</strong> acceso).<br />

• Integridad: Asegura que los datos no han sido alterados fraudulentamente.<br />

• Confi<strong>de</strong>ncialidad: Información sensible como pue<strong>de</strong> ser información <strong>de</strong> carácter<br />

personal, orientación sexual, datos médicos o bancarios, no pue<strong>de</strong> ser observada por<br />

terceros.<br />

• Gestión <strong>de</strong> claves: Hace referencia a la gestión <strong>de</strong> seguridad, proceso <strong>de</strong> distribución,<br />

generación y almacenamiento <strong>de</strong> claves.<br />

• Encriptación:<br />

o Simétrica: El proceso <strong>de</strong> encriptación se realiza usando la misma clave privada.<br />

Inconvenientes: El emisor y el receptor <strong>de</strong>ben intercambiar la clave.<br />

o Asimétrica: Se utilizan dos claves diferentes para encriptar y <strong>de</strong>sencriptar datos.<br />

Criptografía <strong>de</strong> clave publica.<br />

Lentitud consi<strong>de</strong>rable en mensajes gran<strong>de</strong>s.<br />

Aparición <strong>de</strong> patrones que pue<strong>de</strong> simplificar su criptoanálisis.<br />

• Secure Socket Layer/ Transport Layer Security (SSL/ TLS): Protocolo <strong>de</strong> comunicación<br />

segura.<br />

• Autentificación Mutua: Dos entida<strong>de</strong>s que quieren comunicarse usan su clave pública<br />

almacenada en un certificado digital para autentificarse.<br />

Estos servicios fundamentales se garantizan mediante:<br />

• GRID Security Infrastructure (GSI)<br />

• Public Key Infrastructure (PKI)<br />

5. Integración <strong>de</strong> Base <strong>de</strong> <strong>Datos</strong> en un Sistema GRID<br />

En los sistemas <strong>de</strong> bases <strong>de</strong> datos Grid los servicios ofrecidos <strong>de</strong>ben estar, en la medida<br />

<strong>de</strong> lo posible estandarizados, y <strong>de</strong>cimos en la medida <strong>de</strong> lo posible ya que resulta imposible que<br />

todos los servicios se estandaricen <strong>de</strong>bido a la existencia <strong>de</strong> distintos tipos <strong>de</strong> bases <strong>de</strong> datos que<br />

pue<strong>de</strong>n existir en el sistema y que pue<strong>de</strong>n estar usando lenguajes diferentes que no pue<strong>de</strong>n ser<br />

integrados en un único lenguaje <strong>de</strong>bido a su naturaleza. De esta forma po<strong>de</strong>mos aumentar la<br />

15 | P á g i n a


Rendimiento 2008<br />

portabilidad <strong>de</strong> dichos sistemas. Otra <strong>de</strong> las ventajas <strong>de</strong> estandarizar siempre es reducir el<br />

esfuerzo <strong>de</strong> construcción <strong>de</strong>l sistema.<br />

Con lo mencionado anteriormente se hace imprescindible la presencia <strong>de</strong> los metadatos<br />

en este tipo <strong>de</strong> sistemas. Con los metadatos lo que conseguimos es que cada sistema que se<br />

conecta al Grid pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos<br />

saber las operaciones que soporta cada uno.<br />

El sistema gestor <strong>de</strong> bases <strong>de</strong> datos (SGBD) va a ser el encargado <strong>de</strong> saber que servicios<br />

ofrece cada una <strong>de</strong> las bases <strong>de</strong> datos, que operaciones se pue<strong>de</strong>n realizar sobre ellas y <strong>de</strong><br />

gestionar los permisos <strong>de</strong> acceso a cada una.<br />

Los servicios que cada sistema <strong>de</strong>be tener disponibles <strong>de</strong>ntro <strong>de</strong>l Grid son los siguientes:<br />

• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. A<strong>de</strong>más,<br />

cuando los usuarios <strong>de</strong>l sistema soliciten un servicio no saben en que sistema está y<br />

mediante los metadatos el se pue<strong>de</strong>n construir dinámicamente las interfaces para<br />

acce<strong>de</strong>r a los distintos sistemas <strong>de</strong> bases <strong>de</strong> datos que forman parte <strong>de</strong>l Grid.<br />

• Manejo <strong>de</strong> consultas. Como hemos comentado más arriba los lenguajes pue<strong>de</strong>n ser<br />

diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el<br />

lenguaje <strong>de</strong> consulta que soporta cada base <strong>de</strong> datos. También es importante que los<br />

resultados <strong>de</strong> una consulta se puedan enviar a distintos <strong>de</strong>stinos y que sean<br />

comprensibles por éstos para po<strong>de</strong>r construir sistemas más amplios y complejos.<br />

• Transacciones. Estas operaciones son en las que interviene un único sistema <strong>de</strong> base <strong>de</strong><br />

datos y a su vez que cada sistema individual tome parte en las transacciones<br />

distribuidas. La gran variedad <strong>de</strong> tipos <strong>de</strong> transacciones que maneja el sistema gestor <strong>de</strong><br />

base <strong>de</strong> datos <strong>de</strong> un sistema Grid, <strong>de</strong>bido sobre todo a la heterogeneidad <strong>de</strong> los sistemas<br />

individuales que lo componen, hace que el servicio <strong>de</strong>ba poner claramente en<br />

conocimiento <strong>de</strong>l resto cual es el tipo <strong>de</strong> transacciones que soporta el sistema individual<br />

<strong>de</strong> base <strong>de</strong> datos.<br />

o Carga <strong>de</strong>l sistema o carga <strong>de</strong> datos. Cuando tenemos gran<strong>de</strong>s cantida<strong>de</strong>s <strong>de</strong> taos<br />

este tipo <strong>de</strong> servicio <strong>de</strong>be ser capaz <strong>de</strong> acce<strong>de</strong>r a los protocolos <strong>de</strong><br />

comunicación <strong>de</strong>l sistema Grid para llevar a cabo la transferencia <strong>de</strong> esos datos.<br />

o Notificación. Sirve para notificar los cambios que se producen a los clientes que<br />

<strong>de</strong>seen recibir esa información. Los clientes <strong>de</strong>ben po<strong>de</strong>r expresar si están<br />

interesados en recibir las notificaciones cuando se inserten o se borren datos o<br />

cuando se realicen actualizaciones o en caso <strong>de</strong> varias acciones como insertar y<br />

actualizar. La forma más sencilla <strong>de</strong> que este servicio se ponga en<br />

funcionamiento es que el sistema gestor <strong>de</strong> base <strong>de</strong> datos subyacente<br />

proporcione la ayuda necesaria, por ejemplo mediante disparadores.<br />

• Planificación. Se <strong>de</strong>be permitir por ejemplo que cuando un superor<strong>de</strong>nador conecte con<br />

un DBS, la información recuperada <strong>de</strong>l DBS se pueda procesar por el superor<strong>de</strong>nador.<br />

El ancho <strong>de</strong> banda en la red que los conecta necesita ser reservada. Como el acceso<br />

exclusivo a un DBS no es práctico, se requieren mecanismos con suficientes recursos<br />

(discos, CPUs, memoria, red).<br />

16 | P á g i n a


Rendimiento 2008<br />

6. Ventajas e Inconvenientes <strong>de</strong> las BBDD en un Sistema<br />

GRID<br />

Las bases <strong>de</strong> datos alojadas en un sistema GRID van a heredar todas las características:<br />

ventajas e inconvenientes <strong>de</strong>l sistema al que pertenecen.<br />

La Computación GRID está creada con el fin <strong>de</strong> ofrecer una solución a <strong>de</strong>terminadas<br />

cuestiones, como problemas que requieren <strong>de</strong>:<br />

• Un gran número <strong>de</strong> ciclos <strong>de</strong> procesamiento o<br />

• Un acceso a una gran cantidad <strong>de</strong> datos.<br />

Las principales ventajas <strong>de</strong> un sistema GRID son:<br />

• Nunca queda obsoleta, ya que se integran diferentes tipos <strong>de</strong> máquinas y <strong>de</strong> recursos y<br />

todos los recursos se aprovechan. Si se renuevan todas las PCs <strong>de</strong> una oficina, se<br />

pue<strong>de</strong>n incorporar las antiguas y las nuevas.<br />

• Facilita la posibilidad <strong>de</strong> compartir, acce<strong>de</strong>r y gestionar información, mediante la<br />

colaboración y la flexibilidad operacional, aunando no sólo recursos tecnológicos<br />

dispares, sino también personas y aptitu<strong>de</strong>s diversas.<br />

o Permite a las empresas acce<strong>de</strong>r y compartir bases <strong>de</strong> datos remotas. Esto es<br />

<strong>de</strong> gran importancia en las empresas que se <strong>de</strong>dican a la investigación, en don<strong>de</strong><br />

enormes cantida<strong>de</strong>s <strong>de</strong> información son generadas y analizadas casi a diario.<br />

o Las empresas pue<strong>de</strong>n mejorar la calidad y el tiempo <strong>de</strong> entrega <strong>de</strong> los<br />

productos y servicios que ofrecen, a la vez que reducen costes <strong>de</strong> TI al permitir<br />

la colaboración transparente y la compartición <strong>de</strong> recursos.<br />

• Tien<strong>de</strong> a incrementar la productividad otorgando a los usuarios finales acceso a los<br />

recursos <strong>de</strong> computación, datos y almacenamiento que necesiten, cuando los necesiten.<br />

o Se aprovechan los ciclos <strong>de</strong> procesamiento inutilizados <strong>de</strong> or<strong>de</strong>nadores que se<br />

encuentran en diversas zonas geográficas.<br />

o Ejemplo: or<strong>de</strong>nadores que normalmente se encuentran inutilizados por la noche<br />

en una compañía en Europa, podrían ser utilizados en el día por una se<strong>de</strong> <strong>de</strong><br />

operaciones en América.<br />

• El paralelismo pue<strong>de</strong> estar visto como un problema, ya que una máquina paralela es<br />

muy costosa. Pero, si tenemos disponibilidad <strong>de</strong> un conjunto <strong>de</strong> máquinas heterogéneas<br />

<strong>de</strong> pequeño o mediano porte, cuya potencia computacional sumada sea consi<strong>de</strong>rable,<br />

eso permitiría generar sistemas distribuidos <strong>de</strong> muy bajo coste y gran potencia<br />

computacional.<br />

• La tolerancia a fallos significa que si una <strong>de</strong> las máquinas que forman parte <strong>de</strong>l GRID<br />

colapsa, el sistema lo reconoce y la tarea se reenvía a otra máquina, con lo cual se<br />

cumple el objetivo <strong>de</strong> crear infraestructuras operativas flexibles y resistentes. Así se<br />

obtiene una tecnología más robusta y resistente, capaz <strong>de</strong> respon<strong>de</strong>r a <strong>de</strong>sastres.<br />

17 | P á g i n a


Por tanto se pue<strong>de</strong> <strong>de</strong>cir que un sistema GRID proporciona:<br />

• Una forma transparente <strong>de</strong> ejecutar el trabajo que se <strong>de</strong>sea:<br />

o Encuentra los recursos (maquinas) disponibles.<br />

Rendimiento 2008<br />

o Asegura un acceso optimizado a los datos (incluyendo copias locales/ cache…)<br />

o Comprueba la autorización <strong>de</strong>l usuario.<br />

o Monitoriza la ejecución.<br />

o A<strong>de</strong>más, si es posible monitoriza el trabajo<br />

Los principales inconvenientes <strong>de</strong> un sistema GRID son:<br />

• Necesita para mantener su estructura, <strong>de</strong> diferentes servicios como Internet,<br />

conexiones <strong>de</strong> 24 horas, los 365 días, con banda ancha, servidores <strong>de</strong> capacidad,<br />

seguridad informática, VPN, firewalls, encriptación, comunicaciones seguras, políticas<br />

<strong>de</strong> seguridad, normas ISO, y algunas características más…<br />

7. Metadatos en <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> en un Sistema GRID.<br />

7.1. ¿Por qué son necesarios los metadatos?<br />

En los sistemas <strong>de</strong> bases <strong>de</strong> datos GRID los servicios ofrecidos <strong>de</strong>ben estar, en la medida<br />

<strong>de</strong> lo posible estandarizados ya que resulta imposible que todos los servicios se estandaricen<br />

<strong>de</strong>bido a la existencia <strong>de</strong> distintos tipos <strong>de</strong> bases <strong>de</strong> datos en el sistema GRID y que pue<strong>de</strong>n<br />

estar usando lenguajes diferentes que no pue<strong>de</strong>n ser integrados en un único lenguaje. De esta<br />

forma po<strong>de</strong>mos aumentar la portabilidad <strong>de</strong> dichos sistemas. Otra <strong>de</strong> las ventajas <strong>de</strong> estandarizar<br />

es reducir el esfuerzo <strong>de</strong> construcción <strong>de</strong>l sistema.<br />

Con lo mencionado anteriormente se hace imprescindible la presencia <strong>de</strong> los metadatos en<br />

este tipo <strong>de</strong> sistemas. Con los metadatos lo que conseguimos es que cada sistema que se conecta<br />

al GRID pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos saber<br />

las operaciones que soporta cada uno.<br />

El sistema gestor <strong>de</strong> bases <strong>de</strong> datos (SGBD) va a ser el encargado <strong>de</strong> saber que servicios<br />

ofrece cada una <strong>de</strong> las bases <strong>de</strong> datos, que operaciones se pue<strong>de</strong>n realizar sobre ellas y <strong>de</strong><br />

gestionar los permisos <strong>de</strong> acceso a cada una.<br />

7.2. Servicios que <strong>de</strong>scriben los metadatos.<br />

Los servicios que cada sistema <strong>de</strong>be tener disponibles <strong>de</strong>ntro <strong>de</strong>l GRID son los siguientes:<br />

• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. A<strong>de</strong>más,<br />

cuando los usuarios <strong>de</strong>l sistema soliciten un servicio no saben en qué sistema está y<br />

18 | P á g i n a


Rendimiento 2008<br />

mediante los metadatos se pue<strong>de</strong>n construir dinámicamente las interfaces para acce<strong>de</strong>r a<br />

los distintos sistemas <strong>de</strong> bases <strong>de</strong> datos que forman parte <strong>de</strong>l GRID.<br />

• Manejo <strong>de</strong> consultas. Como hemos comentado más arriba los lenguajes pue<strong>de</strong>n ser<br />

diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el<br />

lenguaje <strong>de</strong> consulta que soporta cada base <strong>de</strong> datos. También es importante que los<br />

resultados <strong>de</strong> una consulta se puedan enviar a distintos <strong>de</strong>stinos y que sean<br />

comprensibles por éstos para po<strong>de</strong>r construir sistemas más amplios y complejos.<br />

• Transacciones. Estas operaciones son en las que interviene un único sistema <strong>de</strong> base <strong>de</strong><br />

datos y a su vez que cada sistema individual tome parte en las transacciones<br />

distribuidas. La gran variedad <strong>de</strong> tipos <strong>de</strong> transacciones que maneja el sistema gestor <strong>de</strong><br />

base <strong>de</strong> datos <strong>de</strong> un sistema GRID, <strong>de</strong>bido sobre todo a la heterogeneidad <strong>de</strong> los<br />

sistemas individuales que lo componen, hace que el servicio <strong>de</strong>ba poner claramente en<br />

conocimiento <strong>de</strong>l resto cual es el tipo <strong>de</strong> transacciones que soporta el sistema individual<br />

<strong>de</strong> base <strong>de</strong> datos.<br />

o Carga <strong>de</strong>l sistema o carga <strong>de</strong> datos. Cuando tenemos gran<strong>de</strong>s cantida<strong>de</strong>s <strong>de</strong> taos<br />

este tipo <strong>de</strong> servicio <strong>de</strong>be ser capaz <strong>de</strong> acce<strong>de</strong>r a los protocolos <strong>de</strong><br />

comunicación <strong>de</strong>l sistema GRID para llevar a cabo la transferencia <strong>de</strong> esos<br />

datos.<br />

o Notificación. Sirve para notificar los cambios que se producen a los clientes que<br />

<strong>de</strong>seen recibir esa información. Los clientes <strong>de</strong>ben po<strong>de</strong>r expresar si están<br />

interesados en recibir las notificaciones cuando se inserten o se borren datos o<br />

cuando se realicen actualizaciones o en caso <strong>de</strong> varias acciones como insertar y<br />

actualizar. La forma más sencilla <strong>de</strong> que este servicio se ponga en<br />

funcionamiento es que el sistema gestor <strong>de</strong> base <strong>de</strong> datos subyacente<br />

proporcione la ayuda necesaria, por ejemplo mediante disparadores.<br />

• Planificación. Se <strong>de</strong>be permitir por ejemplo que cuando un superor<strong>de</strong>nador conecte con<br />

un sistema <strong>de</strong> base <strong>de</strong> datos, la información recuperada <strong>de</strong> ese sistema pueda ser<br />

procesada por el superor<strong>de</strong>nador. El ancho <strong>de</strong> banda en la red que los conecta necesita<br />

ser reservada. Como el acceso exclusivo a un sistema <strong>de</strong> base <strong>de</strong> datos no es práctico, se<br />

requieren mecanismos con suficientes recursos (discos, CPUs, memoria, red).<br />

19 | P á g i n a


8. Tiempo <strong>de</strong>dicado al <strong>de</strong>sarrollo <strong>de</strong>l trabajo.<br />

- Búsqueda Bibliográfica: 20 horas<br />

- Análisis <strong>de</strong> la información: 14 horas<br />

- Discusión <strong>de</strong> contenidos: 6 horas<br />

- Generación <strong>de</strong>l documento: 22 horas<br />

9.Bibliografía.<br />

http://es.wikipedia.org/wiki/Grid_computing<br />

Rendimiento 2008<br />

http://www.catedravodafone.etsit.upm.es/formacion/seminarios/grid.html<br />

http://seti.astroseti.org/setiathome/que.php<br />

http://ciencia.astroseti.org/planetary/articulo.php?num=320<br />

http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida#Grid<br />

http://websearch.internet2.edu/query.html?Search.x=0&Search.y=0&qt=middleware&c<br />

ol=i2sites&charset=iso-8859-1<br />

http://wiki.dbgrid.org/in<strong>de</strong>x.php<br />

http://www.gridpp.ac.uk/papers/DAISStatementSpec.pdf<br />

SilBerschatz, Kort, Sudarshan Fundamentos <strong>de</strong> Base <strong>de</strong> <strong>Datos</strong> (4º y 5º Edición),<br />

España, Mc Graw Hill, 2002 y 2007.<br />

http://www.ayi-asociados.com/presentaciones/Grid_cast-B&N.pdf<br />

(http://www.fdi.ucm.es/profesor/rubensm/Doctorado/Introduccion%20a%20la%20Segu<br />

ridad%20en%20un%20GRID.pdf)<br />

http://www.gae.unican.es/Top/Presentaciones/SC06/Semana<strong>de</strong>laCiencia_UNICAN_v1.<br />

ppt<br />

http://indico.ifca.es/indico/getFile.py/access?contribId=9&resId=1&materialId=sli<strong>de</strong>s&<br />

confId=75<br />

http://www.error500.net/garbagecollector/archives/categorias/bases_<strong>de</strong>_datos/sistema_g<br />

estor_<strong>de</strong>_base_<strong>de</strong>_datos_sgbd.php<br />

http://psicosix.iespana.es/bd2/trabajo01.pdf<br />

http://eu-datagrid.web.cern.ch/eu-datagrid/<br />

DATABASES AND THE GRID. Watson, P.. University of Newcastle [2001]<br />

WHAT IS THE GRID? A THREE POINT CHECKLIST. Foster, I., University of Chicago<br />

[2002]<br />

ORACLE DATABASE 10G: THE DATABASE FOR THE GRID. An Oracle White<br />

Paper.Oracle [2003]<br />

20 | P á g i n a

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!