“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 ...
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