Please enable JavaScript.
Coggle requires JavaScript to display documents.
Aula 14 - Consistência e Replicação - Coggle Diagram
Aula 14 - Consistência e Replicação
1
Replicação
O que é?
Trata-se de um processo para aumentar a
confiabilidade
do sistema ou
melhorar seu desempenho
.
Confiabilidade
Caso um recurso falhe, outro poderá substituí-lo.
Desempenho
Aumentar a quantidade de replicas, aumenta a quantidade de processamento, seja em
quantidade
ou em
área geográfica
.
Quantidade
O sistema suporta um número maior de processos.
Área geográfica
Diminui latência no acesso aos dados.
Desafios da replicação
Consistência das réplicas
Precisamos garantir que o mesmo dado seja acessado por diferentes usuários.
Gerenciamento de réplicas
Definir quantidade e localização das réplicas da forma ideal.
Replicação na web
Faz isso usando o cache do navegador, e armazena uma cópia da página.
Para garantir que o usuário solicite a página mais atualizada precisamos bloquear o cache de salvar a página, e passar a responsabilidade de retornar a página mais atualizada para o servidor.
O desempenho do servidor será afetado pois fica responsável por monitorar e atualizar as cópias dos recursos.
Dessa forma o desempenho do servidor é afetado diretamente, pois precisamos garantir uma
sincronização global
das cópias entre as réplicas.
Como lidar com esse problema?
Tornando as regras de restrições mais fracas, fazendo com que as atualizações não sejam instantâneas em todas as réplicas.
2
Consistência
Modelos de consistência
O que são?
Trata-se da relação de leitura e escrita com depósitos de dados, esses modelos determinam quando um depósito será atualizado.
Tipos de modelos:
modelos centrados em dados
e
modelos centrados no cliente
.
Modelos centrados em dados
O que são?
Modelos que visão garantir a atualização simultânea de um depósito de dados por processos concorrentes.
Tipos de modelos centrados em dados:
consistência continua
,
consistência sequencial
e
consistência causal
.
Consistência contínua
O que é?
Tenta garantir a atualização dos dados baseando-se em tres eixos:
desvio de valores numéricos das replicas
,
desvio de idade das réplicas
e
desvio de ordenação de operações de atualização
.
1 more item...
Tipos de consistência contínua
Desvio de valores numéricos das réplicas
2 more items...
Desvio de idade das réplicas
1 more item...
Desvio de ordenação de operações de atualização
2 more items...
Consistência sequencial
O que é?
Busca chegar em organizações consistentes das atualizações, quando for necessário atualizar réplicas, ele terá que chega num acordo sobre uma ordenação global dessas atualizações.
Como funciona?
As operações de escrita e leitura são representadas em um eixo de tempo, e quando uma atualização é realizada a ideia é visar as ordenações consistentes das atualizações, ou seja, garantir que a ordem de escrita e leitura seja a mesma para todos os processos.
As operações de leitura e escrita em uma mesma ordem global, todos os processos veem na mesma ordem (na ordem lógica).
Consistência causal
O que é?
Representa um enfraquecimento da consistência sequencial, com a distinção entre eventos que são potencialmente relacionados por causalidade e os que não são.
Como funciona?
Se o evento b é causado ou influenciado por um evento anterior a, a causalidade requer que todos vejam primeiro a e depos b.
Oferece possibilidade de concorrência, as operações concorrentes podem ser executadas por diferentes processos em diferentes ordens.
Modelos centrados no cliente
O que são?
Modelos que visão o cliente, existem atualizações nos depósitos mas não é instântanea nem simultânea.
Consistência eventual
O que é?
Trata-se de um tipo de consistência que não precisa ordenar as escritas concorrentes à medida que são executadas.
Maior número de concorrência.
Tipos de modelos centrados no cliente:
leituras monotônicas
,
escritas monotônicas
,
leia-suas-escritas
, e
escritas-seguem-leituras
.
Leituras monotônicas
Se um processo ler o valor de um item de dados x, qualquer operação de leitura sucessiva de x executada por esse processo sempre retornará o mesmo valor ou valor mais recente de x.
Escritas monotônicas
Uma operação de escrita por um processo em um item de dados x é concluída antes de qualquer operação de escrita sucessiva em x pelo mesmo processo.
Leia suas escritas
Uma operação de escrita por um processo no item de dados x sempre será visto por uma operação de leitura sucessiva em x pelo mesmo processo.
Escritas seguem leituras
Qualquer operação de escrita sucessiva executada por um processo em um item de dados x, será realizada sobre uma cópia de x atualizada com o valor lida mais recentemente pelo mesmo processo.
3
Gerenciamento de réplicas
O que é?
Fica responsável por decidir onde, qunado e por quem as réplicas devem ser posicionadas, além de decidir quais mecanismos serão usados para manter a consistência das réplicas.
Quais técnicas são utilizadas?
O problema pode ser dividido em dois:
posicionar o servidor de réplicas
e
posicionar o conteúdo
.
Posicionar o servidor de réplicas
O que é?
Busca a melhor localização para colocar um servidor para hospedar um depósito de dados.
Encontrar uma localização física, posicionando o hardware.
Como descobrir isso?
Existem algoritmos que fazem o calculo a partir de heuristicas como: latência, largura de banda entre os clientes e localizações.
Posicionar o conteúdo
O que é?
Encontrar os melhores servidores para colocar o conteúdo.
Qual o melhor servidor para hospedar uma cópia de um depósito de dados?
Quais os tipos de hospedagem em réplicas?
Réplicas permanentes
São um conjunto inicial de réplicas que formam um depósito de dados distribuídos.
Réplicas iniciadas por servidor
Réplicas de um depósito de dados são criadas para melhorar o desempenho do sistema e são criadas por iniciativa do proprietário.
Réplicas iniciadas por cliente
Recurso armazenado localmente, e usado pelo cliente, tal qual o cache do navegador.