Feeds:
Entradas
Comentarios

BASE DE DATOS PARALELAS VS GRID

BASE DE DATOS PARALELAS:

Es un sistema de gestión de bases de datos, consiste en una colección de datos interrelacionados y un conjunto de programas que permiten a los usuarios acceder y modificar dichos datos. La colección de datos se denomina base de datos.

En la arquitectura de un sistema de base de datos se reflejan aspectos como la conexión en red sea en Base de datos Distribuidas como Base de datos Paralelas se ejecuta sobre múltiples procesadores y discos que han sido diseñados para ejecutar operaciones en paralelo, cuando sea posible, con el propósito de mejorar el rendimiento.

Los sistemas paralelos mejoran la velocidad de procesamiento y de e/s mediante la utilización de ucp y discos en paralelo. La fuerza que ha impulsado a los sistemas paralelos de bases de datos ha sido la demanda de aplicaciones que han de manejar bases de datos extremadamente grandes (del orden de terabytes, esto es, 1012 bytes) o que tienen que procesar un número enorme de transacciones por segundo (del orden de miles de transacciones por segundo).

Los sistemas paralelos de base de datos constan de varios procesadores y varios discos conectados a través de una red de interconexión de alta velocidad. Para medir el rendimiento de los sistemas de base de datos existen 2 medidas principales:

  • La productividad
  • El tiempo de respuesta

OBJETIVO DE UNA B.D. PARALELA:

 El objetivo del paralelismo en los sistemas de bases de datos suele ser asegurar que la ejecución del sistema continuará realizándose a una velocidad aceptable, incluso en el caso de que aumente el tamaño de la base de datos o el número de transacciones (ampliabilidad).

Se puede obtener una mejor idea observando el esquema de las bases de datos paralelas que se presenta en la Figura 2.2, la cual describe que una BDP se compone de una cantidad de nodos, cada uno de ellos cuenta con sus propios recursos como procesador, memoria y disco duro. La comunicación dentro de una BDP debe apoyarse en una red de interconexión veloz. De ahí la ventaja de utilizar un sistema multiprocesador como anfitrión de la BDP, pues éstos, normalmente se comunican a través de una red de interconexión interna y por ende muy veloz. En este último caso, es necesario analizar el subsistema de entradas y salidas para prevenir posibles cuellos de botella. El entorno paralelo de la Figura 2.2, representa un entorno con arquitectura nada compartido, cuya principal característica es que cada nodo dentro del entorno cuenta con sus propios recursos -cpu, memoria, discos duros-.

Figura 2.2

Por otro lado, existen también los entornos paralelos compartidos, en los cuales los recursos de memoria y almacenamiento son compartidos entre todos los nodos del entorno. Los entornos compartidos pueden ser parcialmente compartidos o todo compartido.

La implementación de bases de datos paralelas recae obviamente en las técnicas de bases de datos distribuidas. Sin embargo, los aspectos críticos de este enfoque son:

  • Fragmentación y ubicación de los datos. Su principal objetivo es incrementar el paralelismo.
  • Consultas en paralelo. Facilitar la mayor cantidad de consultas concurrentes a la base de datos y reducir el tiempo de respuesta.

Aspectos Importantes de los SBDP

Existen varios factores relacionados con la implementación de bases de datos paralelas que no se presentan en bases de datos centralizadas.

Entre los más importantes se encuentran los siguientes:

Diseño de la Base de Datos Paralela: En el diseño de bases de datos paralelas se debe considerar el problema de como distribuir la información entre los diferentes nodos de la BDP. Los dos aspectos a tratar en el diseño de la BDP son fragmentación y distribución

Procesamiento de Consultas: En el procesamiento de consultas en BDP se tiene que considerar el procesamiento de una consulta y además el costo involucrado en la transmisión de información entre los diferentes nodos para la obtención de los resultados de la consulta que se solicitó.

Control de Concurrencia: El control de concurrencia es la actividad de coordinar accesos concurrentes a la base de datos. Un aspecto interesante del control de concurrencia es el manejo de interbloqueos. El sistema no debe permitir que dos o más transacciones se bloqueen entre ellas.

Confiabilidad: En cualquier sistema de bases de datos, centralizado o paralelo, se deben ofrecer garantías de que la información es confiable. En sistemas paralelos, el manejo de la atomicidad y durabilidad de las transacciones es aún más complejo, pues una sola transacción puede involucrar dos o más fragmentos de la BDP.

Porque la Necesidad de Usar B.D Paralelas ??

            Actualmente los Sistemas Paralelos se están comercializando con éxito por prácticamente todos los fabricantes de BD. Tal cambio lo han impulsado las siguientes tendencias:

  • Los requisitos transaccionales de las empresas han aumentado, con el uso creciente de las computadoras.
  • El crecimiento de la WWW y los datos recogidos por los visitantes han producido BD extremadamente grandes en muchas empresas.
  • Las empresas utilizan volúmenes crecientes de datos para planificar sus actividades y sus tarifas.
  • Las consultas utilizadas para estos fines se denominan consultas de Ayuda a la Toma de Decisiones y las necesidades de datos para las mismas pueden llegar a los terabytes.
  • Los sistemas con un único procesador no son capaces de tratar volúmenes de datos tan grandes a la velocidad necesaria.
  • La naturaleza orientada a conjuntos de las consultas de BD se presta de manera natural a la paralelización.
  • Varios sistemas comerciales y de investigación han demostrado la potencia y dimensionalidad del procesamiento paralelo de consultas.
  • Con el abaratamiento de los microprocesadores, las máquinas paralelas se han vuelto comunes y relativamente baratas.
  • El paralelismo también se utiliza para proporcionar ampliabilidad, y las cargas de trabajo crecientes se tratan sin aumentar el tiempo de respuesta mediante un aumento en el grado de paralelismo.

ARQUITECTURA DE SBDP

  Modelos de arquitectura

  • Memoria compartida: Todos los procesadores comparten una memoria común.
  • Disco compartido: Todos los procesadores comparten un disco común.
  • Sin compartimiento: Los procesadores no comparten ni memoria ni disco.
  • Jerárquico: Es un híbrido de las anteriores.

 Arquitectura de un SBDP

 La mayoría de los sistemas de manejo de bases de datos actualmente disponibles se basan en la arquitectura ANSI-SPARC, la cual divide a un sistema en tres niveles: Interno, Conceptual y Externo.

La vista conceptual representa la visión que tiene la comunidad de usuarios de la base de datos. La vista externa permite a los usuarios ver sólo los datos de interés en la base de datos, proporcionando así una vista para las aplicaciones de los usuarios, las cuales pueden ser diferentes. El esquema interno a su vez, es el nivel de descripción más bajo de la base de datos y tiene que ver directamente con la organización física de los datos dentro de la computadora. Este esquema interactúa directamente con el sistema de archivos del sistema operativo. Los sistemas centralizados se apegan perfectamente a la arquitectura de la Figura 2.4, sin embargo en los SBDP, intervienen otros aspectos importantes los cuales se presentan en la Figura 2.5.

 

  Figura 2.5. Arquitectura de un SBDP

El esquema de fragmentación describe la forma en que las relaciones se fragmentan entre los distintos nodos de la BDP, y el esquema de asignamiento  especifica, la ubicación de cada uno de los fragmentos de la base de datos.

De acuerdo con la Figura 2.5, un usuario ejecuta su consulta sobre el esquema global de la base datos. El SBDP determina en que fragmento de la BDP se encuentra la información utilizando la información del esquema de fragmentación. El SBDP toma entonces la consulta y con la información del esquema de fragmentación, reconstruye la consulta de manera que pueda ser ejecutada ya no sobre el esquema global, sino sobre el fragmento. El siguiente paso, es determinar en que nodo del entorno se encuentra la información, y para ésto, el SBDP se apoya del esquema de asignamiento, esto le permite al SBDP indicarle a los nodos con fragmentos involucrados en la consulta, que ejecuten la consulta reconstruida. Una vez que llega la consulta al esquema local de cada fragmento, la consulta es procesada como una consulta centralizada.

Paralelismo de E/S

De forma general podemos hablar de paralelismo de E/S cuando hablamos de divisiones en las relaciones entre varios discos para reducir el tiempo necesario de su recuperación. Suponiendo que tenemos n discos (D0,D1,…,Dn- entre los que se van a dividir los datos, existen varias estrategias de división:

  • Turno Rotatorio.
  • División por Asociación.
  • División por Rangos.

 Comparativa entre Técnicas de División

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

  • Exploración de la Relación Completa.
  • Consultas Concretas.
  • Consultas de Rango.

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

  • Turno Rotatorio.
  • División por Asociación.
  • División por Rangos.

Paralelismo entre consultas

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

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

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

Los protocolos de este tipo de sistemas de disco compartido son los siguientes:

Antes de cualquier acceso de lectura o escritura de una página, la transacción la bloquea en modo compartido o excluso, según corresponda. Inmediatamente después de obtener el bloqueo compartido o exclusivo de la página, la transacción lee también su copia mas reciente del disco compartido.

Antes de que una transacción libere el bloqueo exclusivo de una página, la traslada al disco compartido, posteriormente libera el bloqueo.

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

  Paralelismo en Consultas

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

Existen dos maneras de ejecutar en paralelo una sola consulta:

  • Paralelismo en operaciones.
  • Paralelismo entre Operaciones

 Ordenación Paralela

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

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

  1. Redistribuir las tuplas de la relación utilizando una estrategia de división por rangos, de manera que todas las tuplas que se hallen dentro del rango i-ésimo se envíen al procesador Pi, que almacena temporalmente la relación en el disco Di. Para implementar en paralelo la división por rangos cada procesador lee las tuplas de su disco y las envía al procesador de destino. Cada procesador P0,P1…Pn también recibe las tuplas correspondientes a su partición y las almacena localmente.
  1. 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 P

Ordenación y Mezcla Externa Paralela: Este tipo de ordenación es una alternativa a la efectuada por la división por rangos. Las etapas que se definen una vez que la relación se ha divida entre los diferentes discos D1,D2…Dn-a son las siguientes:

  1. Cada procesador Pi ordena localmente los datos del disco Di
  1. El sistema mezcla las partes ordenadas por cada procesador para obtener el resultado ordenado final.

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

1. El sistema divide en rangos las particiones ordenadas encada procesador Pi entre los procesadores P0,P1…Pn-1. Envía las tuplas de acuerdo con el orden establecido por lo que cada procesador recibe las tuplas en corrientes ordenadas.

2. Cada procesador Pi, realiza una mezcla de las corrientes según las recibe para obtener una sola parte ordenada.

3. Las partes ordenadas de los procesadores P0,P1… Pn-1 se concatenan para obtener el resultado final.

Reunión Paralela

La operación reunión exige que el sistema compare pares de tuplas para ver si satisface la condición de reunión, si la cumple añade el par al resultado de la reunión. Los algoritmos de reunión paralela intentan repartir entre varios procesadores los pares que hay que comparar.

Cada procesador procesa luego localmente parte de la reunión. Después, el sistema reúne los resultados de cada procesador para producir el resultado final.

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

  • Reunión por División.
  • Reunión con Fragmentos y Replicas.
  • Reunión por Asociación Dividida en Paralelo.

 

                  Por División                                   Fragmentos y Réplicas

                                                                              Asociación Dividida en Paralelo


 

Fragmentación

Una de las técnicas preferidas para la solución de los problemas es dividirlo en partes. Así mismo, uno de los principales problemas en bases de datos grandes, es el enorme espacio de búsqueda para la información de manera que se satisfagan las consultas que se soliciten. La fragmentación ayuda a resolver este problema al dividir la base de datos en fragmentos tales que, permitan segmentar el enorme espacio de búsqueda de la base de datos original. Esto permite reducir los tiempos de respuesta a los usuarios, debido a que una base de datos fragmentada  permite realizar búsquedas en paralelo.

¿Cómo debe fragmentarse una base de datos?, ¿Cuál es la unidad razonable de distribución?, se puede considerar que una relación completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de las relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas por lo siguiente: normalmente una base de datos es enorme debido a que existen muchas instancias de las relaciones, esto ocasiona que existan tablas con gran cantidad de registros, con lo cual al asignar cada fragmento a procesadores diferentes se puede promover la manipulación concurrente de la información..

Por otro lado el uso de sub-relaciones también presenta inconvenientes; por ejemplo, las aplicaciones que no queden definidas sobre un solo fragmento necesitarán un procesamiento adicional a fin de localizar todos los fragmentos de una vista.

Alternativas de Fragmentación

Esencialmente, las relaciones son mapeadas a tablas, por lo tanto, es necesario encontrar  alternativas para dividir una tabla en tablas más pequeñas. Se pueden distinguir claramente dos alternativas: dividirlas horizontalmente, o dividirlas verticalmente.

Existen tres reglas que deben aplicarse durante la fragmentación, las cuales en conjunto, aseguran que la base de datos no experimente cambios de ninguna índole durante la fragmentación.

  • Completitud.
  • Reconstrucción.
  • Disjunción.

 Existe una clase especial de Fragmentación Horizontal, llamada fragmentación horizontal derivada, la cual fragmenta una relación miembro de un enlace con base a la fragmentación de su relación propietario, La fragmentación de la relación propietario se realiza a través de una operación de selección. De esta manera, dado un enlace L donde propietario(L) = S y miembro(L) = R, los fragmentos horizontales derivados se definen por: Ri = R n Si, 1 _ i _ w, donde w es el número máximo de fragmentos que serán definidos sobre R y Si = _Fi(S), donde Fi es la fórmula definida por la fragmentación horizontal principal.

 Fragmentación Vertical

El objetivo de la fragmentación vertical es particionar una relación en un conjunto más pequeño de relaciones de tal forma que muchas de las aplicaciones de los usuarios trabajen solamente con algún fragmento (Figura 2.8). En este contexto, una fragmentación “óptima” es aquella que produzca un esquema de fragmentación que minimice el tiempo de ejecución de las aplicaciones de usuario que trabajan con esos fragmentos.

Figura 2.5: Arquitectura de un SBDP

Fragmentación horizontal.    

                          Figura 2.8: Fragmentación vertical

Existen dos tipos de enfoques heurísticos para la fragmentación vertical de relaciones globales:

1. Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso unir algunos fragmentos hasta que se satisfaga algún criterio.

2. Particionando. Inicia con una relación y decide sobre particionamientos beneficiosos basándose en el comportamiento de los accesos a los atributos que realizan las aplicaciones.

Ubicación de los Datos

La ubicación de los datos en una BDP es similar a la fragmentación de las bases de datos distribuidas. Una similitud muy obvia es fragmentar la base de datos para incrementar el paralelismo, ya sea utilizando fragmentación horizontal o vertical. Otra similitud es que debido a que la cantidad de datos es mayor que el tamaño de los programas, los programas deben ser ejecutados en la computadora donde residen los programas. Sin embargo existen dos diferencias muy importantes con el enfoque de bases de datos distribuidas. Primero, no existe la necesidad de maximizar el procesamiento local, debido a que los usuarios no están ligados a un nodo específico; segundo, el balance de carga es más difícil de lograr cuando existen muchos nodos. El principal problema es prevenir la contención del recurso, lo cual puede dar al traste con todo el sistema -por ejemplo: un nodo puede terminar por realizar todo el trabajo, mientras que otros se mantienen desocupados-. Debido a que los programas se ejecutan en el lugar donde residen los datos, la ubicación de éstos es un aspecto crítico en el desempeño. Una alternativa para la ubicación de los datos consiste en realizar un particionado completo de la base de datos, intentando que cada relación se fragmente de manera horizontal a través de todos los nodos en el sistema. Existen 3 estrategias básicas de ubicación de datos.

  • En round-robin.
  • Por Dispersión.
  • Por Intervalo.

  Estrategias Basicas de Ubicacion

 Procesamiento de Consultas

En el procesamiento de consultas dentro de un entorno paralelo se involucran los mismos aspectos que en un entorno centralizado con el costo de comunicación como componente adicional. Una consulta normalmente se expresa en alguna variante del cálculo relacional, normalmente se utiliza el lenguaje SQL ya que éste es un lenguaje estandarizado para consultas a bases de datos.

El procesamiento de consultas inicia con la descomposición de la consulta en SQL, en una consulta equivalente que se expresa en cálculo relacional, generando así un árbol de operadores del álgebra relacional, el cual en sí, representa un plan de ejecución de la consulta. Para una consulta determinada, pueden existir varios árboles de operadores equivalentes en cuanto a que producen el mismo resultado. Durante esta transformación, el procesador de consultas debe evaluar las diferentes estrategias (árboles) obtenidas y seleccionar aquella que minimice los costos de ejecución de la consulta.

En un esquema paralelo se realiza el mismo procedimiento que se realiza en un esquema  centralizado, pero además, se debe evaluar también el costo asociado con las comunicaciones de la red del entorno paralelo. Por lo cual, un procesador de consultas paralelo debe evaluar cuestiones como la cantidad de datos a transferir por la red y la velocidad de la misma. Al final debe obtener una estrategia de ejecución para la consulta que por un lado distribuya el trabajo a realizar en una consulta global mediante la generación de consultas locales y, por otro lado, minimice preferentemente el costo de comunicación, ya que éste, representa un mayor costo que todos los asociados en el modelo de costos presentado en la sección 2.4.2. La Figura 2.10, muestra la descomposición de una consulta

 

Arquitectura del Procesamiento de Consultas

El problema del procesamiento de consultas puede por sí mismo ser descompuesto en  sub-problemas cada uno correspondiendo a uno de cuatro niveles diferentes para abordar el problema. Los cuatro niveles en conjunto, tienen la responsabilidad de mapear una consulta a una base de datos paralela en una secuencia optimizada de operaciones locales.

Los primeros tres niveles se ejecutan en un nodo utilizando información global, mientras que el último nivel, se procesa en cada nodo. Los niveles son:

 

Descomposición de Consulta:

El primer nivel descompone una consulta expresada en cálculo relacional, en una consulta expresada en álgebra relacional que opera sobre relaciones globales. El nivel de descomposición de consultas comprende cuatro pasos:

  • Normalización.
  • Análisis semántico.
  • Simplificación.
  • Restructuración.

Localización de los Datos.

El objetivo de este nivel es localizar los datos de la consulta utilizando información acerca de la ubicación de los datos. Aquí se determina cuáles fragmentos se involucran en la consulta, y transforma la consulta paralela en una consulta sobre fragmentos. En este nivel, es posible auxiliarse de información adicional de la base de datos, por ejemplo un directorio global de los datos puede ayudar bastante.

 Optimización Global

En este nivel la estrategia de ejecución se describe con operadores del álgebra relacional y primitiva de comunicación como operaciones de envío y recepción para transferir información entre los diferentes nodos del entorno paralelo.

También aquí es posible utilizar paralelismo intra-operador 1 para incrementar la concurrencia de la consulta en paralelo, o bien, utilizar paralelismo inter-operador 2 para ejecutar los operadores en cadenas del tipo productor – consumidor.

 Optimización Local

En este nivel se realiza la optimización de las sub-consultas que se ejecutan de manera local en cada uno de los nodos. Esta optimización se realiza en todos los nodos donde residen fragmentos que son involucrados en la consulta. La optimización local utiliza los mismos algoritmos utilizados en sistemas centralizados.

La principal función del procesador de consultas relacionales es transformar la consulta de alto nivel típicamente expresada en cálculo relacional, en una consulta de bajo nivel equivalente, normalmente en alguna variación del álgebra relacional.

La consulta en bajo nivel realmente implementa una estrategia de ejecución para la consulta. La transformación de alto nivel a bajo nivel debe ser correcta y eficiente. Una consulta en cálculo relacional puede tener muchas transformaciones en álgebra relacional equivalentes, y debido a que la ejecución de cada estrategia equivalente puede conducir a diferentes consumos de recursos, entonces la principal dificultad radica en seleccionar la estrategia de ejecución que minimice el consumo de recursos. A diferencia de un sistema centralizado, en un sistema paralelo, el álgebra relacional no es suficiente para expresar las estrategias de ejecución. Debe complementarse con operaciones para el intercambio de datos entre los diferentes nodos que componen el sistema. Además de determinar las operaciones del álgebra relacional, el procesador de consultas paralelo debe también seleccionar los mejores nodos para procesar los datos y posiblemente la manera en que deben ser transformados.

Esto incrementa el espacio de soluciones de donde se debe seleccionar una estrategia para la ejecución paralela de la consulta.

El objetivo final del procesamiento de consultas en un contexto paralelo, es transformar una consulta de alto nivel para una base de datos paralela, la cual es vista como una base de datos sencilla por los usuarios, en una estrategia de ejecución eficiente expresada en un lenguaje de bajo nivel sobre bases de datos locales.

 Optimización de Consultas

La optimización de consultas en paralelo se refiere al proceso de producir un plan de ejecución para una consulta determinada que minimice la función de costo objetiva. El plan de ejecución seleccionado es el mejor de un conjunto de planes examinados por el optimizador, pero no es necesariamente el más objetivo de todos los planes posibles.

Un optimizador de consultas se muestra generalmente con tres componentes:

  • Un espacio de búsqueda:
  • Modelo de costos
  • Una estrategia de búsqueda.

 Procesamiento de Datos en Paralelo

La ejecución de una consulta en paralelo, implica que se lance una consulta en cada uno de los nodos que conforman el entorno paralelo, provocando con esto que en cada uno de los nodos exista un conjunto de resultados; los cuales al final, de alguna manera deben ser unidos en el resultado final de la consulta. De lo anterior se desprende la necesidad de contar con una forma de procesar los datos obtenidos en cada uno de los nodos. Se distinguen dos estrategias principales para el tratamiento de los mismos.

 Estrategias de Procesamiento

Las aplicaciones de bases de datos, sean del tipo que sean, requieren de procesar los resultados obtenidos de las consultas, es decir, normalmente no sólo van a recuperar los datos y mostrarlos, sino que realizan algún proceso con ellos. Por lo tanto, para realizar el procesamiento de datos, se puede aplicar una estrategia de las mostradas en la Figura 2.14. Donde A y B son los nodos que forman el entorno paralelo; al ejecutarse una consulta en cada nodo, se obtiene un conjunto de datos en cada uno de ellos, por lo tanto y de acuerdo a lo antes mencionado, estos datos deben ser procesados utilizando la estrategia 1 o 2 de la Figura 2.14.

Figura 2.14: Estrategias De Procesamiento

La estrategia 1 consiste en mover el conjunto de datos más pequeño al nodo con el conjunto de datos más grande y realizar ahí el procesamiento de los datos. Esto involucra menos transferencias de datos a través de la red, disminuyendo así el componente Tcomm de la ecuación 2.1.

La segunda estrategia, involucra que los conjuntos de datos de ambos nodos, sea transmitido a otro nodo, el cual será el res ponsable de realizar el procesamiento de los datos. Este enfoque libera a los dos nodos del procesamiento de los datos, permitiendo que los nodos puedan realizar alguna otra acción.

BASE DE DATOS GRID:

 Es una tecnología innovadora que permite utilizar de forma coordinada diversos recursos del computador entre ellos capacidad de cómputo, súper computadoras, portátiles, móviles, software, datos e información distribuidos de forma geográfica y conectados mediante redes WAN (red de área extensa) como por ejemplo el internet

Usar 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. El grid no sólo se trata de compartir ciclos de CPU para realizar cálculos complejos sino que se busca la creación de una infraestructura distribuida.

El Grid computing :se enmarca dentro de la tecnología de computación distribuida englobando conceptos como sistemas operativos distribuidos, programación multiprocesador, redes de ordenadores, computación paralela, redes de computadoras, seguridad, bases de datos, etc.

No sólo se trata de compartir ciclos de cpu para realizar cálculos complejos sino que se busca la creación de una infraestructura distribuida.

Los Posibles Campos de Aplicación Podrían Ser:

 Supercomputación distribuida: simulaciones, herramientas de cálculo numérico, procesos de análisis de datos, extracción de conocimientos de almacenes de datos, etc.

  • Sistemas distribuidos en tiempo real: medicina (tratamiento de imagen para visión artificial).
  • Proceso intensivo de datos: gestores de bases de datos distribuidos.
  • Servicios puntuales: este tipo de aplicaciones son aquellas que permiten acceder a hardware específico para la realización de labores a distancia.
  • Entornos virtuales de colaboración: tele inmersión.
  • Al conectar e instalar el software del grid: un usuario se conecta (autenticarse con propósito de seguridad) primero como un usuario de grid, e instala el software en su propia máquina.

Una vez el usuario y/o la máquina se autentican, el software del grid se proporciona al usuario para instalar en su máquina con propósitos de usar el grid, así como servir a éste. El usuario también puede que necesite informar al administrador que id`s de usuario son suyos en otras máquinas que existen en el grid.

Objetivo

Es compartir una serie de recursos en la red de manera uniforme, segura, transparente, eficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración.

¿Qué es y para qué sirve el grid computing?

Un grid computacional es una infraestructura hardware y software que suministra al que lo utiliza:

1. Acceso seguro a todos los niveles: capacidad de cómputo, de integridad de datos, de seguridad de acceso, etc.

2. El servicio debe ser consistente, basado en estándares y de esta manera el acceso y las operaciones sobre el grid estarán definidos por dichos estándares evitando la heterogeneidad.

3. La idea de penetración no es tanto la posibilidad de acceder a cualquier recurso del grid sino que una vez conectado desde cualquier punto puede extraer de éste toda la potencia que requiera.

4. Por último el acceso y el uso del grid debe tener un coste económico que le haga atractivo para que su utilización se universalice.

 Ventajas

  • Proporciona un mecanismo de colaboración transparente entre grupos dispersos.
  • Facilita el acceso a recursos distribuidos desde cualquier pc.
  • Nunca queda obsoleta.
  • Permite a las empresas acceder y compartir bases de datos remotas.

Desventajas:

  • Heterogeneidad:

Debe poder manejar recursos de cualquier tipo.

  • Comunicación lenta y no uniforme:

Al acceder a recursos que están situados en otros puntos, la conexión puede resultar más lenta que con otros sistemas de bases de datos.

Los principales objetivos que debe cumplir una Base de Datos Grid son:

  • Atomicidad:

Asegura que la transacción se ejecuta como una operación única, de tal forma que se realiza o no la operación, pero nunca se quedara a medias.

  • Aislamiento:

Todas las transacciones concurrentes deben ver el mismo estado consistente de la base de datos, aislándose de los resultados intermedios inconsistentes que se puedan producir

  • Durabilidad:

Asegura que una vez que una transacción se ha ejecutado, sus efectos son permanentes en la base de datos.

 Evolución de la base de Datos Grid

Las bases de datos relacionales no tuvieron en un principio muy buena acogida en grid pero: Se fueron introduciendo en el campo del meta data, por ejemplo, spitfiredel wp2 de eu data grid.

El paso al modelo tipo web services facilitará su integración ya que es un campo más conocido para el desarrollo de aplicaciones que usan bases de datos.

Las grandes empresas de software (de bases de datos) están dando pasos para adaptarse al grid. Oracleha denominado a la última versión de su sgbd oracle10g.

Usos de Bases de Batos en Grid

  • Datos de las aplicaciones
  • Por ahora no son muy usadas para los datos en si.
  • Generalmente se usan ficheros planos.
  • Metadatade las aplicaciones

Acceso a Bases de Datos en Grid

  • Un acceso grida bases de datos debería ser posible usando la grid security infrastructure (gsi).
  • Gsi está basado en el uso de claves públicas encriptados, certificadosx.509, ssl…
  • Por ahora las bases de datos no admiten el acceso directo a las mismas usando tecnologías grid(autentificación con certificados, etc.) ¿oracle10g?

Integración de Base de Datos en un Sistema Grid

En los sistemas de bases de datos grid los servicios ofrecidos deben estar, en la medida de lo posible estandarizados, y decimos en la medida de lo posible ya que resulta imposible que todos los servicios se estandaricen debido a la existencia de distintos tipos de bases de datos que pueden existir en el sistema y que pueden estar usando lenguajes diferentes que no pueden ser integrados en un único lenguaje debido a su naturaleza. De esta forma podemos aumentar la portabilidad de  ichos 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 qué 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 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.

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.

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

 Ventajas e inconvenientes de las Base de Datos en un Sistema Grid

  • Las bases de datos alojadas en un sistema grid van a heredar todas las características: Ventajas e inconvenientes del sistema al que pertenecen.
  • La computación grid está creada con el fin de ofrecer una solución a determinadas cuestiones, como problemas que requieren de: Un gran número de ciclos de procesamiento, Un acceso a una gran cantidad de datos.

 Las principales Ventajas de un Sistema Grid son:

  • Nunca queda obsoleta, ya que se integran diferentes tipos de máquinas y de recursos y todos los recursos se aprovechan. Si se renuevan todas las pcs de una oficina, se pueden incorporar las antiguas y las nuevas.
  • Facilita la posibilidad de compartir, acceder y gestionar información, mediante la colaboración y la flexibilidad operacional, aunando no sólo recursos tecnológicos dispares, sino también personas y aptitudes diversas.

 

El paralelismo puede estar visto como un problema, ya que una máquina paralela es muy costosa. Pero, si tenemos disponibilidad de un conjunto de máquinas heterogéneas de pequeño o mediano porte, cuya potencia computacional sumada sea considerable, eso permitiría generar sistemas distribuidos de muy bajo coste y gran potencia computacional.

 Por tanto se puede decir que un sistema grid proporciona:

  • Una forma transparente de ejecutar el trabajo que se desea.
  • Encuentra los recursos (maquinas) disponibles.
  • Asegura un acceso optimizado a los datos (incluyendo copias locales/ cache…).
  • Además, si es posible monitoriza el trabajo.

Los principales Inconvenientes de un Sistema Grid son:

necesita para mantener su estructura, de diferentes servicios como internet, conexiones de 24 horas, los 365 días, con banda ancha, servidores de capacidad, seguridad informática, vpn, firewalls, encriptación, comunicaciones seguras, políticas de seguridad, normas iso, y algunas características más…

Referencias

http://alarcos.inf-cr.uclm.es/doc/bbddavanzadas/RENDIMIENTO.pdf
http://macine.epublish.cl/tesis/index-3_3_.html
http://atlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases/BDParalelas.pdf
http://ciencia.astroseti.org/planetary/articulo.php?num=32 Silberschatz,
Fundamentos de Base de Datos (4º y 5º Edición), España, Mc Graw Hill, 2002 y 2007
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://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://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]
http://es.scribd.com/doc/26369362/Base-de-Datos-Grid-y-Paralelas2