Sistemas distribuidos
Professora: Ana Paula Couto DCC 064
Consistência e Replicação
Capítulo 7
Agenda
Razões para Replicação Replicação como técnica de escalabilidade Modelos de Consistência centrados em dados Gerenciamento de Réplicas
Razões para Replicação
Confiabilidade – Garante comportamento correto, apesar de alguns tipos de erros. – Ex.: dados corrompidos – Enquanto ao menos um servidor estiver funcionando, o serviço continua Desempenho – É importante quando um sistema distribuído precisa ser ampliado em quantidade e área geográfica – No caso de ampliação em quantidade: diversos servidores web com o mesmo DNS e os servidores são selecionados alternadamente – No caso de ampliação geográfica: requisições são repassadas para o servidor mais próximo geograficamente
Replicação
Réplicas permitem que alguns servidores continuem a funcionar mesmo em ocasião de falhas É possível proteger contra corrupção de dados Réplicas permitem que dados fiquem mais perto de onde serão acessados → diminuição da latência
Replicação e Escalabilidade
Replicação e cache para melhorar desempenho são amplamente utilizados para tratar os problemas de escalabilidade: colocar cópias de dados próximas aos processos que as estão usando, reduzindo o tempo de acesso.
Replicação e Escalabilidade
Qual é o problema?
Consistência entre os dados das diversas réplicas
O problema da consistência
No caso da utilização de caches em um servidor Web... Browsers costumam armazenar no local uma cópia de uma página Web que já foi buscada anteriomente Se um usuário requisitar aquela página mais uma vez, o browser automaticamente retorna a cópia local Tempo de acesso excelente, mas e se o usuário quiser ter a versão mais recente da página?
O problema da consistência
E no caso de um banco de dados com informações bancárias?
O problema da consistência
Maior dificuldade: como sincronizar TODAS as réplicas – Todas as