Bases de Datos Distribuidas Carlos A. Olarte ([email protected]) BDII Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Contenido 1 Introducción 2 Fragmentación de Datos 3 Transparencia de Red 4 Transacciones Distribuidas 5 Control de Concurrencia Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Introducción Por que distribuir los datos? Ventajas frente a un sistema centralizado Problemas de los datos distribuidos Aplicaciones Ejemplo Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Cómo almacenar los datos? Replicación: Copias idénticas de la relación en varios emplazamientos Fragmentación: División de los datos en varios emplazamientos Esquema mixto: Fragmentar las relaciones y crear réplicas de los fragmentos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Replicación Ventajas: Disponibilidad: Tolerancia a fallos Aumento del paralelismo: Cada emplazamiento puede realizar consultas sobre su réplica de datos Desventajas: Sobrecarga en las actualizaciones: Mantenimiento de la consistencia Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Fragmentación de Datos Los fragmentos deben poder reunirse para formar la relación original Esquemas de fragmentación: Horizontal Vertical Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Fragmentación Horizontal Placa ABC123 BDE498 RTE164 RTW452 Marca MAZDA MAZDA CHEVR. RENAULT Ciudad CALI PALMIRA CALI PALMIRA Placa ABC123 RTE164 Marca MAZDA CHEVR. Ciudad CALI CALI Placa BDE498 RTW452 Marca MAZDA RENAULT Ciudad PALMIRA PALMIRA ri = σθi (r ) S r = i ri Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Fragmentación Vertical Id 1 2 3 4 Placa ABC123 BDE498 RTE164 RTW452 Marca MAZDA MAZDA CHEVR. RENAULT Ciudad CALI PALMIRA CALI PALMIRA Id 1 2 3 4 Placa ABC123 BDE498 RTE164 RTW452 Marca MAZDA MAZDA CHEVR. RENAULT Id 1 2 3 4 Marca ABC123 BDE498 RTE164 RTW452 Ciudad CALI PALMIRA CALI PALMIRA Sea r (R) una relación. S R = i Ri ri = πRi (r ) r = r1 ./ r2 ./ ... ./ rn Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Esquemas Mixtos Fragmentación Mixta: Aplicación de la fragmentación horizontal y vertical sobre una misma relación Replica y fragmentación: Replicar fragmentos o fragmentar réplicas Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Transparencia de Red Los usuarios deben ignorar los detalles de la distribución de los elementos de datos Aspectos a tener en cuenta: Nombrado Réplicas Fragmentación Ubicación de los fragmentos y réplicas Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Nombrado de los Elementos Un solo servidor (centralizado) de nombres: Cuello de botella Una caı́da del servidor afecta todo el sistema Los elementos tienen como prefijos el nombre del emplazamiento Nombres únicos dentro del sistema Creación de alias por facilidad Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Problemas de lectura y escritura Lectura: Conocer que réplica o fragmento utilizar (debe ser transparente para el usuario) Actualización: Actualizar los fragmentos apropiados y TODAS las réplicas de los elementos modificados Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Procesamiento de Consultas Aspectos a tener en cuenta: Número de accesos a disco Costo de transmisión en la red Procesamiento en paralelo de cada emplazamiento Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas ... un ejemplo Sea r1 = σθ1 (r ) y r2 = σθ2 (r ) y se desea calcular σθ3 (r ). y solo se dispone de los fragmentos y no de la relación original: σθ3 (r ) = σθ3 (r1 ) ∪ σθ3 (r2 ) Sea r ,t y w relaciones que se almacenan en E1 , E2 y E3 respectivamente, como calcular r ./ t ./ w en E1 ? cual es el costo de cada alternativa? Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Estrategia por semi-reunión Sea r (R) y t(T ) tales que se almacenan en E1 y E2 respectivamente. Se puede calcular r ./ s de la siguiente manera: 1 Calcular temp1 ← ΠR∩T (r ) en E1 2 Enviar temp1 a E2 3 Calcular temp2 ← t ./ temp1 4 Enviar temp2 a E1 5 Procesar r ./ temp2 Ventajas? Desventajas? r ./ temp2 es equivalente a r ./ s? Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Transacciones Distribuidas Transacciones Locales: Solo afectan los elementos del emplazamiento quien inicia la transacción Transacciones Remotas: Utilizan recursos de un emplazamiento remoto Transacciones Distribuidas: Utilizan recursos locales y recursos de emplazamientos remotos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Cómo coordinar las Transacciones Gestor Trans.: Registro histórico, control de concurrencia, etc Coordinador de transacciones: Coordina la ejecución de transacciones globales (distribuidas) Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Coordinador de Transacciones El coordinador de transacciones tiene a cargo: Iniciar la ejecución de una transacción Divide la transacción en subtransacciones y envı́a las instrucciones necesarias a cada emplazamiento Coordina la terminación (compromiso o retroceso) de la transacción Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Que puede fallar en una T. Global? Un Emplazamiento: Disco, SO, SGBD Pérdida en los mensajes: Debe apoyarse en los protocolos de red (Normalmente se retransmiten los mensajes) Particionamiento de la red: Un nodo o conjunto de ellos se aislan de la red (fallo en los enlaces de comunicación) Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Que hacer en caso de falla? Si el emplazamiento mantiene réplicas actualizar el catalogo para que no las refresque mientras se encuentran offline Abortar las transacciones activas en el emplazamiento que falló para liberar los bloqueos en los otros emplazamientos (si no se encuentran en proceso de compromiso) Si el emplazamiento averiado es el servidor central, elegir otro servidor (alg. elección del coordinador) Cuando el nodo se recupere: Refrescar las réplicas y fragmentos modificados Retroceder las transacciones abortadas Rehacer las transacciones comprometidas Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Protocolo de Compromiso de 2 Fases Cada acción debe registrarse en el registro histórico con fines de recuperación O todos los emplazamientos se comprometen o todos se abortan (atomicidad global) Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Posibles fallos y soluciones en el PC2F Si el fallo es anterior al mensaje de preparación, se asume un abort Si el fallo es posterior al mensaje de preparación se continua el PC2F Cuando el emplazamiento se recupera debe: Si existe hti comprometidai en el R.H , rehacer (ti ) Si existe hti abortadai en el R.H , deshacer (ti ) Si existe hti preparadai en el R.H , consultar a Ci el destino de la transacción. Si Ci no responde consultar a los otros emplazamiento y posponer la decisión hasta encontrar una respuesta de algún nodo. Si el registro no contiene las anteriores, debe abortar (nunca hubo respuesta) Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Qué pasa si falla el coordinador? Si un emplazamiento contiene hti comprometidai o hti abortadai se compromete o aborta la transacción Si ningún emplazamiento contiene hti preparadai se aborta T (fallo antes de tomar la decisión) Si ningún emplazamiento tiene hti comprometidai o hti abortadai, ti espera hasta la recuperación de Ci y se mantienen los bloqueos hasta que esto suceda Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Qué pasa si hay división de la red? Si todos están en la misma partición no hay problema Si pertenecen a dos particiones, los emplazamientos “asumirán” que los otros han fallado y se ejecuta el PC2F en los nodos posibles y en los otros cuando se restablezca el canal de comunicación Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Protocolo de Compromiso de 3 Fases Condiciones: No pueden producirse divisiones en la red Como máximo k emplazamientos pueden fallar Ventajas No bloquea los recursos ası́ falle el coordinador Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas ...continuación Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Tratamiento de Fallos con el PC3F En los participantes: Antes de preparar se aborta, de lo contrario se sigue el procedimiento Cuando se recupera si en el R.H hay un hti abortadai o hti comprometidai se deshace o rehace la transacción Si hay hti preparadai se pregunta a Ci el estado de ti para precomprometer o abortar Si hay hti precomprometidai se consulta a Ci el estado de ti para comprometer, abortar o reactivar el 3FC Fallo del coordinador: Si no hay respuesta del coordinador, se ejecuta el protocolo de fallo del coordinador y cuando Ci suba, actuará como participante Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Protocolo de Fallo del Coordinador Se da por supuesto que no hay fallo de la red, es decir que Ci falló 1 Seleccionar un nuevo coordinador 2 C2 (el nuevo coordinador) pregunta a los emplazamientos el estado de ti 3 Cada emplazamiento determina el estado de ti Se decide el estado de T: 4 Si existe un hti comprometidai, ti se compromete Si existe un hti abortadai ,ti se aborta Si existe hti precomprometidai ,se activa el 3FC De lo contrario se aborta ti Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Algoritmos de elección Decide quien es el nuevo coordinador: Copia de Seguridad: Tener un coordinador de backup con toda la información necesaria para suplir las funciones de Ci Elección: Enumerar los emplazamientos y tratar de seleccionar el emplazamiento con número mayor Algoritmo luchador: Proponerse como coordinador e informar a los otros Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Control de Concurrencia Enfoque de un solo gestor: Un solo emplazamiento concede los bloqueos Implementación sencilla Fácil detección de Dead Locks Cuello de Botella Todo el sistema puede fallar si falle el gestor de bloqueos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas ...continuación Enfoque de varios gestores: Cada emplazamiento es responsable de un conjunto de datos Se minimiza el cuello de botella Se vuelve complejo el tratamiento de interbloqueos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Protocolo de la mayorı́a: Cada emplazamiento controla localmente sus datos Para bloquear un dato Q replicado, hay que enviar mensajes a mas de la mitad de las réplicas solicitando el bloqueo. Utiliza el envió de mensajes para conceder los bloqueos Desventaja: El tratamiento de Interbloqueos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Protocolo Sesgado Para los bloqueos compartidos solo solicita el bloqueo a un emplazamiento que contenga una réplica de Q Para los bloqueos exclusivos, se solicita el bloqueo a TODOS los gestores con réplicas de Q Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Copia principal: Se selecciona una copia principal de Q Donde reside dicha copia es el emplazamiento principal de Q Dicho emplazamiento es el que concede los bloqueos sobre Q Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Tratamiento de Interbloqueos Con la construcción de grafos locales no es suficiente para determinar un interbloqueo. Por ejemplo: Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Enfoque Centralizado Construir un grafo centralizado cuando: Se modifique un arco en un grafo local Periódicamente Siempre que se requiere correr el algoritmo de detección Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Esquema Distribuido Construcción de grafos parciales en cada emplazamiento Detección de ciclos en los grafos parciales Los grafos locales se van extendiendo a medida que el emplazamiento participa en transacciones globales Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Arquitecturas Heterogéneas Reunión de diferentes bases de datos con diferentes arquitecturas, tipos, SW HW, etc Deben presentarse esquemas de traducción entre una instancia y otra Debe existir una capa de SW adicional que integre todas las instancias de manera lógica mas no fı́sica Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas