Bases de Datos Paralelas Carlos A. Olarte ([email protected]) BDII Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Contenido 1 Introducción 2 Paralelismo de I/O 3 Paralelismo entre Consultas 4 OPS Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Introducción Por qué tener bases de datos paralelas? Tipos de arquitecturas: Memoria Compartida Disco Compartido Sin Compartimento Jerárquica Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Paralelismo de I/O División de las relaciones en varios discos (particiones) Aumento de la velocidad en el acceso a los datos Técnicas de división Turno Rotatorio: Asignar la i-esima tupla al Disco i mod n. Asegura distribución homogénea División por Asociación: Definir una función F (a1 , ..an ) → Particion División por Rangos: Dado un atributo partirlo en rangos y cada rango se almacena en un disco. Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Comparación entre las técnicas de división Turno Rotatorio D. Asociación Exploración Completa Ok Ok D. Rangos Ok Carlos A. Olarte ([email protected]) BDII Consulta Concreta Deficiente Ok si coinciden con los atributos de F Ok si coinciden con el atributo de división Consulta Rangos Deficiente Deficiente Ok si coinciden con el atributo de división Bases de Datos Paralelas Sesgo La división entre los discos no es equitativa Clasificación: Sesgo de valores de los atributos: Un determinado valor para un atributo es mas frecuente que otro Sesgo de la división: Desequilibrio en la carga de la distribución aunque no haya sesgo en los atributos La operación mas larga en paralelo es la que determina el tiempo total de la operación Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Paralelismo entre Consultas Varias transacciones al tiempo 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) Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Paralelismo en Consultas Los conjuntos son parte constitutiva de las bases de datos y por tanto son susceptibles a ser paralelizables Se pueden hacer en paralelo cada uno de los nodos del árbol de operaciones. Puede presentare paralelismo en o entre operaciones Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Paralelismo en Operaciones Ordenamiento: Realizar una partición de los datos para cada procesador (depende del esquema de particionamiento utilizado). Hacer merge de cada una de las partes ordenadas Reunión: Por división: Solo para equireuniones y los atributos de reunión deben ser los mismos del particionamiento. Las dos relaciones deben particionarse con la misma función o rango. Cada procesador se encarga de seleccionar las tuplas que concuerdan Reunión con fragmentos y réplicas: Para reuniones con condiciones de desigualdad Se parte una de las relaciones y se replica la otra en cada procesador. La relación pequeña suele replicarse. En general, se pueden dividir ambas relaciones y construir una “matriz de procesadores” Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Continuación Por División Carlos A. Olarte ([email protected]) BDII Fragmentos y Réplicas Bases de Datos Paralelas Paralelismo en otras Operaciones Selección: Si la condición es una condición de particionamiento, cada procesador puede seleccionar algunas tuplas y luego reunirlas Eliminación de duplicados: Utilizar un ordenamiento paralelo y luego realizar la eliminación Agregación: Calcular resultados parciales y luego calcular el resultado total Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas 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 otra operación las reune Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas 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 Ti = Tinicio + max(op0 , ..., opn ) + Treunion Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas ORACLE PARALLEL SERVER Es un ambiente de computo robusto que permite que varios nodos (cluster) trabajen como un solo equipo.1 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 caı́da 1 Tomado de Oracle8i Parallel Server Concepts Real Application Cluster 9i Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Ventajas Mejoramiento del Throughput y la velocidad de procesamiento “Visualización” del cluster como si fuera una única máquina Escalabilidad: Adición de nuevos nodos para mejorar el desempeño Alta disponibilidad: Rápida recuperación ante fallos y redistribución de la carga para seguir funcionando Transparencia: Las aplicaciones “ve” el OPS como una única instancia de base de datos Manejo del Buffer de Cache: Control del cache de cada uno de los nodos sin perder las ventajas de los mismos Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas continuación... Escrituras diferidas: Solo escribe cuando: Los bloques en memoria ppal no se han utilizado frecuentemente o se termina el espacio Durante los puntos de chequeo Cuando otra instancia necesita dichos bloques Control multiversión de los datos por registro Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Arquitecturas de Hardware Paralelas Nodo: Equipo de computo con CPU, memoria, almacenamiento e intercomunicación. Uniform Memory Access: Todos los procesadores acceden a la memoria a la misma velocidad. (Symmetric Multi-Processing System) Non-Uniform Memory Access: El acceso a memoria tiene un costo dependiendo del nodo Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Tightly Coupled Shared Memory System Acceso a memoria menos costoso Mas sencillo que administrar que un cluster Capacidad limitada al ancho de banda del bus de memoria Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Acceso a Disco en Clusters Uniform Disk Access: o Acceso a disco compartido, el costo de acceso es igual para todos los nodos (granjas de discos) Los datos son compartidos y están disponibles ası́ un nodo falle Pueden crecer fácilmente Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas continuación... Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas continuación... Non-Uniform Disk Access: El costo de los accesos varı́a entre los nodos Los requerimientos de lectura pasan por una capa de software que se encarga del control Conocidos como sin-compartimento Ventaja: El número de nodos no está limitado Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas continuación... Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Tendencia La tendencia es disminuir el número de nodos del cluster , cada nodo con un potente sistema SMP y el acceso a disco compartido Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Arquitectura del OPS Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Cluster Manager Control de los miembros del cluster Visión global del cluster Provisto por otros proveedores Detecta fallas en los nodos y termina todos los procesos asociados al mismo (lo marca como inactivo) Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Node Monitor Informa el estado de los recursos de un nodo Informa al Oracle Server cuando se inician y apagan instancias de Oracle Detecta cambios en el estado de los nodos Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Distributed Lock Manager Mantener la consistencia de los datos que son accedidos simultáneamente. Transparencia: Las aplicaciones siguen utilizando los mismos mecanismos de bloqueo que para una arquitectura no paralela Cada nodo participa en el control de los candados y este componente tiene control sobre todos los candados Detecta Dead Locks Se apoya en el Cluster Manager para obtener información de los nodos. Si no obtiene la información necesaria, apaga la instancia (cada instancia debe preocuparse de las otras instancias para controlar el acceso a los recursos). Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Interconexión del Cluster IPC (Inter-Process Communication): Definición de interfaces y protocolos para el paso de mensajes Basado en un modelo ası́ncrono y por colas Los servicios de comunicación son implementados sobre estos Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Escalabilidad del OPS Aumento de la velocidad distribuyendo los procesos en los diferentes nodos Mas procesos por unidad de tiempo (throughput) Aumentar y disminuir el número de instancias de acuerdo al número de usuarios concurrentes sobre el sistema Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Medidas de la Eficiencia Scale-Up: Cuanto trabajo puede ser hecho en el mismo tiempo por un sistema mas potente Scale − Up = Vol Paralelo/Vol Original Speed-up: El sistema puede realizar la tarea en menos tiempo Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Aplicaciones apropiadas para el OPS Data Warehousing: Muchas consultas concurrentes y los bloques pueden residir en los buffers Departmentalized Application: Cada nodo puede tomar a cargo un departamento de la compañı́a (importante que las tablas a actualizar no sean comunes) Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas Niveles de Escalabilidad Escalabilidad de HW y RED: La interconexión entre los nodos es de vital importancia (latencia en el B.W. Y en el I/O) Escalabilidad del S.O: Manejo de la memoria compartida, sincronización y acceso a los recursos Escalabilidad del DBMS: El motor paraleliza las consultas o un agente externo Carlos A. Olarte ([email protected]) BDII Bases de Datos Paralelas