Você está na página 1de 76

Consistência e

Replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
Consistência e replicação
– Replicação como técnica de crescimento
 Manter várias cópias consistentes pode estar sujeito a problemas de
desempenho
 Um conjunto de cópias é consistente se todas forem sempre iguais
 Logo, quando uma operação de atualização é realizada sobre uma
cópia, a atualização deve ser propagada para todas as outras cópias
 Manter a consistência entre todas as cópias em um sistema
distribuído de larga escala  Muito custoso!
Consistência e replicação
– Replicação como técnica de crescimento
 Dilema:
o Problemas de escalabilidade podem ser amenizados pela
aplicação de replicação e cache  resultando em melhor
desempenho
o Manter todas as cópias consistentes  requer sincronização
global  muito custoso em termos de desempenho
 A cura saiu pior que a doença?
o Não, se pudermos relaxar as restrições de consistência!
Consistência e replicação
– Modelos de consistência centrados em dados
 A consistência tem sido discutida no contexto de operações de leitura e
escrita em dados compartilhados por meio de (depósito de dados):
o Memória compartilhada (distribuída)
o Banco de dados (distribuído)
o Sistema de arquivos (distribuído)
 Cada processo que pode acessar dados do depósito tem uma cópia
local (ou próxima) disponível referente ao depósito inteiro
Consistência e replicação
– Modelos de consistência centrados em dados
 Operações de escrita são propagadas para outras cópias
o Memória compartilhada (distribuída)
o Se a operação alterou dados  Escrita
o Se a operação não alterou dados  Leitura
Consistência e replicação
– Modelos de consistência centrado em dados
 Modelo de Consistência é um contrato entre processos e depósitos de
dados
o Se os processos concordarem em obedecer certas regras o
depósito promete funcionar de maneira correta
 Normalmente, um processo que executa uma leitura em um dado,
espera como retorno um valor que mostre o resultado da última
operação de escrita naquele dado
o Sem um relógio global é difícil definir qual foi a última escrita
o Como alternativa, são usadas outras definições/regras
estabelecidas por um modelo de consistência
 Quais inconsistências são toleráveis?
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Definidas a partir de três eixos:
o 1. Desvio em valores numéricos entre réplicas
 Cópias não podem variar por mais que valor absoluto ou relativo
 Número de atualizações não vistas por outras réplicas
o 2. Desvio em idade entre réplicas
 Última vez que a réplica foi atualizada
o 3. Desvio em relação às operações de atualização
 Tolera ordenação diferente de atualizações nas réplicas
 As atualizações podem ser aplicadas temporariamente em uma
cópia local a espera de um acordo global, podendo serem
refeitas na ordem correta antes de se tornarem permanentes
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Proposta uma unidade de consistência – CONIT
o Especifica a unidade na qual a consistência deve ser medida
o Uma CONIT representa uma única ação, por exemplo um
boletim individual de previsão de tempo.
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Proposta uma unidade de consistência – conit
o As variáveis X e Y = 0
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Necessário compromisso para manter conits de granularidade grossa e
conits de granularidade fina
o Exemplo: diferença de duas réplicas não pode ter mais que
uma atualização pendente
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Necessário tratar duas questões para se por as conits em prática:
o Para impor consistência é necessário ter protocolos
o Programadores devem especificar os requisitos de
consistência para aplicações
 Os programadores não estão acostumados com replicação, muito
menos em fornecer informações sobre consistência
 Para implementar conits é obrigatório que haja interfaces de
programação simples e fáceis de entender
o Pode ser implementada como um conjunto de ferramentas
parecido com bibliotecas
 AffectsConit, DependsOnConit
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Além da consistência contínua, existe uma classe importante de
modelos de consistência na área de programação concorrente
o Consistência sequencial
o Consistência causal
 Estes modelos tratam de ordenar operações consistentemente em
dados compartilhados replicados
 Quando for preciso realizar atualizações provisórias em réplicas, estas
terão de chegar a um acordo sobre uma ordenação global dessas
atualizações
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
contínua
 Ordenação consistente de operações
o Notação para representar operações de leitura e escrita
o Wi(x)a  O processo Pi escreve o valor a no item de dado x
o Ri(x)a  O processo Pi lê o valor a do item de dado x
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Restrita
 Todos os processos executam todas as operações de leitura e escrita na
mesma ordem que elas foram emitidas
 Portanto:
o Leituras nunca ficam obsoletas
o Todas as réplicas executam as operações de escrita na
mesma ordem
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Um depósito de dados é sequencialmente consistente quando satisfaz a
seguinte condição:
 O resultado de qualquer execução é o mesmo que seria se as
operações (de leitura e escrita) realizadas por todos os processos no
depósito de dados fossem executadas na mesma ordem sequencial e as
operações de cada processo individual aparecessem nessa sequência
na ordem especificada por seu programa
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Todos os processos executam todas as operações de leitura e escrita
em uma mesma ordem global, e as operações em um processo
aparecem na ordem que são emitidas pelo programa que está sendo
executado pelo processo
 Portanto:
o Leituras podem ficar obsoletas em relação ao tempo real,
mas não em relação à hora lógica
o As operações de escrita em todas as réplicas estão
totalmente ordenadas na mesma ordem e acordo com a hora
lógica
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Exemplo de sistema com consistência sequencial
o IVY: Sistema de memória distribuída compartilhada
o Provê um acesso à memória compartilhada com a memória
fisicamente distribuída entre as máquinas
o Geralmente é mais fácil escrever programas com modelo de
programação de memória compartilhada do que com modelo
de troca de mensagens
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Arquitetura do sistema IVY
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Consistência sequencial em IVY
o Sempre lê uma página com a última atualização já realizada
 Tem que invalidar todas as páginas que estão na cache de
outras máquinas antes de executar uma operação de escrita
o Somente um processador (dono) pode escrever em uma
página de cada vez
o O dono é sempre o último que escreveu na página
 Como descobrir o dono da página?
 Como garantir que só existe um dono por página?
 Como garantir que as páginas que estão na cache vão ser
invalidadas?
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Gerente centralizado IVY
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Leitura em IVY
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Escrita em IVY
Consistência e replicação
– Modelos de consistência centrado em dados - Consistência
Sequencial
 Invariantes em IVY
o Toda página tem exatamente somente um dono de cada vez
o O dono corrente tem uma cópia da página
o Se a página é marcada como r/w pelo dono, não existem
outras cópias
o Se a página é marcada r/o pelo dono, ela é idêntica a outras
cópias
o Gerente sabe de todas as cópias
Consistência e replicação
– Modelos de consistência Causal
 A Consistência Causal representa um enfraquecimento da consistência
sequencial no sentido que faz distinção entre eventos que são
potencialmente relacionados por causalidade e os que não são
o Se o evento b é causado ou influenciado por um evento
anterior a, então é necessário que todos vejam primeiro a e,
depois, b
o Se o processo P1 escreve x, em seguida P2 lê x e escreve y,
os dois primeiros são causais, porém as duas escritas são
concorrentes.
Consistência e replicação
– Modelos de consistência Causal
 Para um depósito de dados ser considerado consistente por
causalidade, é necessário que obedeça à seguinte condição:
o Escritas que são potencialmente relacionadas por
causalidade devem ser vistas por todos os processos na
mesma ordem
o Escritas concorrentes podem ser vistas em ordem diferente
em máquinas diferentes
Consistência e replicação
– Modelos de consistência Causal
 Qualquer execução ocorre como se todas as operações de
leitura/escrita, que tem relação de causalidade entre elas, tivessem sido
executadas em uma ordem que reflete a causalidade entre elas
 As operações concorrentes, ou sejam, que não tem relação de
causalidade, podem ser executadas em ordens diferentes nas diferentes
réplicas
Consistência e replicação
– Modelos de consistência Causal
Consistência e replicação
– Modelos de consistência Causal
 Qualquer execução ocorre como se todas as operações de
leitura/escrita que tem relação de causalidade entre elas tivessem sido
executadas em uma ordem que reflete a causalidade entre elas
 As operações concorrentes, ou sejam, que não tem relação de
causalidade, podem ser executadas em ordens diferentes nas diferentes
réplicas
Consistência e replicação
– Modelos de consistência Causal
 Consistência causal é estritamente mais fraca que a sequencial e pode
resultar em resultados estranhos
o Se um sistema é sequencialmente consistente => ele
também é causalmente consistente
 MAS: ela também oferece maiores possibilidades de concorrência
o Operações concorrentes, que não são casualmente
dependentes, podem ser executadas por diferentes
processos em diferentes ordens
o Ao contrário, com consistência sequencial, necessita-se
forçar uma ordem global de todas as operações
o Então pode-se obter um melhor desempenho do que com
sequencial
o Não é muito popular na indústria
Consistência e replicação
– Modelos de consistência Eventual
 Permite leituras obsoletas, mas garante que operações de leitura irão
eventualmente refletir valores escritos previamente, mesmo depois de
ter passado muito tempo
 Não ordena escritas concorrentes à medida que são executadas, o que
pode causar conflitos mais tarde: qual escrita foi a primeira?
Consistência e replicação
– Modelos de consistência Eventual
 Maior número de oportunidades de concorrência do que consistência
restrita, sequencial ou causal
 Consistência sequencial requer conexões altamente confiáveis
o Muita troca de informação entre cliente e servidor
 Consistência sequencial pode ser imprópria para alguns cenários:
o Clientes desconectados (por exemplo, seu laptop fica fora da
rede mas você quer editar um documento que tem réplica)
o Rede desconectada entre os centros de dados
o Aplicações podem preferir inconsistência potencial do que
perda de disponibilidade
Consistência e replicação
– Modelos de consistência Eventual X Sequencial
 Sequencial: gerencia concorrência de forma pessimista
o Decide a ordem de atualização das operações à medida que
elas são executadas
 Eventual: gerencia concorrência de forma otimista
o Deixa as atualizações acontecerem, e se preocupa com a
sua ordenação depois
o Pode criar conflitos
 Quando você codifica algo offline por um período – talvez
você tenha que resolver conflitos com os membros do seu
time quando você tornar seu código online
 Não é muito difícil de resolver este conflito com código, mas
é difícil em geral (pense em resolver conflitos quando você
atualizou uma imagem offline)
Consistência e replicação
– Como estes modelos são utilizados?
 Consistência restrita
o Sistema de Cloud da Google denominado Spanner que utiliza
consitência externa que é similar à restrita
 Consistência sequencial
o Alguns sistemas comerciais e acadêmicos provêm consistência
sequencial
o Yale’s IVY DSM, Microsoft’s Niobe DFS, Cornell’s chain replication,
 Consistência causal
o ???
 Consistência eventual
o Alguns sistemas comerciais e acadêmicos provêm consistência
eventual
o Exemplos: sincronizadores de arquivos, Amazon’s Dynamo, Bayou
Consistência e replicação
– Modelos de consistência centrados no cliente
 Modelos de Consistência Centrados em Dados
o Visam fornecer uma visão consistente de um depósito de dados
no âmbito de um sistema
o Processos concorrentes podem estar atualizando um depósito
de dados simultaneamente
 Modelos de Consistência Centrados no Cliente
o Os depósitos de dados são caracterizados pela ausência de
atualizações simultâneas
o A maioria das operações envolve ler dados
o Estes depósitos oferecem um modelo de consistência mais fraco
 consistência eventual
Consistência e replicação
– Modelos de consistência centrados no cliente
 Até que ponto a consistência precisa ser garantida?
o Pode variar dependendo da aplicação
o Páginas Web  caches locais com páginas ainda
desatualizadas  grau de inconsistência pode ser tolerado pelo
cliente
 Com a introdução de modelos de consistência centrados no cliente,
muitas inconsistências podem ser ocultadas de modo relativamente
barato
Consistência e replicação
– Modelos de consistência centrados no cliente – Consistência
eventual
Consistência e replicação
– Modelos de consistência centrados no cliente
 Consistência centrada no Cliente
o Quando se usa depósitos de dados de consistência eventual
 Se um mesmo usuário operar sobre réplicas diferentes, ele
pode obter inconsistências se as atualizações ainda não
tiverem sido propagadas
o Estas inconsistências podem ser resolvidas a partir de
consistência centrada no cliente
 Dá garantia a um único cliente de consistência de acesso a
um depósito de dados por esse cliente
 Não há garantia para acessos concorrentes por clientes
diferentes
Consistência e replicação
– Modelos de consistência centrados no cliente
 São destacados 4 modelos distintos de consistência
o Leituras monotônicas
o Escritas monotônicas
o Leia-suas-escritas
o Escritas-seguem-leituras
Consistência e replicação
– Modelos de consistência centrados no cliente
 São usadas as seguintes notações:
o xi  versão do item de dados x na cópia local Li
o WS(xi)  conjunto de operações de escrita ocorrida em x em
Li até
o Ok(xi;xj)  o processo k realizou a operação O e produziu o
valor xj a partir de xi
o Ok(xi|xj) o processo k realizou a operação O e produziu o
valor xj independentemente do valor xi
Consistência e replicação
– Modelos de consistência centrados no cliente
 Leituras monotônicas
o 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 um valor mais
recente
o A consistência de leitura monotônica garante que se um
processo viu um valor de x no tempo t, ele nunca verá uma
versão mais velha de x em um tempo posterior
Consistência e replicação
– Modelos de consistência centrados no cliente
 Leituras monotônicas
Consistência e replicação
– Modelos de consistência centrados no cliente
 Leituras monotônicas
o Na leitura de um calendário pessoal em diferentes
servidores, a consistência leitura monotônica garante que o
dono do calendário irá sempre ver todas as atualizações,
independentemente de qual servidor está sendo acessado
o Também garante que, se o usuário ler e-mail e não houver
modificação enquanto o usuário estiver se movimentando de
um servidor para outro, o usuário verá os e-mails que ele já
leu novamente
Consistência e replicação
– Modelos de consistência centrados no cliente
 Escritas monotônicas
o Uma operação de escrita executada por um processo em um
item de dados x é concluída antes de qualquer operação de
escrita sucessiva em x pelo mesmo processo
 Atualização de versões de bibliotecas substituindo uma ou
mais funções
Consistência e replicação
– Modelos de consistência centrados no cliente
 Leia suas escritas
o O efeito de 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
 Contra-exemplo: Atualizamos uma página no servidor, mas
quando abrimos a página vemos a versão antiga (problema
com o cache)
Consistência e replicação
– Modelos de consistência centrados no cliente
 Escritas seguem leituras
o 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 lido mais recentemente
pelo processo
Consistência e replicação
– Modelos de consistência centrados no cliente
 Escritas seguem leituras
o Garantir que usuários de um grupo de discussão em rede
vejam a apresentação de uma reação a um artigo somente
depois de terem visto o artigo original
o Um usuário lê um artigo A e depois reage apresentando uma
resposta B
o B será escrito para qualquer cópia do grupo, somente após A
ter sido escrito
Consistência e replicação
– Gerenciamento de réplicas
 Onde, quando e por quem réplicas devem ser posicionadas?
o Posicionar servidores de réplicas
 É o posicionamento de hardware: encontrar as melhores
localizações para colocar um servidor que pode hospedar
depósito de dados (ou parte dele)
o Posicionar conteúdo
 É o posicionamento dos dados e softwares: encontrar o
melhor servidor para colocar conteúdo.
Consistência e replicação
– Gerenciamento de réplicas
 Posicionamento do servidor de réplicas
o Análises das propriedades do cliente e da rede são úteis
para se tomar decisões conscientes
o Há vários modos de se calcular o melhor posicionamento de
servidores de réplicas
 No geral, é um problema de otimização que consiste em
selecionar as melhores K de N localizações
 A ideia básica é identificar os K maiores clusters de nós e
designar um nó de cada cluster para hospedar o conteúdo
replicado.
Consistência e replicação
– Gerenciamento de réplicas
 Para selecionar as melhores K de N localizações
o Análises das propriedades do cliente e da rede são úteis
para se tomar decisões conscientes
o Podem ser usadas heurísticas baseadas na distancia
(latência, largura de banda) entre clientes e localizações
o Ou pode-se ignorar posições de clientes considerando a
Internet como um conjunto de Sistemas Autônomos (AS)
 Rede no qual os nós executam o mesmo protocolo de
roteamento, que é gerenciada por uma única organização
 Consideram o maior AS e colocam um servidor no roteador
com maior número de enlaces
 Os ASs são escolhidos em ordem de tamanho
Consistência e replicação
– Gerenciamento de réplicas
 O problema é que estes algoritmos são caros em termos de cálculo
o Alternativa:
 Foi desenvolvido um método para identificar rapidamente uma
região para o posicionamento do servidor de réplicas
 As regiões são identificadas como um conjunto de nós que
acessam o mesmo conteúdo, com uma latência baixa entre nós
 Primeiramente, seleciona-se as regiões com o maior número de
nós, e permite que um dos nós aja como Servidor de Réplicas
 Funciona tão bem quanto os anteriores  Mais rápido
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
o Após o posicionamento do servidor de réplicas, é preciso decidir
sobre o posicionamento do conteúdo
 Qual o melhor servidor para hospedar uma cópia de um depósito
de dados
o Podem se distinguir 3 tipos de réplicas organizadas logicamente:
 Réplicas permanentes
 Réplicas iniciadas por servidor
 Réplicas iniciadas por cliente
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
o Réplicas permanentes:
 Conjunto inicial de réplicas que constituem um depósito de
 dados distribuído
 Número de réplicas permanentes normalmente é pequeno
 Exemplo: Site Web
 Arquivos que constituem um site são replicados para um número
limitado de servidores que estão em uma única localização
 Ou, site Web é copiado para um número limitado de servidores,
sites espelhados, que estão geograficamente espalhados pela
Internet
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
o Réplicas iniciadas por servidor:
 Cópias de um depósito de dados para aprimorar desempenho
são criadas por iniciativa do (proprietário do) depósito de dados
 Replicação ou migração de arquivos para proximidade de
 clientes que emitem muitas requisições
 Exemplo:
 Considere um servidor em NY. Pode acontecer uma rajada de
requisições de uma localização inesperada, longe do servidor.
 Neste caso, talvez seja vantajoso instalar uma quantidade de
réplicas temporárias nas regiões de onde vem as requisições
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
o Réplicas iniciadas por cliente:
 São mais conhecidas como Cache na máquina do cliente
 Recurso de armazenamento local, usado por um cliente para
armazenar temporariamente uma cópia dos dados que ele
acabou de requisitar
 Caches são usadas para melhorar o tempo de acesso aos
dados
 Gerenciamento da cache cabe inteiramente ao cliente
 O depósito de dados de onde os dados foram trazidos nada tem
a ver com a manutenção da consistência dos dados em cache
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
o Réplicas iniciadas por cliente:
 São mais conhecidas como Cache na máquina do cliente
 Quando um cliente quer acessar alguns dados, se conecta com
a cópia do depósito de dados mais próxima
 Quando a maioria das operações envolve somente ler dados, o
desempenho pode ser melhorado, dado que o cliente pode
armazenar dados requisitados em uma cache mais próxima.
 Cache pode estar localizada na máquina do cliente, ou em uma
outra máquina separada dentro da mesma rede local
 Dados são mantidos por um período limitado de tempo
Consistência e replicação
– Gerenciamento de réplicas
 Replicação e posicionamento de conteúdo
Consistência e replicação
– Gerenciamento de réplicas
 Distribuição de Conteúdo
o O gerenciamento de réplicas também trata da propagação de
conteúdo atualizado para servidores de réplicas relevantes,
seguindo os compromissos:
 Estado X Operações
 Protocolos de recuperação de atualização X Protocolos de envio
de atualizações
Consistência e replicação
– Gerenciamento de réplicas
 Estado X Operações
o Uma importante questão de projeto refere-se ao fato do que
deve ser propagado:
1. Somente uma notificação de uma atualização
2. Transferir dados de uma cópia para outra
3. Propagar a operação de atualização para outras cópias
Consistência e replicação
– Gerenciamento de réplicas
 Estado X Operações
o 1. Notificação de uma atualização
 Realizadas por protocolos de invalidação
 Cópias são informadas que uma atualização ocorreu e que os
dados que elas contém não são mais válidos
 Usam pouca largura de banda
 Útil quando existe muita operação de atualização e pouca leitura
 Dados não são propagados
 Toda vez que é requisitada uma operação em uma cópia
invalidada, em geral esta cópia precisa ser atualizada
anteriormente, segundo o modelo de consistência
Consistência e replicação
– Gerenciamento de réplicas
 Estado X Operações
o 2. Transferir Dados de Uma Cópia para Outra
 Várias modificações empacotadas em uma única mensagem
 Útil quando a taxa leitura/escrita é relativamente alta
 A probabilidade de uma atualização ser realmente efetiva é
grande
 Os dados modificados devem ser lidos antes de ocorrer uma
outra atualização sucessiva
 O fato de haver um grande número de leituras faz com que os
dados devam ser modificados antes de ocorrer a atualização
seguinte
Consistência e replicação
– Gerenciamento de réplicas
 Estado X Operações
o 3. Propagar a operação de atualização para outras cópias
 Não transferir dados, mas informar a cada réplica qual operação
de atualização ela deve realizar
 São informados os parâmetros e informações necessárias para
a operação de atualização
 Esta abordagem é denominada replicação ativa
 O principal benefício da replicação ativa é que as atualizações
muitas vezes podem ser propagadas com custos mínimos de
largura de banda
 Pode ser que a réplica precise de maior capacidade de
 processamento
Consistência e replicação
– Gerenciamento de réplicas
 Recuperação X Envio de Atualizações
o Abordagem baseada em envio
 Atualizações são propagadas para outras réplicas sem que
essas réplicas tenham solicitado essas atualizações
 Costumam ser usados entre réplicas permanentes e réplicas
iniciadas por servidor, mas também podem ser usadas para
enviar atualizações a caches de clientes
 Usadas quando é necessário alto grau de consistência
 Dados consistentes estão disponíveis imediatamente quando
solicitados
Consistência e replicação
– Gerenciamento de réplicas
 Recuperação X Envio de Atualizações
o Abordagem baseada em recuperação de atualizações
 Um servidor ou cliente requisita que um outro servidor lhe envie
quaisquer atualizações que ele tiver no momento em questão
 Comumente usado por caches de clientes
 Cliente sonda o servidor para ver se é necessária uma
atualização
Consistência e replicação
– Distribuição de conteúdo
 Comparação entre protocolos
Consistência e replicação
– Questões importantes
 Qual a principal razão de se utilizar modelos de consistência fraca.
o Muitas vezes é necessário utilizar replicação para aumentar
o desempenho do sistema. Com a replicação, surge a
necessidade de se manter réplicas consistentes.
o Trabalhar com consistência, de maneira a evitar uma
sincronização global de eventos, é a única forma de se
alcançar um bom desempenho em sistemas distribuídos de
larga escala.
o Assim, muitas aplicações aceitam modelos de consistência
fraca onde as restrições em relação a atualização das
réplicas podem ser relaxadas.
Consistência e replicação
– Questões importantes
 Porque é importante um contrato entre software e o depósito de dados?
o É importante que o depósito de dados implemente o que o
software espera. Se um programa espera consistência
sequencial, o depósito de dados deve garantir este nível de
consistência.
o Entretanto, para melhorar o desempenho pode-se fornecer
um modelo de consistência mais fraco. Neste caso, o
software deve concordar com as regras de um novo contrato.
Exercícios

Você também pode gostar