Bases de Datos Especializadas BASES DE DATOS ESPECIALIZADAS Sesión No.5 Nombre: Fallas y control de concurrencia en un modelo distribuido Objetivo: Al término de la sesión, el alumno explicará elementos de las bases de datos distribuidas. Contextualización Previamente abarcamos un panorama introductorio a los DDBMS pero desde un panorama meramente operativo del usuario, ahora abarcaremos la primera de tres partes sobre la implementación de un DDBMS. En esta sesión abarcaremos los protocolos de control de concurrencia y fallas que puedan ocurrir dentro del DDBMS y cómo repercute esto en la recuperación de la base de datos. Podremos ver la estrecha relación entre las transacciones y la concurrencia, y la manera en que afecta a la integridad de los datos dentro de un DDBMS. 1 BASES DE DATOS ESPECIALIZADAS Introducción al Tema En un entorno ideal donde todos los sistemas implementados funcionan de manera correcta, la totalidad de los mecanismos de control de concurrencia deben garantizar que se preserve la coherencia de los elementos de datos y que cada acción se complete en un tiempo finito. Por lo que el control de concurrencias llega a ser sumamente importante en el ambiente de las BDD debido a que es mucho más portable que las operaciones en sitios múltiples y procesos múltiples creen inconsistencias en los datos y transacciones detenidas, que los sistemas que operan en un solo sitio. Situación por la cual el componente de procesamiento de transacciones de un DDBMS debe garantizar que todas las partes de la transacción, en todos los sitios, se completen antes de que se emita un comando COMMIT final para registrar la transacción. 2 BASES DE DATOS ESPECIALIZADAS Explicación Control de concurrencia en un DDBMS Uno de los principales problemas que se presentan en el entorno de las bases de datos es el hecho de tener acceso concurrente (al mismo tiempo) a la base de datos, que se ven reflejados principalmente en la actualización perdida, la dependencia no confirmada y el análisis incoherente, pero tratándose de un DDBMS las situación es aún más compleja debido a que surgen otro tipo de inconvenientes adicionales como el problema de la coherencia multicopia, que se produce cuando un elemento de datos está replicado en ubicaciones diferentes. Situación por la cual es necesario tener un perfecto control sobre la concurrencia, de ahí que un buen control de concurrencias para un DDBMS debe: 1. Resistir a los fallos tanto de comunicación como de los nodos. 2. Permitir mecanismos de paralelismo para satisfacer los requisitos de prestaciones. 3. No imponer un gasto excesivo de capacidad de proceso y de espacio de almacenamiento. 4. Funcionar satisfactoriamente en un entorno de red donde exista un retardo de comunicación significativo. 5. No imponer muchas restricciones a la estructura de las acciones atómicas (Kohler, 1981) A manera de ejemplo, supongamos que cada operación de transacción en un DDBMS fue completada por cada procesador de datos local, pero uno de ellos podría no completar los resultados de la transacción, esto conllevaría a un problema de base de datos inconsistente y con problemas de integridad, esto se conoce como un problema de COMMIT Prematuro. 3 BASES DE DATOS ESPECIALIZADAS Este problema puede solucionarse con a través de un protocolo commit de dos fases, el cual garantiza en dado caso que una parte de la operación de transacción no puede completarse, entonces todos los cambios realizados en los otros sitios que participan en la transacción serán deshechos para mantener un estado de base de datos consistente. Requiere que cada ingreso de registro de transacción de procesador de datos individual, se escriba antes que el fragmento de la base de datos se actualice, por lo que ahora se requiere un protocolo llamado DO-UNDO-REDO el cual define tres tipos de operaciones: 1. DO: lleva a cabo la operación y registra los valores antes y después en el registro de transacciones 2. UNDO: revoca una operación, mediante los ingresos registrados escritos por la parte DO de la secuencia 3. REDO: rehace una operación mediante los ingresos registrados por la parte DO de la secuencia Con la finalidad de garantizar que las operaciones DO, UNDO y REDO puedan sobrevivir a una falla del sistema mientras se están ejecutando, se utiliza el protocolo de escritura anticipada el cual hace que el ingreso registrado se escriba en un almacenamiento permanente antes de que la operación en sí ocurra. 4 BASES DE DATOS ESPECIALIZADAS El protocolo commit de dos fases define las operaciones entre dos tipos de nodos: el coordinador y los subordinados Fase 1 Preparación Fase 2 El Commit final El coordinador envía un mensaje PREPARED TO COMMIT a todos los subordinados El coordinador envía un mensaje COMMIT a todos los subordinados y espera respuesta Los subordinados reciben el mensaje, escriben el registro de transacciones a través del protocolo de escritura, envía la confirmación YES/PREPARED TO COMMIT o NOT/PREPARED Cada subordinado recibe un mensaje COMMIT luego actualiza la base de datos mediante el protocolo DO El coordinador se asegura de que todos los nodos esten listos para completar o abortar la acción Los subordinados contestan con un mensaje COMMITTED o NOT COMMITTED al coordinador Protocolo COMMIT de dos fases Aplicando este protocolo garantizamos que todos los nodos completen su parte de la transacción, de lo contrario, ésta es abortada. Si uno de los nodos no completa su parte, entonces, la información necesaria para restaurar la base de datos se encuentra en el registro de transacciones y la base de datos puede ser recuperada con el protocolo DOUNDO-REDO. Fallas en un modelo distribuido Como todo sistema, un sistema distribuido también es susceptible a fallas por lo que tras haber ocurrido una falla en el sistema la recuperación de los datos es de vital importancia. Los principales fallos en un DDBMS son: La pérdida de información El fallo de un enlace de comunicación El fallo de un nodo El particionamiento de la red 5 BASES DE DATOS ESPECIALIZADAS La recuperación tras un fallo pretende mantener la atomicidad y la durabilidad de las transacciones distribuidas. Para esto, el DDBMS debe garantizar que todas las subtransacciones de la transacción global se confirmen o que todas se aborten. Si el DDBMS detecta que un fallo ha ocurrido se procede de la siguiente manera: Abortar tidas las transacciones que se vean afectadas por el fallo Marcar el nodo como fallido, para evitar que cualquier otro nodo trate de utilizarlo Comprobar periódicamente para ver si el nodo se ha recuperado Al reiniciarse, el nodo fallido debe iniciar un procedimiento d recuperación para abortar aquellas transacciones parciales que estaba activas en el momento del fallo Después de la recuperación local, el nodo fallido debe actualizar su copia de la base de datos para hacer lograr que sea coherente con el resto del sistema Cabe mencionar que el DDBMS debe garantizar que si hay agentes de una misma transacción global activos en diferentes particiones al momento en que se produce una partición de la red, entonces el nodo en cuestión no deberá poder confirmar la transacción global. 6 BASES DE DATOS ESPECIALIZADAS Conclusión Como pudimos revisar en esta sesión los DDBMS tienen una función de vital importancia, el manejo adecuado de la concurrencia y por ende del manejo de las transacciones, por lo que es necesario que apoyarnos en el protocolo COMMIT de dos fases para garantizar la integridad de los datos, en otras palabras, una transacción adquiere todos los bloqueos antes de liberar ninguno de ellos con la finalidad de asegurar la atomicidad tanto de las transacciones globales como de las locales. De igual manera pudimos observar que todo sistema es susceptible a fallas y para esto existen mecanismos de recuperación, hablando específicamente de los DDBMS las principales fallas dentro de un sistema de este tipo son 4, la pérdida de mensajes, los fallos en los enlaces de comunicación, las detecciones de nodos fallidos y el particionamiento de la red. 7 BASES DE DATOS ESPECIALIZADAS Para aprender más A continuación encontrarás un par de ligas para conocer aplicaciones relacionadas con las bases y sistemas distribuidos Ventajas y retos en el uso de bases de datos distribuidas http://brd.unid.edu.mx/ventajas-y-retos-en-el-uso-de-bases-de-datos-distribuidas/ Modelos avanzados de bases de datos http://brd.unid.edu.mx/modelos-avanzados-de-bases-de-datos/ 8 BASES DE DATOS ESPECIALIZADAS Actividad de Aprendizaje Objetivo de la actividad de aprendizaje de la sesión: El alumno explicará elementos de modelos distribuidos en un texto en línea. Instrucciones: ¿Qué vas a hacer? Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, investiga en qué consisten los protocolos de recuperación dentro de: 1. La confirmación de dos fases (2PC). 2. La confirmación de tres fases (3PC). En un archivo de Word explica los resultados de tu investigación con tus propias palabras, que contenga: 1. Introducción. Un párrafo. 3. Descripción del la confirmación de dos fases (2PC) con sus referencias. Un párrafo. 4. Descripción de la confirmación de tres fases (3PC) con sus referencias. Un párrafo. 2. Bibliografía citada con los datos completos de cada fuente. Recuerda que esta actividad te ayudará a identificar características sobre las implicaciones de fallos y concurrencia dentro de DDBMS. Material: Como material inicial de consulta puedes usar la lectura de la sesión. ¿Cuál es la forma de entrega? 9 BASES DE DATOS ESPECIALIZADAS Entrega en plataforma un documento en Word de máximo 3 páginas. Nombra tu archivo de la siguiente forma: S05TuNombreTuApellido.doc ¿Cómo serás evaluado? En esta actividad se tomará en cuenta lo siguiente: Forma Portada con datos generales: Universidad, maestría, asignatura, alumno y fecha. Fuentes bibliográficas pertinentes. completas Ponderación Requisito y Ortografía y redacción adecuada. Contenido Introducción. El alumno presenta la idea principal de su escrito de forma clara. Contenido. El alumno sintetiza y cita correctamente las fuentes de consulta originales, además presenta la explicación de manera objetiva con sus palabras. Total 7 puntos 13 puntos 25 puntos 55 puntos 100 puntos 10 BASES DE DATOS ESPECIALIZADAS Bibliografía Bell, D., Grimson, J. (1994). Distributed database systems. United Kingdom, Addison Wesley. Bobak, A. (1993). Distributed and multi-database systems. E.U. Bantam Books. Connolly, T., Begg, C. (2005). Sistemas de bases de datos. Un enfoque práctico para diseño, implementación y gestión. España. Pearson. Corbera Navas, F. y Delgado Gallego, A. (2008) Modelos avanzados de base de datos. Universidad de Castilla – La Mancha. Consultado en abril de 2013 de http://alarcos.inf-cr.uclm.es/doc/bbddavanzadas/07- 08/Distribuci%C3%B3n1.pdf Kohler W. H. (1981). A Survey of Techniques for Synchronization and Recovery in Decentralized Computer Systems. ACM Computing Surv. López Fuentes, F. (2002) Ventajas y retos en el uso de base de datos distribuidas. Ensayos. Consultado en abril de 2013 de http://www.utm.mx/temas/temas-docs/ensayo1t18.pdf Rob, P., Coronal, C. (2004). Sistemas de bases de datos, diseño, implementación y administración. México. Thomson. 11