09 de Junio 1999 BD distribuidas Arquitecturas de
09 de Junio 1999 BD distribuidas
Arquitecturas de bases de datos n n Centralizadas – BD en una sola máquina y una sola CPU – todos los usuarios acceden a esa máquina Sistemas paralelos – BD en una sola máquina y varias CPU y varios discos – todos los usuarios acceden a esa máquina Sistemas cliente-servidor – BD en una sola máquina (back-end) – los usuarios acceden desde sistemas remotos (front-end) Sistemas distribuidos – BD repartida entre varias máquinas – los usuarios acceden a cualquiera de las máquinas del sistema 09 de Junio 1999 BD distribuidas 2
Base de datos distribuida n n n n Es una colección de múltiples y lógicamente relacionadas bases de datos sobre una red de ordenadores. Un DBMS distribuido se define como el software que permite gestionarlo y hacer la distribución transparente a los usuarios. Es una BD almacenada en varios ordenadores que se comunican mediante una red de comunicaciones. El usuario debe poder usarla como un sistema único. Puede procesar todo tipo de peticiones complejas. La peticiones se pueden procesar en el sitio que hizo la petición o en cualquier otro o parcialmente en varios. Necesita una gestión de transacciones especial. Debe proporcionar optimización de peticiones automáticamente. 09 de Junio 1999 BD distribuidas 3
Ventajas Autonomía local n Mejora de rendimiento n Mejora de la seguridad y la disponibilidad n Economía n Capacidad de expansión n Capacidad de compartición n 09 de Junio 1999 BD distribuidas 4
Desventajas Falta de experiencia n Complejidad n Coste n Control de distribución n Seguridad n Dificultades para cambiar n 09 de Junio 1999 BD distribuidas 5
Aspectos a tener en cuenta Transparencia de datos en red n Proceso de peticiones distribuido n Modelo de transacciones distribuido n Control de concurrencia n Manejo de bloqueos n Sistemas distribuidos con múltiples bases de datos n 09 de Junio 1999 BD distribuidas 6
Transparencia de red n n Capacidad del sistema para abstraer a los usuarios los detalles de donde y como están almacenados los datos en el sistema distribuido. Aspectos a considerar: – Formas de distribuir los datos: n n – – réplica y fragmentación Denominación de los datos Localización de fragmentos y réplicas 09 de Junio 1999 BD distribuidas 7
Distribución de los datos n Réplica – n Fragmentación – n se mantienen tantas copias de los datos como sitios para facilitar la recuperación y la tolerancia a fallos. la relación se divide en varios fragmentos almacenando uno en cada sitio. Réplica y fragmentación – 09 de Junio 1999 la relación se parte en varios fragmentos manteniendo el sistema una copia en cada sitio. BD distribuidas 8
Réplica de datos n n n Consiste en mantener una copia exacta de de una relación o parte de ella en mas de un sitio. La réplica completa se produce cuando se copia la relación en todos los sitios. Una BD completamente redundante es aquella en la que cada sitio contiene una réplica completa de la BD. 09 de Junio 1999 BD distribuidas 9
Características n Ventajas de la réplica – Disponibilidad n – Paralelismo n – n frente a fallos de la red. las peticiones se pueden procesar en varios nodos en paralelo. Transferencia de datos reducida Inconvenientes – – Se eleva el coste de la actualizaciones Se complica el control de la concurrencia 09 de Junio 1999 BD distribuidas 10
Fragmentación n Consiste en dividir una relación en varios trozos que contengan suficiente información para poder reconstruir la relación cuando sea necesario – Horizontal n – Vertical n n se asignan las tuplas a fragmentos el esquema de la relación se divide en varios todos los esquemas resultantes contienen una clave candidato común (o superclave) se añade un atributo especial que actúa como clave candidata. Ambos tipos de fragmentación se pueden mezclar 09 de Junio 1999 BD distribuidas 11
Ejemplo type cuenta = record nombre: char(22); maquina: char(8); login: char(8); end 09 de Junio 1999 01 02 03 04 05 06 07 08 09 10 11 12 BD distribuidas plp pedro jupiter venus lls luis maria jupiter mrm venus ana sol ppp pedro cmr elena marte crc carlos jupiter sofia venus elena jupiter elsb els elena venus elisa pluton elena neptuno elsc 12
Fragmentación horizontal Sitio A 01 02 03 04 05 06 07 08 09 10 11 12 plp pedro jupiter venus lls luis maria jupiter mrm venus ana sol ppp pedro cmr elena marte crc carlos jupiter sofia venus elena jupiter elsb els elena venus elisa pluton elena neptuno elsc 09 de Junio 1999 01 pedro 02 luis 03 maria 04 ana 05 pedro jupiter venus sol plp lls mrm ana ppp Sitio B 06 elena marte 07 carlos jupiter 08 sofia venus 09 elena jupiter 10 elena venus 11 elisa pluton 12 elena neptuno BD distribuidas cmr crc sofi elsb els eli elsc 13
Fragmentación vertical Sitio A 01 02 03 04 05 06 07 08 09 10 11 12 pedro jupiter venus luis maria jupiter venus ana sol pedro elena marte carlos jupiter sofia venus elena jupiter elena venus elisa pluton elena neptuno 09 de Junio 1999 Sitio B 01 02 03 04 05 06 07 08 09 10 11 12 BD distribuidas plp lls mrm ana ppp cmr crc sofi elsb els eli elsc 01 02 03 04 05 06 07 08 09 10 11 12 14
Ventajas de la fragmentación n n Horizontal – permite el procesamiento paralelo de una relación – permite que una tabla global pueda estar donde se utiliza mas frecuentemente Vertical – permite que una tabla pueda ser distribuida en función del uso de sus atributos. – permite descomposiciones adicionales que se pueden conseguir con normalización. – el atributo especial facilita la mezcla de fragmentos verticales – permite el procesamiento paralelo de una relación 09 de Junio 1999 BD distribuidas 15
Criterios de denominación de datos 1. Cada dato debe tener un nombre único en el sistema 2. Debe ser posible encontrar la localización de los datos de forma eficiente. 3. Debe ser posible cambiar la localización de los datos de forma transparente. 4. Cada sitio debe poder crear nuevos datos autónomamente. 09 de Junio 1999 BD distribuidas 16
Esquema centralizado n Estructura – – – n Ventajas – n un servidor asigna todos los nombres cada sitio mantiene un registro de todos los datos locales los sitios piden al servidor la localización de los datos remotos Cumple los tres primeros criterios de denominación de datos Inconvenientes – – – no satisface el último criterio el servidor puede saturarse el servidor es un elemento crítico 09 de Junio 1999 BD distribuidas 17
Uso de alias n Cada sitio añade su identificador a cada nombre que genera. – sitio 17. dato. XXX n Maneja un identificador único y elimina los problemas del servidor central, pero no consigue transparencia de red. n La solución es asignar alias a los datos y almacenar la relación en cada sitio – no hace falta conocer la localización del dato – no afecta si los datos cambian de sitio 09 de Junio 1999 BD distribuidas 18
Nombres únicos n n n Cada réplica de cada fragmento de un dato tiene un nombre único Se utilizan sufijos para indicar de que réplica y de que fragmento es cada dato – sitio 17. dato. XXX. frag 005. replica 56 El nombre real de un dato se obtiene del alias localizando – primero la réplica – luego el fragmento 09 de Junio 1999 BD distribuidas 19
Para encontrar un dato n n El subsistema de procesamiento de peticiones busca el nombre en la tabla de alias local Si es una réplica se consulta la tabla de réplicas Si la réplica es fragmentada se examina la tabla de fragmentación para saber como reconstruir la relación Aunque solo se suelen consultar una o dos tablas, el algoritmo maneja cualquier combinación de réplicas y fragmentos. 09 de Junio 1999 BD distribuidas 20
Transparencia y actualización n Debe asegurar que todas las réplicas y todos los fragmentos de los datos afectados se actualizan. n Fragmentación horizontal – aplicar un predicado para saber si el dato pertenece a un fragmento o no – insertar el dato en todas las réplicas n Fragmentación vertical – dividir el dato en fragmentos – insertar cada fragmento en cada réplica – Problema: pueden lanzarse dos actualización de fragmentos distintos del mismo dato en paralelo sobre réplicas distintas 09 de Junio 1999 BD distribuidas 21
Proceso de peticiones distribuido n n Hay que considerar criterios de coste más sofisticados que el sistemas centralizados: – Número de accesos a disco – Coste de la transmisión de datos sobre la red – Capacidad de procesamiento paralelo – Selección del sitio de procesamiento Es necesario considerar expresiones sobre fragmentos – Construir una relación desde sus fragmentos – Sustituir una relación por una expresión que la construye desde sus fragmentos. 09 de Junio 1999 BD distribuidas 22
Ejemplo n n Con fragmentación horizontal – r = r 1 r 2 – r 1 = atributo = valor 1 (r) – r 2 = atributo = valor 2 (r) La petición atributo = valor 1 (r) consiste en – atributo = valor 1 (r 1 r 2 ) La optimización consiste en hacer la selección antes que la unión de fragmentos – atributo = valor 1 (r 1) atributo = valor 1 (r 2 ) Como r 2 no tiene valor 1, la selección es vacía y el resultado es la selección de r 1 09 de Junio 1999 BD distribuidas 23
Proceso de mezcla simple n n n Considerando la expresión r 1 r 2 r 3 Suponer que – no hay réplicas ni fragmentaciones – cada relación está en un sitio distinto – que el resultado hay que producirlo en el sitio de r 1 Estrategia 1. copiar r 1 de S 1 a S 2 y hacer la mezcla r 1 r 2 2. copiar el resultado temporal en S 3 y hacer la mezcla temporal r 3 3. enviar el resultado a S 1 09 de Junio 1999 BD distribuidas 24
Planes de evaluación alternativos Se pueden diseñar diferentes estrategias cambiando los roles de los tres sitios n Se deben considerar los siguientes factores: n – – – cantidad de información que hay que transportar coste de la transmisión de bloques de datos entre sitios la velocidad relativa de procesamiento de cada sitio 09 de Junio 1999 BD distribuidas 25
Proceso de mezcla parcial n n n Sea r 1 una relación con esquema R 1 almacenada en S 1 Sea r 2 una relación con esquema R 2 almacenada en S 2 Se trata de evaluar la expresión r 1 r 2 y almacenar el resultado en R 1 – calcular temp 1 = R 1 R 2(r 1) en S 1 – enviar temp 1 a S 2 – calcular temp 2 = r 1 temp 1 en S 2 – enviar temp 2 a S 1 – calcular r 1 temp 2 en S 1 09 de Junio 1999 BD distribuidas 26
Definición formal La mezcla parcial de r 1 y r 2 = r 1 < r 2 n Se define como R 1(r 1 r 2) n Selecciona los elementos de r 1 que contribuyen a la mezcla r 1 r 2 n El procedimiento puede extenderse a cualquier número de relaciones realizando varios pasos de mezcla parcial. n 09 de Junio 1999 BD distribuidas 27
Estrategias para explotar el paralelismo n n Considerar r 1 r 2 r 3 r 4 donde cada relación se guarda en un sitio diferente y el resultado se debe dejar en S 1 Estrategia paralela – Se manda r 1 a S 2 y se calcula r 1 r 2 – Se manda r 3 a S 4 y se calcula r 3 r 4 – Se envían los resultados a S 1 según se van produciendo – Según van llegando los resultados a S 1 se procesa la mezcla final (r 1 r 2) (r 3 r 4) 09 de Junio 1999 BD distribuidas 28
Modelo de transacciones distribuido n n n Soportar el proceso de transacciones – locales: en un solo sitio – globales: en varios sitios Cada sitio debe disponer de un Gestor de Transacciones Local – mantiene el registro de actividades – participa en la coordinación de la ejecución de transacciones globales. Hace falta un Coordinador de Transacciones en cada sitio: – arranca la ejecución de transacciones en ese sitio – distribuye operaciones de la transacción a otros sitios – coordina la terminación de las transacciones originadas en ese sitio 09 de Junio 1999 BD distribuidas 29
Control de transacciones n n Es el subsistema encargado de controlar la atomicidad de la ejecución de transacciones: – parte local – parte distribuida Para la parte distribuida hace falta un protocolo: – protocolo de acuerdo en dos fases (2 PC) – protocolo de acuerdo en tres fases (3 PC) Hace falta un protocolo de selección de coordinador en caso de fallo Hace falta un algoritmo de control de concurrencia a nivel global – protocolos de bloqueo – marcas de tiempo 09 de Junio 1999 BD distribuidas 30
Protocolo 2 PC n n Sirve para certificar que una transacción que se ha ejecutado de forma distribuida ha terminado bien. El Coordinador de la transacción ejecuta el protocolo cuando se ejecuta el último paso de la transacción. El protocolo tiene en cuenta todos los sitios que han intervenido en la transacción. Si Si es el sitio que inició la transacción T, actúa como coordinador Ci y es el que inicia el protocolo. 09 de Junio 1999 BD distribuidas 31
Protocolo de acuerdo 2 PC registro Si (Ci) Fase 1 <T prepare> protocolo prepare T ready T de S 1 ready T de S 2 registro Si (Ci) <T prepare> . Fase 2 ready T de Sn <T commit> commit T ack T de S 1 ack T de S 2 protocolo prepare T ready T de S 1 no T de Sj. <T abort> abort T . ack T de Sn <T complete> 09 de Junio 1999 BD distribuidas 32
Fallo en un participante n n La recuperación depende de la información del registro – si contiene un <T commit>, ejecuta un <T redo> – si contiene un <T abort>, ejecuta un <T undo> – si contiene un <T ready>, debe consultar a Ci para decidir que hacer n si <T commit>, ejecuta un <T redo> n si <T abort>, ejecuta un <T undo> Si no hay entradas de T en el registro, es que fallo antes de recibir el <T prepare>, – se debe ejecutar un <T undo> 09 de Junio 1999 BD distribuidas 33
Fallo del coordinador n Los demás sitios deben decidir que hacer con T, en función del contenido del registro – si contiene un <T commit>, se da a T por entregada – si contiene un <T abort>, T debe abortar – si algunos sitios contienen <T ready>, hay que abortar – si todos los sitios contienen <T ready>, hay que esperar a que el coordinador vuelva a funcionar n esto puede provocar un bloqueo al obligar a esperar a los sitios activos. n el Protocolo 3 PC puede resolver este problema 09 de Junio 1999 BD distribuidas 34
Fase 3 Fase 2 Fase 1 Protocolo de acuerdo 3 PC registro protocolo Si (Ci) <T prepare> prepare T ready T de Sk k sitios. <T precommit> <T commit> registro protocolo Si (Ci) <T prepare> <T abort> prepare T ready T de S 1 no T de Sj. abort T precommit T ack T de Sk k sitios commit T 09 de Junio 1999 BD distribuidas 35
Protocolo de fallo del coordinador 1. Los sitios activos eligen un nuevo coordinador Cnew. 2. Cnew pide el estado de T a cada participante. – Commit: si el registro contiene un commit – Abort: si el registro contiene un abort – Ready: si el registro contiene ready y no contiene abort o precommit. – Precommit: si contiene un precommit y no contiene un abort o un commit – Not ready: si no contiene ni ready ni abort 3. Cada participante manda su estado a Cnew para que este decida. 4. Cnew decide en función de todos los participantes – si un sitio envía un commit – si un sitio envía abort – si un sitio envía precommit y nadie envía commit o abort aplicar el protocolo desde la segunda fase – en cualquier otro estado abort 09 de Junio 1999 BD distribuidas 36
Sistemas con múltiples bases de datos n n n Sobre los sistemas de gestión local es preciso añadir sistemas de gestión global del entorno distribuido. De igual forma se añade una interfaz al más alto nivel para manipular información en sistemas heterogéneos. Son sistemas con limitaciones pues – los modelos de datos pueden ser diferentes – los protocolos locales de gestión de transacciones pueden ser incompatibles. – El control de concurrencia puede utilizar técnicas diferentes. 09 de Junio 1999 BD distribuidas 37
Ventajas n n Se mantiene la inversión existente – hardware – software de sistema – aplicaciones Autonomía y control administrativo local Permite el uso de DBMS de propósito especial Es una primera aproximación hacia un sistema de gestión de bases de datos unificado. 09 de Junio 1999 BD distribuidas 38
Unificación de la visión de datos Acuerdo en un modelo de datos común n Acuerdo en un esquema conceptual común n Acuerdo en una representación de datos compartidos única. n Acurerdo en las unidades de medida. n Preparación para aceptar transacciones globales n 09 de Junio 1999 BD distribuidas 39
Gestión de transacciones n n Las transacciones locales no se comunican al resto del sistema. La autonomía local implica que no se comunica directamente con el gestor de transacciones global y estas transacciones no están bajo control. – control de concurrencia local – hay que protegerse contra bloqueos locales – hacen falta mecanismos para asegurar la seriabilidad global. 09 de Junio 1999 BD distribuidas 40
Sistema de gestión de fallos n n Aparecen nuevas causas de fallo – fallo de un sitio – pérdida de mensajes – fallo en los enlaces de la red – partición de la red La forma de responder a los fallos es ofrecer el mayor grado de robustez posible – detectar el fallo – reconfigurar el sistema – recuperarse del error 09 de Junio 1999 BD distribuidas 41
Reconfiguración del sistema n n Si se produce un fallo en el sitio S y Si hay datos replicados en S, eliminar a S de la lista de actualizaciones. Si había transacciones corriendo S cuando se produce el fallo, pasan a estado abort. – es importante hacerlo pronto, pues puede haber datos bloqueados para sitios que están activos. Si S es un servidor central de algún subsistema, se debe elegir un nuevo servidor – servidor de nombres, coordinador de concurrencia, detector de bloqueos globales. 09 de Junio 1999 BD distribuidas 42
Reconfiguración del sistema n n La reconfiguración debe soportar particiones de la red, evitando, – la elección de dos o mas servidores centrales en cada partición. – actualización de datos replicados por mas de una partición. La reconfiguración se puede representar como una serie de transacciones – subsistema de control de concurrencia – subsistema de gestión de transacciones 09 de Junio 1999 BD distribuidas 43
- Slides: 43