Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Bases de Datos Distribuidas Elementos de Bases de Datos Una base de datos distribuida consiste de una colección de nodos o sitios, cada uno representando una computadora y su respectivo medio de almacenamiento. Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Estudiaremos los siguientes tópicos: Lic. María Mercedes Vitturini [[email protected]] Clase 21 1er. Cuatrimestre de 2004 Cómo almacenar la información. Cuestiones de transparencia de red y denominación de los items de datos. Procesamiento de transacciones. Tratamiento de fallos y deadlocks. Elementos de Bases de Datos Clase 21 Almacenamiento de Datos Distribuido Replicación de Datos Replicación: el sistema mantiene varias réplicas idénticas de una relación r. Cada réplica se almacena en un sitio diferente. Fragmentación: una relación r se particiona en varios fragmentos. Cada fragmento es almacenado en un sitio diferente. Replicación y Fragmentación: una relación r es particionada en varios fragmentos y el sistema mantiene varias copias de éstos. Elementos de Bases de Datos Clase 21 2 + Disponibilidad: si uno de los sitios que contiene a la relación r falla, entonces se la puede buscar en otro sitio. + Incremento del paralelismo: en casos de mayoría de accesos de lectura, los sitios procesando consultas sobre r se ejecutan en simultáneo. – Incremento del overhead en actualizaciones: el sistema debe asegurar que TODAS las réplicas de la relación r sean consistentes. Cada actualización sobre la relación r debe ser propagada a los sitios conteniendo las respectivas réplicas. Elementos de Bases de Datos Clase 21 3 4 Fragmentación Horizontal Fragmentación de los datos Consiste en dividir una relación r en fragmentos r1, r2,…, rn. Estos fragmentos contienen información suficiente como para reconstruir la relación original r. Tipos de fragmentación: Fragmentación Horizontal (por filas): separa a una relación r separando las tuplas en subconjuntos. Fragmentación Vertical (por columnas): separa a una relación r a través de descomposiciones. Combinada: separa a una relación r horizontal y verticalmente. Apellido Andrade García García López Lucceti Ramírez Reyes Sánchez Nombres Luis Federico Federico Ernesto Marcos José Francisco Andrés Registro 44455 35689 25689 56661 52256 52231 42467 48995 Domicilio Casanova 654 Alem 1233 Alem 1233 San Juan 20 Córdoba 456 Salta 102 12 de Octubre 980 Paraguay 20 Elementos de Bases de Datos Clase 21 5 r1 Apellido Lucceti Ramírez Reyes Sánchez Nombres Marcos José Francisco Andrés Registro 52256 52231 42467 48995 Apellido Andrade García García López Código-Carrera 128 50 128 50 128 50 128 50 Nombres Luis Federico Federico Ernesto Domicilio Córdoba 456 Salta 102 12 de Octubre 980 Paraguay 20 Registro 44455 35689 25689 56661 Código-Carrera 128 50 128 50 Elementos de Bases de Datos Clase 21 r Domicilio Casanova 654 Alem 1233 Alem 1233 San Juan 20 Código-Carrera 128 50 128 50 r = r1 ∪ r2 r2 6 1 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Fragmentación Vertical Id-Tupla 1 2 3 4 5 6 7 8 r Apellido Andrade García García López Lucceti Ramírez Reyes Sánchez Nombres Luis Federico Federico Ernesto Marcos José Francisco Andrés Registro 44455 35689 25689 56661 52256 52231 42467 48995 Domicilio Casanova 654 Alem 1233 Alem 1233 San Juan 20 Córdoba 456 Salta 102 12 de Octubre 980 Paraguay 20 Transparencia de Red Código-Carrera 128 50 128 50 128 50 128 50 La transparencia de red es el grado con que el usuario del sistema puede despreocuparse de los detalles de cómo y dónde los items de datos son almacenados en un sistema distribuido. r = r1 |><| r2 Id-Tupla 1 2 3 4 5 6 7 8 Apellido Andrade García García López Lucceti Ramírez Reyes Sánchez r1 Nombres Luis Federico Federico Ernesto Marcos José Francisco Andrés Registro 44455 35689 25689 56661 52256 52231 42467 48995 Id-Tupla 1 2 3 4 5 6 7 8 Domicilio Casanova 654 Alem 1233 Alem 1233 San Juan 20 Córdoba 456 Salta 102 12 de Octubre 980 Paraguay 20 Código-Carrera 128 50 128 50 128 50 128 50 Elementos de Bases de Datos Clase 21 r2 7 En un sistema centralizado se puede asegurar que todos los elementos de datos (relaciones, fragmentos y réplicas) tengan nombres únicos. En sistemas distribuidos, debemos asegurar que dos sitios no usen el mismo nombre para distintos items de datos. Una solución es requerir que todos los items estén registrados en un servidor central de nombres. El servidor de nombres es el cuello de botella y esto influye sobre la performance del sistema. Si el servidor de nombres se cae, ningún otro sitio puede continuar. Elementos de Bases de Datos Clase 21 9 Nombrado de fragmentos y réplicas Los fragmentos y las réplicas pueden utilizar una técnica similar. Ejemplo, la segunda réplica del tercer fragmento de la relación cuentas en el sitio 11 puede nombrarse como sitio11.cuentas.f3.r2. Sin embargo, no es deseable que el usuario pueda referirse a un(una) fragmento(réplica) particular. El sistema debe determinar que réplica referenciar en caso de un read, así como actualizar todas las réplicas en caso de un write. Similarmente, el sistema debería ocultar como se fragmentan los datos. Reconstruir la relación original puede ser ineficiente. Elementos de Bases de Datos Clase 21 Nombres de los datos. Replicación de los items de datos. Fragmentación de los items de datos. Ubicación de los fragmentos y las réplicas. Elementos de Bases de Datos Clase 21 8 Nombramiento de los datos Nombramiento de los datos Se consideran distintos tipos de transparencia: 11 Otra alternativa es que cada servidor agregue como prefijo a cada nombre que crea el nombre de su sitio. Por ejemplo: sitio11.cuentas. Esta solución falla al principio de transparencia. Esto puede solucionarse si el sistema crea un conjunto de nombres alternativos o alias. Los usuarios denominan a los datos por su nombre y el sistema los traduce a los nombres completos. Usando alias, el usuario debe despreocuparse de la ubicación física de los items y no se verá afectado si el administrador del sistema desea mover un item de datos de un sitio a otro. Elementos de Bases de Datos Clase 21 10 Transparencia y actualizaciones Proveer transparencia para los usuarios que actualizan la base de datos es más difícil que proveer transparencia para usuarios lectores. El principal problema es asegurar que todas las réplicas y los respectivos fragmentos de un item de dato sean actualizados. Si se actualiza un item de datos fragmentado, debe determinarse que fragmento(s) debe(n) modificarse, dependiendo si se utiliza fragmentación horizontal, vertical o combinada. Si se actualiza un item de datos replicado, debe actualizarse cada una de las réplicas. Elementos de Bases de Datos Clase 21 12 2 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Modelo Transaccional Distribuido Modelo de Transacciones Distribuidas El acceso a los diferentes elementos de datos en los sistemas distribuidos suele hacerse a través de transacciones. Las transacciones deben respetar las propiedades de atomicidad, consistencia, aislamiento y durabilidad. Se distinguen dos tipos de transacciones: Transacciones locales: sólo tienen acceso a datos en una base de datos local. Transacciones globales: acceden a datos que están en sitios diferentes de donde se inició la transacción Elementos de Bases de Datos Clase 21 El gestor de transacciones: encargado de aquellas transacciones (o subtransacciones) que acceden a los datos almacenados en el sitio local. El coordinador de transacciones: encargado de la ejecución de las transacciones (locales y globales) iniciadas en el sistema. La tarea del gestor es similar en muchos aspectos a la usada en un sistema centralizado. Elementos de Bases de Datos Clase 21 13 Modelo Transaccional Distribuido Coordinador de Transacciones Coordinador de Transacciones Cada sitio de un sistema contiene dos subsistemas: 14 Modelo Transaccional Distribuido Tareas del Gestor de Transacciones: Mantener una bitácora para recuperaciones ante fallos. Participar en un apropiado esquema de control de concurrencia para coordinar la ejecución concurrente de transacciones en su sitio. Gestor de Transacciones . . . Gestor de Transacciones Computadora N Computadora 1 Elementos de Bases de Datos Clase 21 Modelo Transaccional Distribuido Comenzar la ejecución de una transacción. Descomponer una transacción en un número de subtransacciones y distribuirlas en los sitios apropiados para su ejecución. Coordinar la terminación de una transacción, lo que puede resultar en que las transacciones estén cometidas en todos los sitios o abortadas en todos los sitios. Elementos de Bases de Datos Clase 21 16 Modos de fallo del sistema Tareas del Coordinador de Transacciones: Elementos de Bases de Datos Clase 21 15 17 Además de sufrir de los mismos tipos de fallos que los sistemas centralizados, en los sistemas distribuidos pueden ocurrir: Fallo de un sitio. Pérdida de mensajes. Fallo de un enlace de comunicación. División de la red. Elementos de Bases de Datos Clase 21 18 3 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Datos Lógicos y Datos Físicos Protocolos a estudiar En un sistema distribuido existen dos niveles de datos: lógicos o globales y físicos o locales. Los criterios de compatibilidad entre bloqueos son los mismos que en sistemas centralizados (solamente se permiten lecturas simultáneas). Si tenemos una única copia de un dato A, entonces el dato lógico y el dato físico son iguales. Si un dato A tiene n copias A1,…,An, entonces las transacciones solicitando un item A deben enviar mensajes de requerimientos de bloqueo al sitio donde reside la copia. El gestor de bloqueos del sitio puede conceder o negar el bloqueo, enviando el mensaje respectivo. Protocolos basados en Bloqueo (Locking): Read-Locks-One / Write-Locks-All (ROWA). Por mayoría (Majority Locking). "k-de-n" (intermedio entre ROWA y por mayoría). Sitio Primario. Tokens de Copia Primaria. Nodo Central. Buscando Serializabilidad: Protocolo de bloqueo de dos fases. Protocolo de bloqueo de dos fases estricto. Buscando Atomicidad: Protocolo de compromiso de dos fases. Protocolo de compromiso de tres fases. Elementos de Bases de Datos Clase 21 Performance General La comunicación entre sitios se realiza mediante el envío y la recepción de mensajes. La cantidad de mensajes que se transmiten en la red condicionará la performance general del sistema. Podemos distinguir dos tipos de mensajes: – – Mensajes de Control: que indican requerimientos o concesión de bloqueos, estados de cometido o de aborto, estados de deadlock, etc. Mensajes de Datos: que contienen datos puros, leídos de o a ser escritos en la base de datos. Bajo ciertas condiciones los mensajes de control cuestan lo mismo que los de datos, pero en general los mensajes de datos Elementos son más caros. de Bases de Datos Clase 21 21 Protocolos de Bloqueo Distribuidos 20 Protocolos de Bloqueo Distribuidos Los diferentes protocolos de bloqueo vistos para entornos centralizados pueden utilizarse para sistemas distribuidos. Sin embargo requieren de algunas adaptaciones. Como en el caso anterior, los tipos de bloqueos considerados son: Compartidos. Exclusivos Deben distinguirse entre el ítem global o lógico e ítem local o físico. En un sistema distribuido, el bloqueo de datos debe ser del ítem global. Elementos de Bases de Datos Clase 21 22 Read-Locks-One / Write-Locks-All La acción de realizar un lock sobre un ítem lógico A involucra obtener los locks sobre las copias físicas de A. Si una transacción necesita un lock de un item de dato del que existe una única copia, debe enviar un mensaje lock-request al sitio donde reside la copia. El gestor de bloqueos del sitio otorga o no el lock, contestando con un mensaje la decisión. Si existen varias copias de un item, la traducción del lock lógico a lock físico puede realizarse de varias maneras. Elementos de Bases de Datos Clase 21 Elementos de Bases de Datos Clase 21 19 23 Se respetan las siguientes reglas: Para obtener un read-lock sobre un item de dato A, una transacción debe obtener un read-lock sobre una copia de A. Para obtener un write-lock sobre un item de dato A, una transacción debe obtener un write-lock sobre cada copia de A. Las reglas para conceder bloqueos son: – Un read-lock es concedido sobre una copia si ninguna otra transacción tiene un write-lock sobre la copia. – Un write-lock es concedido sobre una copia si ninguna otra transacción tiene un read-lock o un write-lock sobre la copia. Elementos de Bases de Datos Clase 21 24 4 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Read-Locks-One / Write-Locks-All Supongamos que existen n copias de un dato A. Cuando se realiza un write-lock sobre un item A, se necesitan enviar 2n mensajes de control (n para requerir el bloqueo y n de concesión del mismo) y n mensajes de datos. Cuando se realiza un read-lock sobre un item A, se necesita conocer un sitio donde A existe y enviar el requerimiento de bloqueo. Si se concede el bloqueo, tenemos 1 mensaje de control y 1 mensaje de datos. Existe un único mensaje de control pues la concesión del bloqueo viene con el dato. Si no se concede el bloqueo, se debe enviar el requerimiento a otro sitio o se espera. Read-Locks-One / Write-Locks-All Mensaje de Control (Pedido) Mensaje de Control (Si/No) Mensaje de Dato S2 S0 S3 . . . Elementos de Bases de Datos Clase 21 25 Read-Locks-One / Write-Locks-All Mensaje de Control (Pedido) Mensaje de Control (Si) + Dato S0 S2 . . . Sn Elementos de Bases de Datos Clase 21 27 Deadlocks en escrituras en ROWA Mensaje de Control (Pedido) Mensaje de Control (Si) S1 S2 Si S3 Sj S4 Si espera respuesta positiva de S4 y S5. S5 Elementos de Bases de Datos Clase 21 Sn Escrituras Elementos de Bases de Datos Clase 21 26 Read-Locks-One / Write-Locks-All Este protocolo se comporta de manera apropiada en entornos donde predominan las lecturas. Ejemplo: una guía telefónica on-line, donde los datos se actualizan en períodos fijos y las lecturas son en todo momento las operaciones predominantes. Cuando se solicita un pedido de escritura y el mismo no puede ser otorgado, si se decide esperar (en cada sitio) se puede entrar en deadlock. Cuando se solicita un pedido de lectura y el mismo no puede ser otorgado, en general se espera (no se solicita la lectura a otro lugar) porque lo más probable es que otro sitio esté escribiendo el dato. S1 S3 Lecturas S1 Sj espera respuesta positiva de S1 S2 y S3. 29 Elementos de Bases de Datos Clase 21 28 Majority Locking Se respetan las siguientes reglas: Para obtener un read-lock sobre un item de dato A, una transacción debe obtener un read-lock sobre una mayoría de A. Para obtener un write-lock sobre un item de dato A, una transacción debe obtener un write-lock sobre una mayoría de A. Las reglas para conceder bloqueos son similares al protocolo anterior. Se asume que el número (n) de copias es impar, y la mayoría es (n+1)/2. Elementos de Bases de Datos Clase 21 30 5 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Majority Locking Majority Locking (n+1)/2 representa la mayoría en los casos en que n es impar. La fórmula general para obtener la mayoría es: Round((n+1)/2) Round realiza el redondeo de un número. Si la parte decimal de un valor x es menor que 0.5, Round(x) retorna el mayor entero menor a x. Si la parte decimal de un valor x es mayor o igual que 0.5, Round(x) retorna el menor entero mayor a x. Asumiento esto, la mayoría para n = 5 es 3, y la mayoría para n = 6 es 4. Elementos de Bases de Datos Clase 21 Mensaje de Control (Si/No) Elementos de Bases de Datos Clase 21 31 Mensaje de Control (Pedido) Mensaje de Control S1 Mensaje de Control + Dato Mensaje de Dato S2 S0 S0 S5 S5 Elementos de Bases de Datos Clase 21 33 34 No hay deadlocks en escrituras Mensaje de Control (Pedido) Este protocolo se comporta de manera apropiada en entornos donde predominan las escrituras. Mensaje de Control (Si) Liberar Pedido S Ejemplo: un sistema de reserva de pasajes, donde los datos se modifican constantemente. Cuando se solicita un pedido de lectura o escritura, sólo un sitio puede obtener la mayoría por lo que no existe riesgo de deadlock. Cuando se solicita un dato y fracasa el pedido, se puede esperar que se liberen copias para obtener la mayoría, o bien se aborta la transacción. En caso de espera, debe garantizarse que un sitio no entre en estado de inanición (en espera contínua). Elementos de Bases de Datos Clase 21 S4 En este caso, todos los sitios contactados envían el dato pero se procesa el que llega primero. Majority Locking S3 Lecturas S4 Elementos de Bases de Datos Clase 21 S1 S2 S3 Escrituras 32 Majority Locking Majority Locking Mensaje de Control (Pedido) Supongamos que existen n copias de un dato A. Cuando se realiza un write-lock sobre un item A, se necesitan enviar n+1 mensajes de control ((n+1)/2 para requerir el bloqueo y (n+1)/2 de concesión del mismo) y n mensajes de datos (se escriben todas las copias). El número de mensajes de control es similar si se realiza un read-lock pero se atiende sólo 1 mensaje de datos. Si la transacción corre en el sitio de una de las copias, se pueden omitir algunos mensajes. 35 1 S2 Si Luego, Si puede enviar los datos a todos los sitios. S3 Como Sj no obtiene mayoría, libera los bloqueos obtenidos. Sj S4 S5 Elementos de Bases de Datos Clase 21 36 6 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Estrategia k-de-n Supongamos que existen n copias del dato. Sea k un valor tal que n/2 < k ≤ n. Para obtener un write-lock sobre un item de dato A, una transacción debe obtener un write-lock sobre k copias de A. Para obtener un read-lock sobre un item de dato A, una transacción debe obtener un read-lock sobre un total de n-k+1 copias de A. Notemos que no es posible que existan read-locks y write-locks simultáneamente ya que se necesitarían n+1 copias del dato A y se cuenta solamente con n. Como k > n/2, no es posible que existan dos write-locks a la vez. Elementos de Bases de Datos Clase 21 Mensaje de Control (Si/No) Mensaje de Dato La estrategia n-de-n deriva enWrite-Locks-All. La estrategia (n+1)/2-de-n deriva en Majority Locking. A medida que k se incrementa, el protocolo se desempeña mejor en situaciones en donde se realizan lecturas más frecuentemente. A medida que k se decrementa, el protocolo se desempeña mejor en situaciones donde predominan las escrituras. Elementos de Bases de Datos Clase 21 37 Estrategia 4-de-5 Mensaje de Control (Pedido) Estrategia k-de-n Estrategia 4-de-5 Mensaje de Control (Pedido) S1 Mensaje de Control S2 S0 S3 S4 Escrituras Elementos de Bases de Datos Clase 21 S3 S4 Lecturas En este caso, todos los sitios contactados envían el dato pero se procesa el que llega primero. S5 S5 Elementos de Bases de Datos Clase 21 39 Ejemplos de Estrategia k-de-n 40 Temas de la clase de hoy Con la estrategia 4-de-5 tenemos un protocolo libre de deadlocks que permite hasta 2 lecturas en simultáneo (4 locks para escribir, 2 locks para leer). Con la estrategia 5-de-7 tenemos un protocolo libre de deadlocks que permite hasta 2 lecturas en simultáneo (5 locks para escribir, 3 locks para leer). Con la estrategia 6-de-7 tenemos un protocolo libre de deadlocks que permite hasta 3 lecturas en simultáneo (6 locks para escribir, 2 locks para leer). Elementos de Bases de Datos Clase 21 S1 Mensaje de Control + Dato S2 S0 38 41 Sistemas Distribuidos Replicación y Fragmentación de Datos. Datos Físicos y Datos Lógicos. Protocolos de control de concurrencia: ROWA, Mayoría, K-n Bibliografía “Principles of Database and Knowledge-Base Systems” – J. Ullman. Capítulo 10. “Fundamentos de Bases de Datos” – A. Silberschatz. Capítulo 18. Elementos de Bases de Datos Clase 21 42 7