Universidad Católica Andrés Bello Replicación Dictado por David Hernández david.hernandez.valencia@gmail.com Agenda ● Replicación ○ Razones ○ Técnica de escalamiento ● Modelo de consistencia centrada en los datos ○ ○ ○ ○ Consistencia continua Consistencia secuencial Consistencia casual Consistencia momentánea Replicación Por lo general, los datos se replican para incrementar la confiabilidad o mejorar el rendimiento en los sistemas distribuidos. Uno de los principales problemas es hacer que las réplicas se mantengan consistentes. Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Replicación Razones Existen dos razones principales para replicar: confiabilidad y rendimiento. Confiabilidad: Si un sistema de archivos se replicó, es posible continuar trabajando después de que una réplica falle con tan sólo cambiar a una de las otras réplicas Rendimiento: el escalamiento en números ocurre cuando un número creciente de procesos necesita acceder a datos que son administrados por un solo servidor. Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Replicación Técnica de escalamiento Replicación y cacheo para el rendimiento se utilizan ampliamente como técnicas de escalamiento. Las cuestiones de escalabilidad generalmente aparecen en forma de problemas de rendimiento. Colocar copias de datos cerca de los procesos que los utilizan pueden mejorar el rendimiento mediante la reducción del tiempo de acceso, y resolver así los problemas de escalabilidad. Ejemplo: funcionamiento de los browser y las páginas WEB Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos La consistencia se ha explicado en el contexto de operaciones de lectura y escritura sobre datos compartidos. ● Memoria compartida ● Base de datos compartida ● Sistema de archivos distribuido Un modelo de consistencia es básicamente un contrato entre los procesos y el almacén de datos. Ing. Francisco Gómez infosisdistribuidos@gmail.com Almacén de datos distribuidos Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia continua Yu y Vahdat (2002) consideran un método general para diferenciar tres ejes independientes para definir inconsistencias: ● Desviación en valores numéricos entre réplicas: número de actualización que se han aplicado a una réplica dada. ● Desviación en el deterioro entre réplicas: se relaciona a la última vez que se actualizó una réplica ● Desviación con respecto al ordenamiento de operaciones de actualización: existen aplicaciones donde se permite que el ordenamiento de actualizaciones sea diferente en varias réplicas, siempre que las diferencias sean limitadas Yu y Vahdat se refieren a estas desviaciones como rangos Sistemas Distribuidos. Segunda Edición Ing. Francisco Gómez de consistencia continua infosisdistribuidos@gmail.com Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia secuencial Una clase importante de modelos proviene del campo de programación concurrente. Confrontados con el hecho de que en la computación paralela y distribuida varios procesos necesitarán compartir recursos y acceder simultáneamente a ellos. La consistencia secuencial es un importante modelo de consistencia centrado en los datos, el cual fue definido por primera vez por Lamport (1979) en el contexto de memoria compartida para sistemas de multiprocesador. Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia secuencial (cont.) Lamport dice: “El resultado de cualquier ejecución es el mismo que si las operaciones (de lectura y escritura) de todos los procesos efectuados sobre el almacén de datos se ejecutaran en algún orden secuencial y las operaciones de cada proceso individual aparecieran en esa secuencia en el orden especificado por su programa” Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia secuencial (cont. 2) Ejemplo: Secencualmente consistente Ing. Francisco Gómez infosisdistribuidos@gmail.com Secuenciamente no consistente Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia casual El modelo de consistencia causal (Hutto y Ahamad, 1990) representa una debilidad de la consistencia secuencial, ya que diferencia entre eventos que potencialmente están relacionados por la causalidad y los que no lo están. Si el evento b es causado o influenciado por un evento previo a, la casualidad requiere que todos los demás eventos vean primero a a, y después a b. Si dos procesos escriben espontánea y simultáneamente dos diferentes elementos de datos, estos no están causalmente relacionados. Se dice que las operaciones que no están causalmente relacionadas son concurrentes. Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia casual (cont.) Condición: Escrituras que potencialmente están relacionadas por la causalidad, deben ser vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden verse en un orden diferente en diferentes máquinas. Secuencia permitida con un almacén causalmente consistente, pero no con almacén secuencialmente consistente Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen Modelo de consistencia centrada en los datos Consistencia momentánea ¿Hasta que punto los procesos en realidad operan de manera concurrente, y hasta que punto la consistencia necesita garantizarse? Ejemplo DNS: el espacio de nombres se divide en dominios, donde cada dominio es asignado a una autoridad de asignación que actúa como propietaria de ese dominio. Conflictos escritura-escritura no se presentan, lo único es lectura-escritura Si no ocurren actualizaciones durante mucho tiempo, todas las réplicas gradualmente se volverán inconsistentes (Consistencia momentánea) Ing. Francisco Gómez infosisdistribuidos@gmail.com Sistemas Distribuidos. Segunda Edición Andrew S. Tanenbaum, Maarten Van Steen