Sistemas de Datos Bases de Datos Distribuidas Bases de Datos Distribuidas Sistemas de Datos Contexto SUCURSAL EE.UU. CONEXIÓN CASA CENTRAL ARGENTIANA SUCURSAL RUSIA SUCURSAL AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Centralizado SUCURSAL EE.UU. BD CENTRAL ARGENTINA SUCURSAL RUSIA SUCURSAL AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Descentralizado – Acceso Compartido BD EE.UU. LINK BD BD RUSIA BD K LIN BD ARGENTINA BD AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Descentralizado – XML WEB BD EE.UU. SERVICE <XML> WEB BD SERVICE RUSIA <XML> <XML> BD ARGENTINA BD AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Descentralizado - Datawarehouse BD EE.UU. UBICADO EN ARGENTINA BD RUSIA DATAWAREHOUSE Productos con mayor BD ARGENTINA demanda. Resultado Operativo Global. BD AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Descentralizado - Distribuido UNIDAD LÓGICA BD LOCAL EE.UU. BD LOCAL ARGENTINA BD LOCAL RUSIA BD LOCAL AUSTRALIA Bases de Datos Distribuidas Sistemas de Datos Distribuido - Componentes Bases de Datos Distribuidas Sistemas de Datos Distribuido - Componentes SITIO CADA UNA DE LAS COMPUTADORAS QUE FORMAN PARTE DEL SISTEMA DISTRIBUIDO. BD LOCAL BASE DE DATOS RESIDENTE EN CADA SITIO. GESTOR TRANSACCIONES GESTIONA LA EJECUCIÓN DE LAS TRANSACCIONES QUE ACCEDEN A LOS DATOS ALMACENADOS EN UN SITIO. RED PROPORCIONA LA COMUNICACIÓN ENTRE LOS SITIOS. COORDINADOR COORDINA LA EJECUCIÓN DE LAS DIFERENTES TRANSACCIONES (LOCALES O GLOBALES) INICIADAS EN EL SITIO. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Fallos FALLO CAIDA DE UN SITIO MOTIVO Problemas relacionados con el hardware o software del sitio. PÉRDIDA DEL ENLACE Problemas relacionados con las comunicaciones hacen que se pierda la conexión a un sitio. PÉRDIDA DE MENSAJES Pérdida de paquetes transmitidos a través de la red. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Almacenamiento CLIENTE NOMBRE PAIS CIUDAD 12 Carbajal Adolfo Argentina Bs. As. 18 Álvarez Beatriz Argentina Catamarca 25 Derek Dylan Australia Sydney COPIA 11 COPIA RÉPLICA BD LOCAL ARGENTINA COPIA 22 COPIA COPIA 33 COPIA BD LOCAL AUSTRALIA BD LOCAL EE.UU. TABLA CLIENTE Bases de Datos Distribuidas Sistemas de Datos Distribuido - Almacenamiento CLIENTE NOMBRE PAIS CIUDAD 12 Carbajal Adolfo Argentina Bs. As. 18 Álvarez Beatriz Argentina Catamarca 25 Derek Dylan Australia Sydney TABLA CLIENTE RÉPLICA FRAGMENTACIÓN FRAGMENTACIÓN HORIZONTAL REGISTRO 11 REGISTRO COPIA 1 COPIA 2 BD LOCAL ARGENTINA REGISTRO 22 YY 33 REGISTRO COPIA 2 COPIA 1 BD LOCAL EE.UU. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Almacenamiento CLIENTE NOMBRE PAIS CIUDAD 12 Carbajal Adolfo Argentina Bs. As. 18 Álvarez Beatriz Argentina Catamarca 25 Derek Dylan Australia Sydney TABLA CLIENTE RÉPLICA FRAGMENTACIÓN FRAGMENTACIÓN VERTICAL CLIENTE –– NOMBRE NOMBRE -- PAIS PAIS CLIENTE COPIA 1 COPIA 2 BD LOCAL ARGENTINA CLIENTE –– CIUDAD CIUDAD CLIENTE COPIA 2 COPIA 1 BD LOCAL EE.UU. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Almacenamiento FRAGEMTACIÓN Un buen criterio de fragmentación ayuda a reducir el tráfico de red. RÉPLICA Mejora las Operaciones de Lectura Desmejora las Operaciones de Escritura TRANSPARENCIA Para el usuario el dato es uno. NO tiene porque conocer si el mismo fue fragmentado o replicado. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Almacenamiento (Ventajas / Desventajas) DISPONIBILIDAD Si se cae un sitio entonces el dato se puede encontrar en otro. PARALELISMO Mejora el rendimiento de las consultas. SOBRECARGA Mayor esfuerzo en la actualización. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción Gestor de Transacciones Mantenimiento de un registro histórico con fines de recuperación. Control de la concurrencia en el sitio. Inicio de la ejecución de la transacción. Coordinador de Transacciones División de la transacción en subtransacciones y distribución a los sitios. Coordinación de la terminación de la transacción (Comprometer o Abortar). Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción EJEMPLO Un cliente se presenta en la sucursal La Plata del Banco HSBC y desea realizar dos operaciones. A) Un depósito en la cuenta que posee en esta sucursal. B) Un depósito en la cuenta que posee en la sucursal Andorra de España. ¿Cómo se procesan ambas transacciones? Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción DEPÓSITO CUENTA SUCURSAL LA PLATA SITIO LA PLATA BD GT CT CONSULTA CUENTA Y ACTUALIZA SALDO Cajera Sucursal La Plata Los datos se encuentran en la base de datos del sitio La Plata, lo cual no genera la necesidad de acceder a datos contenidos en otro sitio. Por lo que se trata de una transacción denominada “LOCAL”. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción DEPÓSITO CUENTA SUCURSAL ANDORRA SITIO LA PLATA BD GT CT CONSULTA CUENTA Y ACTUALIZA SALDO El coordinador del sitio La Plata se conecta con el Gestor del sitio Andorra. BD GT CT SITIO ANDORRA Cajera Sucursal La Plata Los datos NO se encuentran en la base de datos del sitio La Plata, lo que genera la necesidad de acceder a los datos del sitio Andorra. Por lo que se trata de una transacción denominada “GLOBAL”. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción PROTOCOLO DE COMPROMISO Garantiza la propiedad de consistencia, ya que en todos los sitios en los cuales se ejecuta una transacción la misma se comprometerá o abortará. Dos fases (C2F): Es uno de los más sencillos y más utilizado en bases distribuidas. Tres fases (C3F): Variante del C2F, evita ciertos inconvenientes del C2F pero añade complejidad y sobrecarga. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción PROTOCOLO DE 2 FASES (C2F) FASE 1 (VOTACIÓN) SITIO 1 1. CT: Añade <T preparar> a su archivo de registro histórico. 2. Envía <Preparar T> 5. CT: Añade <T Comprometida> o <T Abortada > a su registro 2 histórico. (ACUER- 6. Envía <Comprometer T> o DO) <Abortar T> SITIO 2 3. GT: Añade <T Preparada> o <No T> a su archivo de registro histórico. 4. Contesta <T Preparada> o <Abortar T> 7.GT: <Compromete T> o <Aborta T>, actualiza su registro histórico y su cache de datos. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción PROTOCOLO DE 2 FASES (C2F) - FALLOS SITIO 1 D E U N S I T I O 1. CT: Envía <Preparar T> 3. CT: Envía <Abortar T> SITIO 2 SITIO 2 4. Al recuperarse el GT revisa su registro histórico para confirmar o abortar las transacciones pendientes. 1.CT: Envía <Preparar T> SITIO 2 3. CT: Envía <Comprometer T> o <Abortar T> 2. Falla el sitio antes de contestar <T Preparada> o <Abortar T> 2. Falla el sitio después de contestar <T Preparada> o <Abortar T> 4. Al recuperarse el GT revisa su registro histórico para confirmar o abortar las transacciones pendientes. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Transacción PROTOCOLO DE 2 FASES (C2F) - FALLOS D E L C O O R D I N A D O R SITIO 1 SITIO 1 1. Falla el sitio antes de enviar <Preparar T> 1. CT: Envía <Preparar T> SITIO 1 SITIO 2 3. Falla el sitio antes de enviar <Comprometer T> o <Abortar T> 2. GT: Contesta <T Preparada> o <Abortar T> 4. GT: Decide si Compromete o Aborta T. De no poder decidir entonces se debe esperar a que se recupere el coordinador para finalizar T. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Concurrencia GESTOR DE BLOQUEO ÚNICO GESTOR DE BLOQUEO DISTRIBUIDO Ventajas: Sencilla Implementación. Sencillo tratamiento de los interbloqueos. Desventajas: Cuellos de botella en el sitio que actúa de gestor. Es vulnerable, ya que si se cae el sitio se pierde el control de concurrencia. Ventajas: Sencilla Implementación. Reducción de los cuellos de botella. Si se cae un sitio no se pierde el control de concurrencia. Desventajas: Complejo tratamiento de los interbloqueos, ya que se el bloqueo ahora no se realiza en un único sitio. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Concurrencia PROTOCOLO DE COPIA PRINCIPAL Se elige una copia que se almacena en un sitio denominado Sitio Principal y los bloqueos se realizan contra este sitio. Si se cae el sitio principal el dato queda inaccesible. PROTOCOLO DE MAYORÍA Se solicita la petición de bloqueo como mínimo a la mitad + 1 de los n sitios que contienen el dato a bloquear. Implementación Compleja, ya que se necesita una mayor cantidad de mensajes para gestionar las peticiones de bloqueo/desbloqueo. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Ventajas DATOS COMPARTIDOS AUTONOMÍA Se accede a los datos contenidos en cualquier sitio. Cada sitio es responsable del control de los datos almacenado en él. DISPONIBILIDAD Ante un fallo en un sitio los restantes continúan operativos. PERFORMANCE CONSULTAS Paralelización de Operaciones. Acceso a datos en forma local. Bases de Datos Distribuidas Sistemas de Datos Distribuido - Desventajas COORDINACIÓN COMPLEJA Gestión de transacciones, bloqueos e interbloqueos más complejos que un ambiente centralizado. MAYOR COSTO DE DESARROLLO Las aplicaciones requieren de mayor complejidad para su implementación en un ambiente distribuido. FALLOS Recuperación del sistema ante fallos más complejo que en un ambiente Centralizado. SOBRECARGA DE PROCESAMIENTO La coordinación de los sitios requiere un intercambio mayor de mensajes a través de la red. Bases de Datos Distribuidas Sistemas de Datos Distribuido – Variante Réplica RÉPLICA MAESTRO-ESCLAVO SITIO 1 (MAESTRO) (ESCLAVO) INSERT INTO CLIENTE (id_cliente, nombre) VALUES (1234, ‘Luis Alvarez’) Actualización BD Principal SITIO 3 SITIO 2 UPDATE CLIENTE SET nombre = ‘Luis G. Alvarez’ WHERE id_cliente = 1234 (ESCLAVO) SELECT * FROM CLIENTE i ón c a z i l Actua ncipal ri BD P Replicación Sincrónica/ Asincrónica Replicación Sincrónica /Asincrónica Lee los datos de la base local Bases de Datos Distribuidas Sistemas de Datos Distribuido – Variante Réplica RÉPLICA MULTI-MAESTRO SITIO 1 INSERT INTO CLIENTE (id_cliente, nombre) VALUES (1234, ‘Luis Alvarez’) SITIO 2 UPDATE CLIENTE SET nombre = ‘Luis G. Alvarez’ WHERE id_cliente = 1234 SITIO 3 SELECT * FROM CLIENTE Lee los datos de la base local Actualización Actualización BD Local BD Local Replicación Sincrónica/ Replicación Asincrónica Sincrónica/ Replicación Asincrónica Sincrónica/Asincrónica Replicación Sincrónica/ Asincrónica