• No se han encontrado resultados

Capitulo 7 Base de datos paralelas

N/A
N/A
Protected

Academic year: 2020

Share "Capitulo 7 Base de datos paralelas"

Copied!
36
0
0

Texto completo

(1)

Base de Datos Paralelas

Base de Datos Paralelas

(2)

Base de datos paralelas

Base de datos paralelas

Arquitecturas en bases de datos

Paralelismo en las bases de datos

Paralelismo de E/S

Paralelismo entre consultas

Paralelismo en consultas

Paralelismo en operaciones

Paralelismo entre operaciones

(3)

Arquitecturas paralelas de bases de datos

Arquitecturas paralelas de bases de datos

Existen varios modelos de arquitectura

para las máquinas paralelas.

Memoria Compartida.

Todos los

procesadores comparten una memoria

común.

P

(4)

Arquitecturas paralelas de bases de

Arquitecturas paralelas de bases de

datos (cont.)

datos (cont.)

Disco Compartido. Todos los procesadores

comparten un conjunto de discos común. Algunas veces los sistemas de disco compartido se

denominan agrupaciones o clusters.

(5)

Arquitecturas paralelas de bases de

Arquitecturas paralelas de bases de

datos (cont.)

datos (cont.)

Sin compartimiento.

Los procesadores no

comparten ni memoria ni disco duro.

P P P P P P P P M M M M M M M M P

(6)

Arquitecturas paralelas de bases de datos (cont.)

Arquitecturas paralelas de bases de datos (cont.)

Jerárquico. Este modelo es un híbrido de las arquitecturas anteriores.

P

P PP PP PP MEMORIAMEMORIA

P

P PP PP PP MEMORIAMEMORIA

P

(7)

Paralelismo en las bases de datos

Paralelismo en las bases de datos

 Los sistemas paralelos son factibles de ser

implementados

 Los precios de las computadoras vienen bajando cada vez.

 PC de escritorio tienen múltiples procesadores para acelerar las tareas de computo.

 En muchas empresas las bases de datos son

enormes

 Volúmenes enormes de transacciones de datos son

coleccionados y almacenados para su posterior análisis.  Necesidad de almacenar objetos multimedia.

 Se esta incrementando el uso de sistemas de bases

de datos paralelos a gran escala.

 Almacenamiento de extensos volúmenes de datos

(8)

Paralelismo en las bases de datos (cont.)

Paralelismo en las bases de datos (cont.)

 Los datos pueden ser particionados sobre múltiples discos para la E/S paralela

 Operaciones relacionales individuales (Ejemplo: ordenamiento, uniones, agregación) puede ser ejecutado en paralelo.

 Los datos pueden ser particionados y cada procesador

puede trabajar independientemente sobre su propia partición.

 Las consultas son expresados en un lenguaje de alto nivel (SQL)

 Facilidad para crear paralelismo

(9)

Paralelismo de E/S

Paralelismo de E/S

 Se refiere a la partición de las relaciones sobre múltiples

discos para reducir el tiempo necesario de su recuperación.

 La forma mas habitual de particionado de datos en un entorno

de base de datos paralelas es el particionado horizontal.

En la partición horizontal, las tuplas de cada relación se

(10)

Técnicas de particionado

Técnicas de particionado

 Sea D1, D2, D3, . .. . . Dn (numero de discos = n)

Turno rotatorio (Round robin):

 La i-ésima tupla se envía al disco numerado Diski mod n

 Asegura la distribución homogénea

Partición por asociación (Dispersión):

 Escoge uno o mas atributos como atributos de la partición.

 Escoge una función asociación cuyo rango sea 0…..n-1

 Cada tupla de la relación original se asocia en términos de los

atributos de la partición. Si la función de asociación devuelve i, la tupla se ubica en el disco Di.

(11)

Técnicas de particionado (Continua)

Técnicas de particionado (Continua)

Partición por rangos (Intervalos):

 Dado un atributo partirlo en rangos y cada rango

se almacena en un disco.

 Utiliza un vector de división para expresar los

rangos

 Ejemplo: un vector de partición [5,11], una tupla

con valor 2 en el atributo de partición se ira al disco 0, una tupla con valor 8 ira al disco 1,

(12)

Figuras de particionados

(13)

Comparación de técnicas de partición

Comparación de técnicas de partición

 Evaluar como las técnicas de particiones soportan los siguientes tipos de acceso a datos:

1. Exploración de la relación completa.

2. Localización de tuplas de manera asociativa – consultas

concretas.

 Ejemplo: nombre_empleado= “Garcia”.

3. Localización de todas las tuplas cuyo valor de un atributo

(14)

Comparación de técnicas de partición (Cont.)

Comparación de técnicas de partición (Cont.)

Exploración

Completa ConsultaConcreta ConsultaRangos

Turno

Rotatorio Eficiente Ineficiente Ineficiente

Partición por

Asociación Eficiente Eficiente si coinciden con los

atributos de la partición

Ineficiente

Partición por

Rangos Eficiente Eficiente si coincide con el

atributo de la partición

(15)

Comparación de técnicas de partición (Cont.)

Comparación de técnicas de partición (Cont.)

 Turno rotatorio:

 Es mejor en las aplicaciones que desean leer

secuencialmente la relación completa en cada consulta.

 Todos los discos tienen un numero igual de

tuplas, el trabajo es balanceado.

 Con este esquema tanto las consultas concretas

(16)

Comparación de técnicas de partición (Cont.)

Comparación de técnicas de partición (Cont.)

 Partición por asociación:

 Es mejor en acceso secuencial

 Si la función de asociación es una buena función aleatoria y los

atributos de partición constituyen una clave de la relación, el numero de tuplas en cada disco es aproximadamente el mismo. Entonces, el tiempo empleado para explorar la relación es

aproximadamente 1/n del necesario para explorar la relación en un sistema de disco único.

 No se adapta bien a las consultas concretas en términos de

atributos que no sean de la partición.

 No resulta adecuada para las respuestas a consultas de

(17)

Comparación de técnicas de partición (Cont.)

Comparación de técnicas de partición (Cont.)

 Particiones por rango:

 Buenas para el acceso secuencial

 Es bueno para consultas concretas sobre los atributos de

partición; solo se necesita acceder a un solo disco.

 Para consultas de rango sobre los atributos de partición, uno o

(18)

Crear particiones en la relación a través de los discos

Crear particiones en la relación a través de los discos

 Si una relación contiene pocas tuplas que pueden caber en un bloque de disco, entonces, asignar a la relación un solo disco.

 Las relaciones grandes se particionan

(19)

Tratamiento del sesgo

Tratamiento del sesgo

 La distribución de tuplas al particionar una relación

puede estar sesgada, con un porcentaje alto de tuplas ubicado en algunas particiones y porcentajes

menores en otras.

Tipos de sesgos:

Sesgo de los valores de atributo.

 Un determinado valor para un atributo es mas frecuente que otro.

Sesgo de la partición.

 Se refiere al hecho de que puede haber un desequilibrio de

carga en la partición, aunque no haya sesgo en los atributos.

(20)

Sesgo de partición

Sesgo de partición

 Un sesgo pequeño puede dar lugar a una disminución significativa del

rendimiento.

 El sesgo se transforma en un problema creciente al aumentar el grado de

paralelismo.

 Por ejemplo: Si una relación de 1 000 tuplas se divide en 10 partes y la división está sesgada, puede haber algunas particiones de tamaño menor que 100 y otras de tamaño mayor que 100.

 Incluso se puede dar la casualidad de que una partición tenga el tamaño de 200.

 Teniendo una aceleración, al tener acceso en paralelo a las particiones, de sólo 5, en lugar del valor de 10 que se cabría esperar.

 Se esperaba una aceleración de 10 veces más rápido que haciéndolo en un solo disco; pero debido al sesgo (con 200 tuplas, se tiene 1000/200 = 5) sólo se obtiene una

aceleración de 5.

 Si la misma relación, con las 1 000 tuplas, tiene que dividirse en 100 partes, las particiones tendrán de media 10 tuplas.

 Si una partición llega a tener hasta 40 tuplas (lo que es posible dado el gran número de particiones) la aceleración que se obtendría al tener acceso a ellas en paralelo sería de 25 (1000/40 = 25), en vez de 100.

(21)

Manejo de sesgo en particiones de rango

Manejo de sesgo en particiones de rango

 Se puede crear un vector de división por rangos

equilibrado:

 La relación primero se ordena según los atributos de la partición

 Se explora la relación de forma ordenada

 Se lee cada 1/n de la relación (n nº de particiones que hay que

crear)

 Se añade el valor del atributo de división de la siguiente tupla al

vector de la partición.

 El principal inconveniente es la sobrecarga de E/S

debida a la ordenación inicial.

 Para minimizar, la sobrecarga una alternativa a este

problema es creando una tabla de frecuencias, o

(22)

 Se puede reducir creando y almacenando una tabla de

frecuencias o histograma, de los valores de los atributos para todos los atributos de cada relación.

 Resulta sencillo crear una función de partición por rangos

equilibrados dado un histograma de los atributos de la partición.

Manejo del sesgo utilizando Histogramas

(23)

Manejo del sesgo empleando

Manejo del sesgo empleando

procesadores virtuales

procesadores virtuales

 En el enfoque de procesadores virtuales se simula que el numero de procesadores virtuales es múltiplo del numero de procesadores reales.

 Se asignan las tuplas a los virtuales y estos a los reales mediante una partición por turno rotatorio.  La asignación por turno rotatorio de los

procesadores virtuales a procesadores reales distribuirá el trabajo adicional entre varios

(24)

Paralelismo entre consultas

Paralelismo entre consultas

 Se ejecutan en paralelo entre sí diferentes consultas o

transacciones.

 El tiempo de una transacción es el mismo pero se

incrementa la productividad (throughput)

 Consideraciones de implementación:

Coherencia del cache

 Evitar que dos procesadores modifiquen al tiempo un

mismo dato (Protocolos de Bloqueo)

 Los sistemas con arquitectura paralela también deben

(25)

Protocolo de la coherencia de cache

Protocolo de la coherencia de cache

 Ejemplo de un protocolo de coherencia de cache para un sistema de disco compartido:

 Antes de cualquier acceso de lectura o escritura a una pagina, la transacción la bloquea en modo compartido o exclusivo, 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 la transacción libere el bloqueo exclusivo de una página, la traslada al disco compartido; posteriormente libera el bloqueo

(26)

Paralelismo en consultas

Paralelismo en consultas

 Ejecución en paralelo de una única consulta en varios

procesadores y discos; importante para acelerar las consultas de ejecución prolongada.

 Dos maneras de ejecutar en paralelo una sola consulta:

Paralelismo en operaciones – se puede acelerar el

procesamiento de la 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 – Ejecutando en paralelo las

diferentes operaciones de las expresiones de las consultas.

 Dado que el numero de operaciones de una consulta típica es

(27)

Paralelismo en operaciones

Paralelismo en operaciones

 Nuestra discusión de algoritmos paralelos asume:

Consultas de solo lectura

 Arquitecturas sin compartimiento

n procesadores, P0, ..., Pn-1, y n discos D0, ..., Dn-1, donde el disco

Di es asociado con el procesador Pi.

 Si un procesador tiene múltiples discos, esto se puede

simplificar simulando todos los discos como un solo disco Di.

 En arquitecturas sin compartimiento puede ser eficiente la

simulación de sistemas de memoria y disco compartido.

 Algoritmos para sistemas no compartidos pueden así ejecutarse

sobre sistemas de memoria y disco compartido.

(28)

Ordenación paralela

Ordenación paralela

 Si la ordenación se particiona en rangos basándose en los atributos por los que se va a ordenar se

puede ordenar cada partición por separado y

concatenar. Si se ha particionado siguiendo algún otro método:

 Se puede dividir en rangos de acuerdo con los atributos de

ordenación y luego ordenar cada partición por separado

 Se puede utilizar una versión paralela del algoritmo externo

(29)

Ordenación con partición por rangos

Ordenación con partición por rangos

1. Se redistribuyen las tuplas de la relación utilizando

una estrategia de división por rangos

2. Cada uno de los procesadores ordena localmente

su partición sin interactuar con los demás

procesadores. Cada procesador ejecuta la misma operación sobre un conjunto de datos diferente

(30)

Ordenación y mezclas externas paralelas

Ordenación y mezclas externas paralelas

Suponemos que la relación ya se ha

particionado en

n

discos:

 Cada procesador Pi ordena localmente los datos del disco

Di

 El sistema mezcla las partes ordenadas por cada

procesador para obtener el resultado ordenado final. Esta mezcla puede paralelizarse mediante esta secuencia:

 El sistema divide en rangos las particiones ordenadas en cada

procesador Pi entre los procesadores P0, ….,Pm‐1. Envía las tuplas de acuerdo con el orden establecido, por lo que cada procesador recibe las tuplas en corrientes ordenadas.

 Cada procesador Pi Realiza una mezcla de las corrientes según las

recibe para obtener una sola parte ordenada

 Las partes ordenadas de los procesadores P0,…Pm‐1 se concatenan

(31)

Reunión paralela

Reunión paralela

La operación reunión exige que el sistema

compare pares de tuplas para ver si

satisfacen la condición de reunión, si se

cumplen, añaden el par al resultado de la

reunión. Los algoritmo de reunión paralela

intentan repartir entre varios procesadores

los pares que hay que comparar, cada

procesador procesa localmente parte de la

reunión y luego el sistema reúne los

(32)

Reunión paralela(Cont.)

(33)

Paralelismo entre operaciones

Paralelismo entre operaciones

Paralelismo de encauzamiento:

 Una operación consume el resultado de otra

 No siempre es útil pues una operación puede

requerir la totalidad de las tuplas y no bastarle resultados parciales

 No siempre las operaciones son tan largas para

esperar

Paralelismo Independiente:

 Cada operación se realiza por separado y luego

(34)

Tiempo de ejecución en Paralelo

Tiempo de ejecución en Paralelo

Problemas del Paralelismo:

Sesgo

Cuello de botella en los recursos

Costo de reunión y de inicio

Tiempo de ejecución

(35)

Diseño de sistemas paralelos

Diseño de sistemas paralelos

La carga de datos en paralelo desde fuentes

externas es un requisito importante si se van

a tratar grandes volúmenes de datos

entrantes.

Un gran sistema paralelo de bases de datos

debe abordar también los siguientes

aspectos de disponibilidad:

 El poder de recuperación frente al fallo de algunos

procesadores o discos

 La reorganización interactiva de los datos y los cambios de

(36)

Oracle parallel server

Oracle parallel server

 Es un ambiente de computo robusto que permite que varios nodos (cluster) trabajen como un solo equipo.

 Todos los nodos pueden ejecutar transacciones al mismo tiempo sobre la base de datos

 Se encarga de mantener la consistencia y la

integridad en los datos sin importar la concurrencia de las transacciones

 Es un componente importante para los sistemas que requieren tolerancia a fallos y un corto tiempo de

Referencias

Documento similar

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

De acuerdo con Harold Bloom en The Anxiety of Influence (1973), el Libro de buen amor reescribe (y modifica) el Pamphihis, pero el Pamphilus era también una reescritura y

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la