RSS

Base de Datos Grid

Saludos niños y niñas excusas por publicar  tan tarde, antes de hablar de bases de datos Grid es menester comenzar por lo que se conoce como tecnología Grid para poder entenderla, es un tema bastante polémico y del futuro, pues como saben estamos en la era de la información y aunque nos interesa bastante, es realmente complicado y difícil así que prepárense algo de comer y beber para sentarse con calma porque les va a tomar un buen rato.

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

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.

Para continuar deben saber que el Grid se lleva en multitud de proyectos que llevan su propio nombre en materia de desarrollo. Globus es quien gestiona esta tecnología la base de todo el asunto pero…

¿Qué es el Globus?

El Globus es proyecto de investigación y desarrollo enfocado a la aplicación de los conceptos del Grid, desarrolla software capaz de resolver dificultades técnicas que aparecen al tratar de implementar el Grid Computing.

Este esfuerzo a nivel de software ha dado como resultado el Globus Toolkit, un conjunto de servicios y librerías de software capaz de soportar aplicaciones tipo Grid que incluye software relacionado con seguridad, información y manejo de recursos e intercambio de datos;

El software de Globus es libre y está soportado por los sistemas operativos

Linux, Solaris, IRIX, AIX, HPUX, True64

Arquitectura del Globus

Se estructura en varias capas:

Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21
En el nivel de infraestructura es donde se encuentran los recursos computacionales, como son los ordenadores, los clusters, los supercomputadores, los sistemas de almacenamiento en red, las bases de datos, etc.

El nivel de conectividad incluye los protocolos de comunicación y seguridad que permiten a los recursos computacionales comunicarse. La seguridad es un punto muy importante de la computación en Grid por su propia naturaleza distribuida ya que se comparten recursos entre distintas organizaciones que pueden tener distintas políticas de seguridad.

La capa de recursos engloba todos los servicios que permiten gestionar un conjunto de recursos. Se encuentran los servicios de directorio, que permiten localizar los recursos que son de nuestro interés; los schedulers distribuidos, que permiten asignar las tareas a cada recurso, la monitorización y diagnóstico de la ejecución de las distintas tareas en que se distribuyen la ejecución de una aplicación; la contabilidad, que permite calcular el coste de la utilización de varios recursos heterogéneos, el acceso a datos distribuidos, etc.

El último nivel es el de aplicación donde se encuentran los protocolos que permiten a las aplicaciones el acceso a la infraestructura del Grid a través de las distintas capas. Según el tipo de aplicación será necesario conectarse a las distintas capas o acceder directamente a una de ellas e incluso a la de infraestructura.

Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21

Y resulta que para llegar hasta aquí tuvieron que tomar en cuenta los siguientes…

Considerandos en la tecnología Grid

Schedulers

El servicio de scheduler distribuido es una de las aplicaciones más complejas de un desarrollo Grid ya que existen tres scheduler distintos: el planificador de trabajos (Job Scheduler) que intenta maximizar la cantidad de trabajo realizado (trabajos por unidad de tiempo), el planificador de recursos que intenta maximizar el uso de los recursos y el planificador de la aplicación que divide la aplicación en tareas, asigna los recursos para su ejecución y vigila el desarrollo de los mismos.
scheduler animado

Nota: El planificador (o scheduler en inglés) es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución

La Capacidad de la CPU Paralela

El atributo común entre los distintos usos es que las aplicaciones se han escrito para usar algoritmos que pueden dividirse  independientemente en partes de ejecución.

Una aplicación de Grid intensiva de CPU puede pensarse como muchos sub-trabajos ejecutándose en una máquina diferente en el Grid. Si estos sub-trabajos no necesitan comunicarse con el otro, la aplicación se vuelva más escalable.

La primera barrera depende de los algoritmos usados para dividir la aplicación entre muchas CPU’s. La segunda barrera aparece si las partes no son completamente independientes; esto puede causar contención que puede limitar la escalabilidad.

Nota: Según la Wikipedia En telecomunicaciones y en ingeniería informática, la escalabilidad es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos. También se podría definir como la capacidad del sistema informático de cambiar su tamaño o configuración para adaptarse a las circunstancias cambiantes

Aprovechar los Recursos que no siempre se usan

La máquina en que la aplicación normalmente se ejecuta podría estar inusualmente ocupada debido a un pico inusual de actividad.

El trabajo en cuestión podría ejecutarse en otra parte en una máquina ociosa en el Grid.

Hay dos requisitos previos a considerar:

Primero, la aplicación debe ser ejecutable remotamente.

Segundo, la máquina remota debe encontrar cualquier hardware especial, Software o requerimientos de recursos impuestos por la aplicación.

Sheduling, Barrido y Reservación

El sistema de Grid es el responsable de enviar un trabajo a una máquina dada para ser ejecutado.

Los sheluders reaccionan a la disponibilidad actual de los recursos en el Grid.

En un scavengin (Barrido) de un sistema Grid cualquier máquina que se vuelve ociosa informaría su estado al nodo de administración del Grid.

Los recursos en el Grid pueden reservarse por adelantado para un conjunto de trabajos. Esto hace para reunir fechas topes y garantizar una calidad de servicio.

Balanceo de recursos:

Para aplicaciones habilitadas, el Grid puede ofrecer un efectivo balanceo de recursos mediante la planificación de trabajos de Grid, en máquinas con poca utilización. Esta facilidad puede mejorar invalorablemente el manejo de picos de carga de actividad en sectores de una organización más grande. Esto puede ocurrir de dos maneras:

– Un pico inesperado puede ser conducido a máquinas relativamente ociosas en el Grid.

– Si el Grid ya se utiliza totalmente, el trabajo de prioridad más baja que se realiza en el Grid debe ser suspendido temporalmente o incluso cancelado y realizado posteriormente para dejar lugar a un trabajo de prioridad mayor. Sin una infraestructura de Grid, tales decisiones de equilibrio serían difíciles de priorizar y ejecutar.

Confiabilidad:
Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21

Los sistemas en el Grid pueden ser relativamente baratos y geográficamente dispersos así si hay algún tipo de falla, no es probable que las otras partes del Grid sean afectadas.

El software de gestión del Grid puede automáticamente reenviar los trabajos a otras máquinas del Grid, cuando en una se descubre una falla.

En situaciones críticas de tiempo real, copias múltiples de trabajos importantes pueden ejecutarse en diferentes máquinas a través del Grid

Planificación de despliegue:

Una de las primeras consideraciones es el hardware disponible y como se conecta vía una LAN o una WAN.

La organización puede agregar hardware adicional para aumentar la capacidad del Grid.

Es primordial entender también como los departamentos de una organización interactúan, operan y contribuyen al todo. Otro aspecto importante es la autenticación del usuario

Un Grid ofrece la capacidad para la administración de la organización reaccionando más rápidamente, en cuanto a cambios de utilización de recursos, prioridades y política.

Adición de donantes y usuarios:

Usando un Grid, los trabajos que requieren este software son enviados a máquinas particulares en las cuales este software está instalado.

Un arreglo de licencia de software permite la instalación en todas las máquinas de un Grid pero puede limitar el número de instalaciones que pueden usarse simultáneamente en cualquier momento.

El software de administración de licencias registra cuántas copias coexistentes de éste están usándose y previene que se ejecute un número mayor en un tiempo dado.

La identidad de máquina se establece y registra con la información de autenticación pertinente.

El administrador del Grid debe estar de acuerdo con el administrador de la máquina donante sobre el ID’s de usuario, software, derechos de acceso, y cualquier restricción de política.

El administrador debe introducir la información de identificación de máquina, direcciones, y características de recurso usando el software apropiado para registrar la máquina donante del Grid.

En algunos casos, el administrador puede necesitar propagar esta información manualmente a otras máquinas en el Grid.

Los procedimientos para quitar usuarios y máquinas deben ser ejecutados por el administrador.

Observación, medición y progreso

Las estadísticas pueden mostrar tendencias que pueden señalar la necesidad de un hardware adicional.

También, la información de medición sobre trabajos específicos pueden ser recolectados y usarse para predecir mejor los requerimientos de recurso del trabajo que se ejecutará la próxima vez. Cuanto mejor sea la predicción más eficiente será el trabajo del Grid.

La información de medición también puede ser guardada con propósitos de contabilidad, para formar la base, la ejecución de un recurso de Grid , o para manejar las prioridades de forma más justa.

El usuario puede solicitar el sistema de Grid, para ver cómo su aplicación y sus sub-trabajos están progresando.

Cuando el número de sub-trabajos crece, se vuelve más difícil de listarlos a todos en una ventana gráfica.

En cambio puede haber simplemente un sólo gráfico grande de barra que puede mostrarlos. Un sistema de Grid, junto con su scheduler de trabajo, proporciona a menudo algún grado de recuperación para sub-trabajos que fallan.

Un trabajo puede fallar debido a un:

Error de Programación, Fallo de Hardware, Interrupción en las Comunicaciones y/o  Lentitud Excesiva

Los schedulers se diseñan a menudo para categorizar los fracasos del trabajo de alguna manera y automáticamente rehacer éstos para que ellos tengan éxito, mientras se ejecuten en otra parte del Grid.

En algunos sistemas, el usuario está informado sobre cualquier fracaso del trabajo y debe decidir si emitir una orden para intentar re-ejecutar los trabajos fallados.

Ok… -_- luego de todo eso ahora vamos con las experiencias al…

Usar un Grid

Perspectiva de usuario:
Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21
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.

Perspectiva de Administrador

Planeación

El administrador debe entender los requerimientos de la organización del Grid, para elegir mejor las tecnologías del Grid, que satisfagan esos requerimientos.

Instalación

Primero, el sistema de Grid seleccionado debe instalar un conjunto de máquinas apropiadamente configuradas (como por ejemplo con ancho de banda suficiente y con facilidad de recuperación en caso de fallos).

Cualquier base de datos crítica u otros datos esenciales para guardar la muestra de los trabajos, los miembros del Grid, y las máquinas, éstos deben tener posibilidad de backups.

En algunos sistemas de Grid, el software necesitará también el acceso principal a las máquinas donantes de recursos requeridas para instalar el software también en ellas.

Una vez que el Grid es operacional, pueden adherir software de aplicación y de datos en las máquinas donantes, como herramientas para ayudar con la administración de las licencias.

Perspectiva de Diseñador de Aplicaciones

Las aplicaciones de Grid pueden categorizarse en una de las siguientes tres categorías:

Aplicaciones que no se habilitan para usar los procesadores múltiples pero pueden ejecutarse en diferentes máquinas.

Aplicaciones que ya son diseñadas para usar los procesadores múltiples de un conjunto del Grid.

Aplicaciones que necesitan ser modificadas o rescritas para aprovecharse mejor un Grid.

Bases de datos Grid

¿Qué es una base de datos Grid?

Con todo lo anteriormente dicho,  podemos inferir que una base de datos grid es una base de datos de tipo distribuida que usa el Grid computing.

Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21

Ventajas: Las principales ventajas que nos brindan las BD GRID son las siguientes:

Proporciona un mecanismo de colaboración transparente entre grupos dispersos, tanto científicos como comerciales. Facilita el acceso a recursos distribuidos desde cualquier PC.

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.

Permite a las empresas acceder y compartir bases de datos remotas. Esto es de gran importancia en las empresas que se dedican a la investigación, en donde enormes cantidades de información son generadas y analizadas casi a diario. Tiende a incrementar la productividad otorgando a los usuarios finales acceso a los recursos de computación, datos y almacenamiento que necesiten, cuando los necesiten. Se aprovechan los ciclos de procesamiento inutilizados de ordenadores que se encuentran en diversas zonas geográficas.

Ejemplo: Ordenadores que normalmente se encuentran inutilizados por la noche en una compañía en Europa, podrían ser utilizados en el día por una sede de operaciones en América.

Image Hosted by ImageShack.us
By loudness1986 at 2012-03-21

Desventajas: Algunas de los problemas que tienen las bases de datos Grid son los siguientes:

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.

Problemas organizativos: los recursos pueden pertenecer a distintas organizaciones, y esto puede influir en cuestiones como el control de acceso, distintas políticas de gestión de los recursos, etc. Económicos: estos sistemas pueden resultar caros.

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

Recopilación por: Jacinto Parra

Fuentes:

Haz clic para acceder a Rendimiento.pdf

scribd.com

Haz clic para acceder a Grid.pdf

Haz clic para acceder a Gestion%20de%20Datos%20en%20el%20Grid.pdf

 
7 comentarios

Publicado por en marzo 24, 2012 en Uncategorized

 

Base de Datos Paralelas

Bases de Datos Paralelas.

 De forma general el concepto de paralelismo en las bases de datos lo podríamos definir como la partición de la base de datos (normalmente a nivel de relaciones) para poder procesar de forma paralela en distintos discos y con distintos procesadores una sola operación sobre la base de datos.

El paralelismo se usa para mejorar la velocidad en la ejecución de consultas. Además el paralelismo se usa para proporcionar dimensionabilidad ya que la creciente carga de trabajo se trata sin incrementar el tiempo de respuesta pero incrementando el grado de paralelismo.

Existen cuatro arquitecturas de sistemas paralelos:

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

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

1. SGBD paralelo

Un SGBD que 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:

  1. La productividad (throughput) que se entiende como el número de tareas que pueden completarse en un intervalo de tiempo determinado.
  2. El tiempo de respuesta (response time) que es la cantidad de tiempo que necesita para completar una única tarea a partir del momento en que se envíe. Un sistema que procese un gran número de pequeñas transacciones puede mejorar su productividad realizando muchas transacciones en paralelo. Un sistema que procese transacciones más largas puede mejorar tanto su productividad como sus tiempos de respuesta realizando en paralelo cada una de las subtareas de cada transacción.

2. Paralelismo de E/S

De forma general podemos hablar de paralelismo de E/S cuando hablamos de divisiones en las relaciones entre varios discos para reducir el tiempo necesario de su recuperación.

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

· Turno rotatorio: Se recorre la relación y la i-ésima tupla se envía al disco Di quedando una distribución homogénea de las tuplas en los discos.

· División por asociación: Se escogen varios atributos del esquema de la relación y se designan como atributos de división. Se escoge una función de asociación cuyo rango es {0,1,…,n-1}. Cada tupla de la relación original se asocia en términos de los atributos de división. Si la función de asociación devuelve i, la tupla de ubica en el disco DI.

· División por rangos: Se distribuye rangos contiguos de valores de los atributos a cada disco. Para ello se escoge un atributo de división, AD, como vector de división y la relación se divide de la siguiente manera:

o Sea [vo, v1, …, vn-2] el vector de división con i<j y vi<vj. Considérese una tupla t

tal que t[A]=x.

o Si x< vo entonces t se ubica en el disco Do.

o Si x≥vn-2 entonces t se ubica en el disco Dn-1.

o Si vi≤x < vi+1 entonces t se ubica en el disco DI+1

2.1. Comparativa entre técnicas de división

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

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

· Consultas concretas: Buscan tuplas con un determinado valor para un atributo concreto.

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

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

· Turno rotatorio: Se adapta bien a la exploración completa pero no es eficiente para consultas concretas y de rango ya que tiene que buscar en todos los discos.

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

· División por rangos: Se adapta bien a las consultas concretas y de rango basadas en el atributo de división. Para consultas concretas se debe analizar el vector de división para 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.

3. Paralelismo entre consultas

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

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

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

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

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

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

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

4. Paralelismo en consultas

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

· Paralelismo en operaciones. Se puede acelerar el procesamiento de las consulta haciendo paralela la ejecución de cada una de sus operaciones individuales ordenación, selección, proyección y reunión.

· Paralelismo entre Operaciones. Se puede acelerar el procesamiento de la consulta ejecutando en paralelo las diferentes operaciones de las expresiones de las consultas.

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

4.1. Paralelismo en operaciones

Ya que las operaciones relacionales trabajan con relaciones que contienen grandes conjuntos de tuplas, las operaciones se pueden paralelizar ejecutándolas sobre subconjuntos diferentes de las relaciones en paralelo. Según el tipo de operación se siguen distintos criterios en el tratamiento que son:

· Ordenación Paralela

· Reunión Paralela.

4.1.1. Ordenación Paralela.

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

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

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

2. Cada uno de los procesadores ordena localmente su partición de la relación sin interactuar con los demás. La operación final de mezcla es trivial ya que la división por rangos de la primera etapa asegura que los valores de la clave del procesador Pi sean menores que los procesador Pj

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

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

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

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

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

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

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

4.1.2. Reunión Paralela.

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

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

Reunión por División. Válida para reuniones de tipo equirreuniones y reuniones naturales, en la cual existen n procesadores y las relaciones que hay que reunir son r y s. La reunión por división funciona de esta forma:

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

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

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

1. El sistema divide una de las relaciones (por ejemplo s) mediante cualquier técnica de división, incluida por turno rotatorio.

2. El sistema replica la otra relación r en todos los procesadores

3. El procesador Pi procesa localmente la reunión de ri con todos, utilizando cualquier técnica de reunión.

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

5. Factores negativos de Paralelismo

Estos pueden atenuar tanto la ganancia de velocidad como la ampliabilidad:

  • Costes de inicio. El inicio de un único proceso lleva asociado un coste de inicio.
  • Interferencia. Como los procesos que se ejecutan en un sistema paralelo acceden con
    frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la esta.
  • Sesgo. Al dividir cada tarea en un cierto número de pasos paralelos se reduce el tamaño del paso medio. Normalmente es difícil dividir una tarea en partes exactamente iguales, entonces se dice que la forma de distribución de los tamaños es sesgada.

Referencias

http://alarcos.inf-cr.uclm.es/doc/bbddavanzadas/RENDIMIENTO.pdf

 

Material Subido por:

Pedro Oberto

 
4 comentarios

Publicado por en marzo 24, 2012 en Uncategorized