Beruflich Dokumente
Kultur Dokumente
Fecha: 29/04/08
Rendimiento 2008
Índice
1. Introducción._________ _______________________________________________ 3
1. Introducción. ______________________________________________________ 13
9. Bibliografia_________________________________________________________20
2|Página
Rendimiento 2008
Hace unos años este tipo de bases de datos estaban casi descartadas pero actualmente casi todas
las marcas de bases de datos venden este producto con éxito. Esto se ha debido a:
• Los requisitos transaccionales que tienen las empresas han aumentado al mismo tiempo
que ha crecido el empleo de computadoras. Además los sitios web tienen millones de
visitantes para los que se requieren bases de datos enormes.
• Las empresas utilizan cada vez mayores volúmenes de datos para planificar sus
actividades. Las consultas usadas para estos fines son de ayuda a la toma de decisiones
y pueden necesitar hasta varios terabytes de datos que no se pueden manejar con un
único procesador en el tiempo necesario.
• La naturaleza orientada a conjuntos de las consultas se presta a la paralelización.
• Las máquinas paralelas con varios procesadores son relativamente baratas.
2. Paralelismo de E/S
3|Página
Rendimiento 2008
• Turno rotatorio: Se recorre la relación y la i-ésima tupla se envía al disco Di mod n
quedando una distribución homogénea de las tuplas en los discos.
• División por asociación: Se escogen varios atributos del esquema de la relación y se
designan como atributos de división. Se escoge una función de asociación cuyo rango es
{0,1,…,n-1}. Cada tupla de la relación original se asocia en términos de los atributos de
división. Si la función de asociación devuelve i, la tupla de ubica en el disco DI.
• División por rangos: Se distribuye rangos contiguos de valores de los atributos a cada
disco. Para ello se escoge un atributo de división, AD, como vector de división y la
relación se divide de la siguiente manera:
o Sea [vo, v1, …, vn-2] el vector de división con i<j y vi<vj. Considérese una tupla t
tal que t[A]=x.
o Si x< vo entonces t se ubica en el disco Do.
o Si x≥vn-2 entonces t se ubica en el disco Dn-1.
o Si vi≤x < vi+1 entonces t se ubica en el disco DI+1
Cuando ya hemos dividido una relación en varios discos se puede recuperar en paralelo
utilizándolos todos de la misma manera que se puede escribir en paralelo cuando se está
dividiendo una relación. Por lo tanto, cuando se quiera leer (o escribir) la relación completa
ganaremos tiempo gracias al paralelismo. Además de leer de forma completa una relación
existen otro tipo de lecturas o consultas:
Las técnicas de división explicadas permiten estos tipos de acceso pero con diferentes
niveles de eficacia:
4|Página
Rendimiento 2008
ver en que disco está la tupla al igual que para una consulta de rango se consulta el
vector de división para ver en que rango de discos están las tuplas.
El problema de las divisiones por asociación es que tienden a almacenar un alto porcentaje
de tuplas en algunos discos específicos, situación que no se da con el turno rotatorio. Esto se
debe a que muchas tuplas contiene valores similares en sus atributos. Para minimizar este
problema se debe de elegir un vector de división equilibrado.
Si una relación contiene un número pequeño de tuplas ésta no debe ser dividida y debe
almacenarse en un solo disco.
Los sistemas de bases de datos con arquitectura paralela deben asegurar de que dos
procesadores no actualicen simultáneamente los mismos datos de manera independiente.
Cuando un procesador accede a los datos o los actualiza, el sistema de bases de datos debe
garantizar que tenga su última versión en la memoria intermedia. El problema de asegurar que la
versión sea la última disponible se denomina problema de coherencia de cache.
Existen una serie de protocolos para garantizar la coherencia de cache, que normalmente
se integran con los de control de concurrencia para reducir la sobrecarga.
5|Página
Rendimiento 2008
Los protocolos de este tipo de sistemas de disco compartido son los siguientes:
Con este protocolo se garantiza que cuando una transacción establece un bloqueo
compartido o exclusivo sobre una página, obtenga la copia correcta de la página.
4. Paralelismo en consultas
Es la ejecución en paralelo de una única consulta entre varios procesadores y discos, cuyo
objetivo es acelerar las consultas de ejecución prologada. Por tanto se puede hacer paralelas las
consultas haciendo paralelas las operaciones que las forman.
Por lo tanto el objetivo que se persigue es dividir la relación que interviene en la consulta
por medio de técnicas de división de relaciones, guardar dichas relaciones en discos que van a
ser gestionados cada uno de ellos por un procesador, a su vez, cada procesador ejecuta su
consulta local y cada uno de estos resultados parciales se unen para formar la respuesta a la
consulta.
Ya que las operaciones relacionales trabajan con relaciones que contienen grandes
conjuntos de tuplas, las operaciones se pueden paralelizar ejecutándolas sobre subconjuntos
diferentes de las relaciones en paralelo.
• Ordenación Paralela
• Reunión Paralela.
6|Página
Rendimiento 2008
Ordenación división de Rangos. Esta forma de división por rangos posee dos etapas
diferenciadas:
1. Redistribuir las tuplas de la relación utilizando una estrategia de división por rangos, de
manera que todas las tuplas que se hallen dentro del rango i-ésimo se envíen al
procesador Pi, que almacena temporalmente la relación en el disco Di. Para
implementar en paralelo la división por rangos cada procesador lee las tuplas de su
disco y las envía al procesador de destino. Cada procesador P0,P1…Pn también recibe
las tuplas correspondientes a su partición y las almacena localmente.
2. Cada uno de los procesadores ordena localmente su partición de la relación sin
interactuar con los demás. La operación final de mezcla es trivial ya que la división por
rangos de la primera etapa asegura que los valores de la clave del procesador Pi sean
menores que los procesador Pj
A su vez el paso en el que el sistema realiza la mezcla puede ser también paralelizado
mediante la siguiente secuencia de acciones.
7|Página
Rendimiento 2008
La operación reunión exige que el sistema compare pares de tuplas para ver si satisface la
condición de reunión, si la cumple añade el par al resultado de la reunión. Los algoritmos de
reunión paralela intentan repartir entre varios procesadores los pares que hay que comparar.
Cada procesador procesa luego localmente parte de la reunión. Después, el sistema reúne los
resultados de cada procesador para producir el resultado final.
Existe un problema por el cual no todas los tipos de reuniones pueden ser divididas por lo
que existen distintas formas de proceder que son:
• División por rangos de los atributos de reunión, en el que se debe usar el mismo vector
de división.
• División por asociación de los atributos de reunión, se debe usar la misma función de
asociación.
Una vez divididas las relaciones se pueden utilizar localmente cualquier técnica de reunión
en cada procesador Pi para calcular la reunión de ri y si.
1. El sistema divide una de las relaciones (por ejemplo s) mediante cualquier técnica de
división, incluida por turno rotatorio.
2. El sistema replica la otra relación r en todos los procesadores
3. El procesador Pi procesa localmente la reunión de ri con todos, utilizando cualquier
técnica de reunión.
8|Página
Rendimiento 2008
9|Página
Rendimiento 2008
10 | P á g i n a
Rendimiento 2008
fuente de paralelismo en el diseño de hardware. Esta forma de paralelismo se denomina parale-
lismo de encauzamiento.
El paralelismo encauzado resulta útil con un número pequeño de procesadores, pero no
puede extenderse bien:
1. En primer lugar, las cadenas del cauce no suelen lograr la longitud suficiente para
proporcionar un alto grado de paralelismo.
2. En segundo lugar, no es posible encauzar los operadores de relación que no producen
resultados hasta que se ha tenido acceso a todas las entradas, como la operación
diferencia de conjuntos.
3. En tercer lugar, sólo se obtiene una aceleración marginal en los casos frecuentes en que
el coste de ejecución de un operador es mucho mayor que los de los demás operadores.
Por consiguiente, cuando el grado de paralelismo es elevado, la importancia del
encauzamiento como fuente de paralelismo es secundaria respecto de la del paralelismo de
particiones. La razón fundamental para utilizar el encauzamiento es que las ejecuciones
encauzadas pueden evitar escribir en el disco los resultados intermedios.
Paralelismo independiente. Las operaciones en las expresiones de las consultas que son
independientes entre sí pueden ejecutarse en paralelo. Esta forma de paralelismo se denomina
paralelismo independiente.
Al igual que el paralelismo encauzado, el paralelismo independiente no proporciona un alto
grado de paralelismo y es menos útil en sistemas con un elevado nivel de paralelismo, aunque
resulta útil con un grado menor de paralelismo.
11 | P á g i n a
Rendimiento 2008
Cuando se manejan grandes volúmenes de datos (del orden de terabytes), las operaciones
sencillas, como la creación de índices, y los cambios en los esquemas, como añadir una
columna a una relación, pueden tardar mucho tiempo (quizás horas o incluso días). Por tanto, es
inaceptable que los sistemas de bases de datos no estén disponibles mientras se llevan a cabo
tales operaciones. Los sistemas paralelos de bases de datos permiten que tales operaciones se
lleven a cabo interactivamente, es decir, mientras el sistema ejecuta otras transacciones.
12 | P á g i n a
Rendimiento 2008
Grid es una tecnología que surgió como una nueva forma de computación distribuida. Ian
Foster y Carl Kesselman son considerados los padres de esta tecnología, introducida por ellos
en los años 90. Esta tecnología se basa en la utilización de recursos externos además de los
locales, logrando con ello una mayor disponibilidad de recursos para la realización de una tarea.
La tecnología estándar, o una de las más utilizadas en su comienzo al menos, es el Globus
Toolkit. El objetivo es permitir el uso de recursos libres de otras computadoras localizadas en
otro lugar geográfico y que no estén utilizando toda su potencia. De este modo alguien que no
disponga de la suficiente potencia o recursos en su lugar de trabajo, no se vera imposibilitado
para realizar la tarea deseada ya que podrá hacer uso de recursos ajenos.
Como consecuencia del uso de una red Grid, un usuario puede hacer uso de recursos
libres situados en los computadores que se encuentren dentro de esta red Grid, sin importar la
localización del mismo. De este modo, el usuario dispone de un computador ficticio con la
potencia, disco duro o memoria RAM necesitada.
Por otro lado, podemos decir que con Grid, no ponemos atención en los datos que se
transmiten en sí, como es el caso de los sistemas Cliente-Servidor sino que el punto de interés y
estudio son los recursos computacionales y el uso que se hace de ellos.
Otro avance de Grid es que genera un incremento de las posibilidades del uso de
internet ya que proporciona un incremento de su usabilidad. De este modo se obtiene una mayor
velocidad de procesamiento así como la facilidad de tener bases de datos de mayor tamaño.
GRID COMPUTING:
Es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de
recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos
a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la
cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores,
clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet).
Desarrollado en ámbitos científicos a principios de los años 90 su entrada al mercado comercial
siguiendo la idea de la llamada Utility Computing supone una revolución que dará mucho que
hablar.
13 | P á g i n a
Rendimiento 2008
• Capacidad de balanceo de sistemas: no habría necesidad de calcular la capacidad de los
sistemas en función de los picos de trabajo, ya que la capacidad se puede reasignar
desde la granja de recursos a donde se necesite;
• Alta disponibilidad. Con la nueva funcionalidad, si un servidor falla, se reasignan los
servicios en los servidores restantes;
• Reducción de costes: Con esta arquitectura los servicios son gestionados por "granjas de
recursos". Ya no es necesario disponer de "grandes servidores" y podremos hacer uso de
componentes de bajo coste.
2. GRID Middleware.
En las tecnologías Grid, además de tenerse en cuenta el hardware como son los
recursos, los dispositivos de almacenamiento y por supuesto la propia red Grid, es necesario un
soporte software que gestione todas las transferencias y el modo en que se realizan, asi como la
seguridad, todo esto resulta una tarea complicada y no exenta de posibles errores. Esto no
implica que la aparición de un error en un equipo y en una localización determinada, provoque
el error en toda la red.
Las Bases de Datos Grid nos proporcionan una visión uniforme de bases de datos
heterogéneas en los entornos Grid. Es decir, puesto que existen diversos tipos de bases de datos,
refiriéndonos con ellos a que éstas pueden ser relacionales, orientadas a objetos, en XML,
etcétera, nuestro sistema nos tiene que proporcionar la abstracción necesaria de los datos para
que el usuario no distinga entre si esta accediendo a una relacional o a una orientada a objetos,
ya que el usuario no le importa como se realice el trabajo, solo necesita que se haga y debe ser
el Grid middleware quien se ocupe de que se efectúe correctamente.
Por otro lado la especificación de los servicios de bases de datos deben ser ortogonales a
los mecanismos de autentificación y autorización de los sistemas Grid, lo que significa que las
bases de datos deben poseer sistemas de seguridad que identifiquen a un usuario del Grid y que
por tanto permitan o no su acceso.
Las propias bases de datos deben de ser transparentes al usuario, logrando así que este se
abstraiga de todo lo relacionado con el como se hace, donde o incluso que recursos o
almacenamiento esta siendo utilizado. Del mismo modo, no deberá preocuparse por la
administración de los recursos.
14 | P á g i n a
Rendimiento 2008
Para utilizar Base de Datos en el GRID, estas primeramente deben de cumplir una serie de
condiciones previas, como son las normas de seguridad en un GRID.
En los sistemas de bases de datos Grid los servicios ofrecidos deben estar, en la medida
de lo posible estandarizados, y decimos en la medida de lo posible ya que resulta imposible que
todos los servicios se estandaricen debido a la existencia de distintos tipos de bases de datos que
pueden existir en el sistema y que pueden estar usando lenguajes diferentes que no pueden ser
integrados en un único lenguaje debido a su naturaleza. De esta forma podemos aumentar la
15 | P á g i n a
Rendimiento 2008
portabilidad de dichos sistemas. Otra de las ventajas de estandarizar siempre es reducir el
esfuerzo de construcción del sistema.
Con lo mencionado anteriormente se hace imprescindible la presencia de los metadatos
en este tipo de sistemas. Con los metadatos lo que conseguimos es que cada sistema que se
conecta al Grid pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos
saber las operaciones que soporta cada uno.
El sistema gestor de bases de datos (SGBD) va a ser el encargado de saber que servicios
ofrece cada una de las bases de datos, que operaciones se pueden realizar sobre ellas y de
gestionar los permisos de acceso a cada una.
Los servicios que cada sistema debe tener disponibles dentro del Grid son los siguientes:
• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. Además,
cuando los usuarios del sistema soliciten un servicio no saben en que sistema está y
mediante los metadatos el se pueden construir dinámicamente las interfaces para
acceder a los distintos sistemas de bases de datos que forman parte del Grid.
• Manejo de consultas. Como hemos comentado más arriba los lenguajes pueden ser
diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el
lenguaje de consulta que soporta cada base de datos. También es importante que los
resultados de una consulta se puedan enviar a distintos destinos y que sean
comprensibles por éstos para poder construir sistemas más amplios y complejos.
• Transacciones. Estas operaciones son en las que interviene un único sistema de base de
datos y a su vez que cada sistema individual tome parte en las transacciones
distribuidas. La gran variedad de tipos de transacciones que maneja el sistema gestor de
base de datos de un sistema Grid, debido sobre todo a la heterogeneidad de los sistemas
individuales que lo componen, hace que el servicio deba poner claramente en
conocimiento del resto cual es el tipo de transacciones que soporta el sistema individual
de base de datos.
o Carga del sistema o carga de datos. Cuando tenemos grandes cantidades de taos
este tipo de servicio debe ser capaz de acceder a los protocolos de
comunicación del sistema Grid para llevar a cabo la transferencia de esos datos.
o Notificación. Sirve para notificar los cambios que se producen a los clientes que
deseen recibir esa información. Los clientes deben poder expresar si están
interesados en recibir las notificaciones cuando se inserten o se borren datos o
cuando se realicen actualizaciones o en caso de varias acciones como insertar y
actualizar. La forma más sencilla de que este servicio se ponga en
funcionamiento es que el sistema gestor de base de datos subyacente
proporcione la ayuda necesaria, por ejemplo mediante disparadores.
• Planificación. Se debe permitir por ejemplo que cuando un superordenador conecte con
un DBS, la información recuperada del DBS se pueda procesar por el superordenador.
El ancho de banda en la red que los conecta necesita ser reservada. Como el acceso
exclusivo a un DBS no es práctico, se requieren mecanismos con suficientes recursos
(discos, CPUs, memoria, red).
16 | P á g i n a
Rendimiento 2008
Las bases de datos alojadas en un sistema GRID van a heredar todas las características:
ventajas e inconvenientes del sistema al que pertenecen.
La Computación GRID está creada con el fin de ofrecer una solución a determinadas
cuestiones, como problemas que requieren de:
17 | P á g i n a
Rendimiento 2008
Por tanto se puede decir que un sistema GRID proporciona:
En los sistemas de bases de datos GRID los servicios ofrecidos deben estar, en la medida
de lo posible estandarizados ya que resulta imposible que todos los servicios se estandaricen
debido a la existencia de distintos tipos de bases de datos en el sistema GRID y que pueden
estar usando lenguajes diferentes que no pueden ser integrados en un único lenguaje. De esta
forma podemos aumentar la portabilidad de dichos sistemas. Otra de las ventajas de estandarizar
es reducir el esfuerzo de construcción del sistema.
Con lo mencionado anteriormente se hace imprescindible la presencia de los metadatos en
este tipo de sistemas. Con los metadatos lo que conseguimos es que cada sistema que se conecta
al GRID pueda comunicar al resto los servicios que ofrece. Del mismo modo podremos saber
las operaciones que soporta cada uno.
El sistema gestor de bases de datos (SGBD) va a ser el encargado de saber que servicios
ofrece cada una de las bases de datos, que operaciones se pueden realizar sobre ellas y de
gestionar los permisos de acceso a cada una.
Los servicios que cada sistema debe tener disponibles dentro del GRID son los siguientes:
• Metadatos. Nos dan la información sobre los servicios que ofrece el sistema. Además,
cuando los usuarios del sistema soliciten un servicio no saben en qué sistema está y
18 | P á g i n a
Rendimiento 2008
mediante los metadatos se pueden construir dinámicamente las interfaces para acceder a
los distintos sistemas de bases de datos que forman parte del GRID.
• Manejo de consultas. Como hemos comentado más arriba los lenguajes pueden ser
diferentes. Por eso en los metadatos se proporciona la información necesaria sobre el
lenguaje de consulta que soporta cada base de datos. También es importante que los
resultados de una consulta se puedan enviar a distintos destinos y que sean
comprensibles por éstos para poder construir sistemas más amplios y complejos.
• Transacciones. Estas operaciones son en las que interviene un único sistema de base de
datos y a su vez que cada sistema individual tome parte en las transacciones
distribuidas. La gran variedad de tipos de transacciones que maneja el sistema gestor de
base de datos de un sistema GRID, debido sobre todo a la heterogeneidad de los
sistemas individuales que lo componen, hace que el servicio deba poner claramente en
conocimiento del resto cual es el tipo de transacciones que soporta el sistema individual
de base de datos.
o Carga del sistema o carga de datos. Cuando tenemos grandes cantidades de taos
este tipo de servicio debe ser capaz de acceder a los protocolos de
comunicación del sistema GRID para llevar a cabo la transferencia de esos
datos.
o Notificación. Sirve para notificar los cambios que se producen a los clientes que
deseen recibir esa información. Los clientes deben poder expresar si están
interesados en recibir las notificaciones cuando se inserten o se borren datos o
cuando se realicen actualizaciones o en caso de varias acciones como insertar y
actualizar. La forma más sencilla de que este servicio se ponga en
funcionamiento es que el sistema gestor de base de datos subyacente
proporcione la ayuda necesaria, por ejemplo mediante disparadores.
• Planificación. Se debe permitir por ejemplo que cuando un superordenador conecte con
un sistema de base de datos, la información recuperada de ese sistema pueda ser
procesada por el superordenador. El ancho de banda en la red que los conecta necesita
ser reservada. Como el acceso exclusivo a un sistema de base de datos no es práctico, se
requieren mecanismos con suficientes recursos (discos, CPUs, memoria, red).
19 | P á g i n a
Rendimiento 2008
9.Bibliografía.
http://es.wikipedia.org/wiki/Grid_computing
http://www.catedravodafone.etsit.upm.es/formacion/seminarios/grid.html
http://seti.astroseti.org/setiathome/que.php
http://ciencia.astroseti.org/planetary/articulo.php?num=320
http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida#Grid
http://websearch.internet2.edu/query.html?Search.x=0&Search.y=0&qt=middleware&c
ol=i2sites&charset=iso-8859-1
http://wiki.dbgrid.org/index.php
http://www.gridpp.ac.uk/papers/DAISStatementSpec.pdf
SilBerschatz, Kort, Sudarshan Fundamentos de Base de Datos (4º y 5º Edición),
España, Mc Graw Hill, 2002 y 2007.
http://www.ayi-asociados.com/presentaciones/Grid_cast-B&N.pdf
(http://www.fdi.ucm.es/profesor/rubensm/Doctorado/Introduccion%20a%20la%20Segu
ridad%20en%20un%20GRID.pdf)
http://www.gae.unican.es/Top/Presentaciones/SC06/SemanadelaCiencia_UNICAN_v1.
ppt
http://indico.ifca.es/indico/getFile.py/access?contribId=9&resId=1&materialId=slides&
confId=75
http://www.error500.net/garbagecollector/archives/categorias/bases_de_datos/sistema_g
estor_de_base_de_datos_sgbd.php
http://psicosix.iespana.es/bd2/trabajo01.pdf
http://eu-datagrid.web.cern.ch/eu-datagrid/
DATABASES AND THE GRID. Watson, P.. University of Newcastle [2001]
WHAT IS THE GRID? A THREE POINT CHECKLIST. Foster, I., University of Chicago
[2002]
ORACLE DATABASE 10G: THE DATABASE FOR THE GRID. An Oracle White
Paper.Oracle [2003]
20 | P á g i n a