Capitulo 7 Base de Datos Paralelas

download Capitulo 7 Base de Datos Paralelas

of 36

Transcript of Capitulo 7 Base de Datos Paralelas

  • Base de Datos ParalelasIng. Hernn Nina Hanco

  • Base de datos paralelasArquitecturas en bases de datosParalelismo en las bases de datosParalelismo de E/SParalelismo entre consultasParalelismo en consultasParalelismo en operacionesParalelismo entre operacionesDiseo de sistemas paralelo

  • Arquitecturas paralelas de bases de datosExisten varios modelos de arquitectura para las mquinas paralelas.Memoria Compartida. Todos los procesadores comparten una memoria comn.

  • Arquitecturas paralelas de bases de datos (cont.)Disco Compartido. Todos los procesadores comparten un conjunto de discos comn. Algunas veces los sistemas de disco compartido se denominan agrupaciones o clusters.

  • Arquitecturas paralelas de bases de datos (cont.)Sin compartimiento. Los procesadores no comparten ni memoria ni disco duro.

  • Arquitecturas paralelas de bases de datos (cont.)Jerrquico. Este modelo es un hbrido de las arquitecturas anteriores.

  • Paralelismo en las bases de datosLos sistemas paralelos son factibles de ser implementadosLos precios de las computadoras vienen bajando cada vez.PC de escritorio tienen mltiples procesadores para acelerar las tareas de computo.En muchas empresas las bases de datos son enormesVolmenes enormes de transacciones de datos son coleccionados y almacenados para su posterior anlisis.Necesidad de almacenar objetos multimedia.Se esta incrementando el uso de sistemas de bases de datos paralelos a gran escala.Almacenamiento de extensos volmenes de datosEl procesamiento rpido de consultas y transacciones, para la ayuda a la toma de decisiones

  • Paralelismo en las bases de datos (cont.)Los datos pueden ser particionados sobre mltiples discos para la E/S paralelaOperaciones relacionales individuales (Ejemplo: ordenamiento, uniones, agregacin) puede ser ejecutado en paralelo.Los datos pueden ser particionados y cada procesador puede trabajar independientemente sobre su propia particin.Las consultas son expresados en un lenguaje de alto nivel (SQL)Facilidad para crear paralelismoDiferentes consultas pueden ser ejecutadas en paralelo.

  • Paralelismo de E/SSe refiere a la particin de las relaciones sobre mltiples discos para reducir el tiempo necesario de su recuperacin.La forma mas habitual de particionado de datos en un entorno de base de datos paralelas es el particionado horizontal. En la particin horizontal, las tuplas de cada relacin se dividen(o desagrupan) entre varios disco, de modo que cada tupla resida en uno distinto.

  • Tcnicas de particionadoSea D1, D2, D3, . .. . . Dn (numero de discos = n)Turno rotatorio (Round robin): La i-sima tupla se enva al disco numerado Diski mod nAsegura la distribucin homogneaParticin por asociacin (Dispersin): Escoge uno o mas atributos como atributos de la particin.Escoge una funcin asociacin cuyo rango sea 0..n-1 Cada tupla de la relacin original se asocia en trminos de los atributos de la particin. Si la funcin de asociacin devuelve i, la tupla se ubica en el disco Di.f(a1, ..an) Particin

  • Tcnicas de particionado (Continua)Particin por rangos (Intervalos): Dado un atributo partirlo en rangos y cada rango se almacena en un disco.Utiliza un vector de divisin para expresar los rangosEjemplo: un vector de particin [5,11], una tupla con valor 2 en el atributo de particin se ira al disco 0, una tupla con valor 8 ira al disco 1, mientras que la tupla con valor 20 ira al disco 2

  • Figuras de particionados

  • Comparacin de tcnicas de particinEvaluar como las tcnicas de particiones soportan los siguientes tipos de acceso a datos:Exploracin de la relacin completa.Localizacin de tuplas de manera asociativa consultas concretas.Ejemplo: nombre_empleado= Garcia.Localizacin de todas las tuplas cuyo valor de un atributo se halle en un rango especificado Consultas de rango.Ejemplo: 10000 sueldo < 20000.

  • Comparacin de tcnicas de particin (Cont.)

    ExploracinCompletaConsultaConcretaConsultaRangosTurno RotatorioEficienteIneficienteIneficienteParticin por AsociacinEficienteEficiente si coinciden con los atributos de la particinIneficienteParticin por RangosEficienteEficiente si coincide con el atributo de la particinEficiente si coincide con el atributo de la particin

  • Comparacin de tcnicas de particin (Cont.)Turno rotatorio:Es mejor en las aplicaciones que desean leer secuencialmente la relacin completa en cada consulta.Todos los discos tienen un numero igual de tuplas, el trabajo es balanceado.Con este esquema tanto las consultas concretas como las de rango son difciles de procesar, ya que se deben emplear bsquedas en todos y cada uno de los n discos.

  • Comparacin de tcnicas de particin (Cont.)Particin por asociacin:Es mejor en acceso secuencialSi la funcin de asociacin es una buena funcin aleatoria y los atributos de particin constituyen una clave de la relacin, el numero de tuplas en cada disco es aproximadamente el mismo. Entonces, el tiempo empleado para explorar la relacin es aproximadamente 1/n del necesario para explorar la relacin en un sistema de disco nico.No se adapta bien a las consultas concretas en trminos de atributos que no sean de la particin.No resulta adecuada para las respuestas a consultas de rangos, por que hace falta explorar todos los discos.

  • Comparacin de tcnicas de particin (Cont.)Particiones por rango:Buenas para el acceso secuencialEs bueno para consultas concretas sobre los atributos de particin; solo se necesita acceder a un solo disco. Para consultas de rango sobre los atributos de particin, uno o pocos discos pueden necesitar tener acceso.

  • Crear particiones en la relacin a travs de los discosSi una relacin contiene pocas tuplas que pueden caber en un bloque de disco, entonces, asignar a la relacin un solo disco.Las relaciones grandes se particionan preferiblemente entre todos los discos disponibles

  • Tratamiento del sesgoLa distribucin de tuplas al particionar una relacin 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 particin.Se refiere al hecho de que puede haber un desequilibrio de carga en la particin, aunque no haya sesgo en los atributos.La operacin mas larga en paralelo es la que determina el tiempo total de la operacin

  • Sesgo de particin Un sesgo pequeo puede dar lugar a una disminucin significativa del rendimiento.El sesgo se transforma en un problema creciente al aumentar el grado de paralelismo.Por ejemplo: Si una relacin de 1 000 tuplas se divide en 10 partes y la divisin est sesgada, puede haber algunas particiones de tamao menor que 100 y otras de tamao mayor que 100.Incluso se puede dar la casualidad de que una particin tenga el tamao de 200.Teniendo una aceleracin, al tener acceso en paralelo a las particiones, de slo 5, en lugar del valor de 10 que se cabra esperar.Se esperaba una aceleracin de 10 veces ms rpido que hacindolo en un solo disco; pero debido al sesgo (con 200 tuplas, se tiene 1000/200 = 5) slo se obtiene una aceleracin de 5.Si la misma relacin, con las 1 000 tuplas, tiene que dividirse en 100 partes, las particiones tendrn de media 10 tuplas.Si una particin llega a tener hasta 40 tuplas (lo que es posible dado el gran nmero de particiones) la aceleracin que se obtendra al tener acceso a ellas en paralelo sera de 25 (1000/40 = 25), en vez de 100.Por lo tanto, se puede ver que la prdida de aceleracin debido al sesgo aumenta con el paralelismo.

  • Manejo de sesgo en particiones de rangoSe puede crear un vector de divisin por rangos equilibrado:La relacin primero se ordena segn los atributos de la particin Se explora la relacin de forma ordenadaSe lee cada 1/n de la relacin (n n de particiones que hay que crear)Se aade el valor del atributo de divisin de la siguiente tupla al vector de la particin.El principal inconveniente es la sobrecarga de E/S debida a la ordenacin inicial.Para minimizar, la sobrecarga una alternativa a este problema es creando una tabla de frecuencias, o histogramas.

  • Se puede reducir creando y almacenando una tabla de frecuencias o histograma, de los valores de los atributos para todos los atributos de cada relacin.Resulta sencillo crear una funcin de particin por rangos equilibrados dado un histograma de los atributos de la particin.Manejo del sesgo utilizando Histogramas

  • Manejo del sesgo empleando procesadores virtualesEn el enfoque de procesadores virtuales se simula que el numero de procesadores virtuales es mltiplo del numero de procesadores reales. Se asignan las tuplas a los virtuales y estos a los reales mediante una particin por turno rotatorio.La asignacin por turno rotatorio de los procesadores virtuales a procesadores reales distribuir el trabajo adicional entre varios procesadores reales, de forma que ningn procesador tuviera que asumir toda la carga.

  • Paralelismo entre consultasSe ejecutan en paralelo entre s diferentes consultas o transacciones.El tiempo de una transaccin es el mismo pero se incrementa la productividad (throughput)Consideraciones de implementacin:Coherencia del cacheEvitar que dos procesadores modifiquen al tiempo un mismo dato (Protocolos de Bloqueo)Los sistemas con arquitectura paralela tambin deben asegurar que dos procesadores no actualicen simultneamente los mismos datos de manera independiente.

  • Protocolo de la coherencia de cacheEjemplo 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 transaccin la bloquea en modo compartido o exclusivo, segn corresponda. Inmediatamente despus de obtener el bloqueo compartido o exclusivo de la pgina, la transaccin lee tambin su copia mas reciente del disco compartido.Antes de que la transaccin libere el bloqueo exclusivo de una pgina, la traslada al disco compartido; posteriormente libera el bloqueoOtros protocolos mas complejos evitan la lectura y escritura reiteradas de disco exigidas por el protocolo anterior.

  • Paralelismo en consultasEjecucin en paralelo de una nica consulta en varios procesadores y discos; importante para acelerar las consultas de ejecucin prolongada.Dos maneras de ejecutar en paralelo una sola consulta:Paralelismo en operaciones se puede acelerar el procesamiento de la consulta haciendo paralela la ejecucin de cada una de sus operaciones individuales ordenacin, seleccin, proyeccin, y reunin.Paralelismo entre operaciones Ejecutando en paralelo las diferentes operaciones de las expresiones de las consultas.Dado que el numero de operaciones de una consulta tpica es pequeo comparado con el nmero de tuplas procesado por cada operacin, La primera modalidad puede adaptarse mejor a un aumento de paralelismo.

  • Paralelismo en operacionesNuestra discusin de algoritmos paralelos asume:Consultas de solo lecturaArquitecturas sin compartimienton procesadores, P0, ..., Pn-1, y n discos D0, ..., Dn-1, donde el disco Di es asociado con el procesador Pi.Si un procesador tiene mltiples discos, esto se puede simplificar simulando todos los discos como un solo disco Di.En arquitecturas sin compartimiento puede ser eficiente la simulacin de sistemas de memoria y disco compartido. Algoritmos para sistemas no compartidos pueden as ejecutarse sobre sistemas de memoria y disco compartido.Si embargo pueden realizarse algunas optimizaciones

  • Ordenacin paralelaSi la ordenacin se particiona en rangos basndose en los atributos por los que se va a ordenar se puede ordenar cada particin por separado y concatenar. Si se ha particionado siguiendo algn otro mtodo:Se puede dividir en rangos de acuerdo con los atributos de ordenacin y luego ordenar cada particin por separadoSe puede utilizar una versin paralela del algoritmo externo de ordenacinmezcla

  • Ordenacin con particin por rangosSe redistribuyen las tuplas de la relacin utilizando una estrategia de divisin por rangosCada uno de los procesadores ordena localmente su particin sin interactuar con los dems procesadores. Cada procesador ejecuta la misma operacin sobre un conjunto de datos diferenteLa operacin de mezcla final es trivial. Se ha de emplear un buen vector de particin por rangos.

  • Ordenacin y mezclas externas paralelasSuponemos que la relacin ya se ha particionado en n discos:Cada procesador Pi ordena localmente los datos del disco DiEl 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, .,Pm1. Enva 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 segn las recibe para obtener una sola parte ordenadaLas partes ordenadas de los procesadores P0,Pm1 se concatenan para obtener el resultado final.

  • Reunin paralelaLa operacin reunin exige que el sistema compare pares de tuplas para ver si satisfacen la condicin de reunin, si se cumplen, aaden el par al resultado de la reunin. Los algoritmo de reunin paralela intentan repartir entre varios procesadores los pares que hay que comparar, cada procesador procesa localmente parte de la reunin y luego el sistema rene los resultados para producir el resultado final

  • Reunin paralela(Cont.)

  • Paralelismo entre operacionesParalelismo de encauzamiento:Una operacin consume el resultado de otraNo siempre es til pues una operacin puede requerir la totalidad de las tuplas y no bastarle resultados parcialesNo siempre las operaciones son tan largas para esperarParalelismo Independiente:Cada operacin se realiza por separado y luego otra operacin las rene

  • Tiempo de ejecucin en ParaleloProblemas del Paralelismo:SesgoCuello de botella en los recursosCosto de reunin y de inicioTiempo de ejecucinTi = Tinicio + max(op0, ..., opn) + Treunion

  • Diseo de sistemas paralelosLa carga de datos en paralelo desde fuentes externas es un requisito importante si se van a tratar grandes volmenes de datos entrantes.Un gran sistema paralelo de bases de datos debe abordar tambin los siguientes aspectos de disponibilidad:El poder de recuperacin frente al fallo de algunos procesadores o discosLa reorganizacin interactiva de los datos y los cambios de los esquemas.

  • Oracle parallel serverEs 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 datosSe encarga de mantener la consistencia y la integridad en los datos sin importar la concurrencia de las transaccionesEs un componente importante para los sistemas que requieren tolerancia a fallos y un corto tiempo de cada