You are on page 1of 29

Consistncia e

Replicao
Alunos:
Felipe Marlon de Carvalho Sales
Fernando Henrique Ferreira e Silva

Consistncia e Replicao
Dados replicados so utilizados para aprimorar a
confiabilidade ou melhorar o desempenho;
Um dos principais problemas manter as rplicas
consistentes;
Modelos de consistncia tem como premissa que
vrios processos acessam dados compartilhados;
Modelos de consistncia para dados
compartilhados costumam ser difceis de
implementar com eficincia em sistemas de
grande escala;

Razes para Replicao


Confiabilidade
possvel continuar trabalho mesmo que uma
das rplicas caia;
Maior proteo de dados corrompidos;
Desempenho
Ampliao em quantidade para dividir trabalho
de servidor centralizado, diminuindo o esforo
para cada servidor;
Ampliao geogrfica para diminuir tempo de
acesso a
dados, aumentando o desempenho dos clientes;

Razes para Replicao


Consistncia
Sempre que uma cpia modificada,
necessrio atualizar todas as rplicas, o que pode
gerar, no mnimo, em maior largura de banda
para manter consistncia dos dados.

Modelos de Consistncia Centrados em


Dados
A consistncia tem sido discutida no contexto de
operaes de leitura e escrita em dados compartilhados
por meio de:
Memria compartilhada (distribuda);
Banco de dados (distribudo);
Sistema de arquivos (distribudo);
Os termos listados anteriormente sero chamado
indistintamente de depsito de dados.
Cada processo que pode acessar dados do depsito tem
uma cpia local (ou prxima) disponvel do depsito
inteiro.
Operaes de escrita so propagadas para outras cpias.
Alterou dados? Escrita. No alterou dados? Leitura.

Modelo de Consistncia contrato entre


processos
e depsitos que firma que o depsito funcionar de
maneira correta se os processos concordarem em
obedecer certas regras.

Modelos de Consistncia Centrados


em Dados Consistncia Contnua
Quais inconsistncias so tolerveis?
Definidas a partir de trs eixos, que formam faixas de
consistncia contnua:
1. Desvio em valores numricos entre rplicas;
Cpias no podem variar por mais que dado valor absoluto
ou relativo;
Nmero de atualizaes no vistas por outras rplicas;
2. Desvio em idade entre rplicas;
ltima vez que rplica foi atualizada;
3. Desvio em relao ordenao de operaes de
atualizao.
Tolera ordenao diferente temporariamente aplicadas
provisoriamente a uma cpia local temporria, mas que
devem ser refeitas na ordem correta antes de se tornarem
permanentes.

Modelos de Consistncia Centrados em


Dados Ordenao consistente de operaes

Modelos de programao concorrente que


tratam de ordenar operaes consistentemente em
dados compartilhados replicados:
Consistncia seqencial;
Consistncia causal.
Ampliam os modelos de consistncia contnua no
sentido de que, quando for preciso comprometer
atualizaes provisrias em rplicas, estas tero de
chegar a um
acordo sobre uma ordenao global dessas
atualizaes.

Modelos de Consistncia Centrados


em Dados Consistncia seqencial
Definido em 1979 por Lamport. Diz-se que um depsito de dados
seqencialmente consistente quando satisfaz a seguinte
condio:
O resultado de qualquer execuo o mesmo que seria se as
operaes (de leitura e escrita) realizadas por todos os processos
no depsito de dados fossem executadas na mesma ordem
seqencial e as operaes de cada processo individual
aparecessem nessa seqncia na ordem especificada por seu
programa.
Logo, qualquer intercalao vlida de operaes aceitvel, mas
todos os processos vem a mesma intercalao de operaes.
Nada dito sobre o tempo;
O processo v escritas de todos, mas apenas as suas
prprias leituras.

Modelos de Consistncia Centrados


em Dados Consistncia Causal
Representa um enfraquecimento da consistncia
seqencial no sentido que faz distino entre
eventos que so potencialmente relacionados por
causalidade e os que no so.
Se o evento b causado ou influenciado por
um
evento anterior a, ento necessrio que todos
vejam primeiro a e, depois, b. Se o processo P1
escreve x, em seguida P2 l x e escreve y, os dois
primeiros so causais, porm as duas escritas so
concorrentes.

Modelos de Consistncia Centrados


em Dados Consistncia Causal
Para um depsito de dados ser considerado
consistente por causalidade, necessrio que
obedea seguinte condio:
Escritas que so potencialmente relacionadas
por causalidade devem ser vistas por todos os
processos na mesma ordem. Escritas concorrentes
podem ser vistas em ordem diferente em mquinas
diferentes.

Implementar consistncia causal requer monitorar


quais processos viram quais escritas.

Modelos de Consistncia Centrados


em Dados Consistncia vs. Coerncia
Modelo de Consistncia descreve o que pode ser esperado
com relao ao conjunto de itens de dados quando vrios
processos operam concorrentemente sobre aqueles dados.
Um conjunto consistente se adere s regras descritas
pelo modelo.
Modelos de Coerncia descreve o que pode ser esperado
para s um item de dados.
Um item replicado em vrios lugares adere s regras
definidas pelo seu modelo de coerncia associado.
Modelo popular: consistncia seqencial, mas aplicado a
s um item de dados.
No caso de escritas concorrentes, a certa altura todos os
processos vero ocorrer a mesma ordem de atualizaes.

Modelos de Consistncia Centrados


no Cliente

Modelos de consistncia Centrados


no cliente Consistncia eventual
Um modelo de consistncia muito fraca, no qual depsitos de
dados so caracterizados pela ausncia de atualizaes
simultneas ou, quando tais atualizaes acontecem, elas podem
ser resolvidas com facilidade.
A maioria das operaes envolve ler dados.
Em muitos sistemas de bancos de dados, a maioria dos
processos dificilmente executa operaes de atualizao;
No DNS, apenas a autoridade de nomeao pode atualizar sua
poro do espao de nomes;
Conflitos escrita-escrita nunca ocorrero, mas sim conflitos
leitura-escrita.
Pginas WWW, que so atualizadas apenas pelo
webmaster;
Uso de proxies e caches para melhorar eficincia.

Modelos de consistncia Centrados


no cliente Consistncia eventual

Modelos de consistncia Centrados no


cliente Consistncia centrada no cliente
Quando se usa depsitos de dados de consistncia eventual
e um mesmo usurio pode operar sobre rplicas diferentes,
pode-se obter inconsistncias.
Resolvidas a partir de consistncia centrada no cliente:
D garantia a um nico cliente de consistncia de acesso
a um depsito de dados por esse cliente;
No h garantia para acessos concorrentes por clientes
diferentes.
Dividido em 4 modelos:
Leituras monotnicas;
Escritas monotnicas;
Leia-suas-escritas;
Escritas-seguem-leituras.

Modelos de consistncia Centrados


no cliente Leituras monotnicas
Se um processo ler o valor de um item de dados
x, qualquer operao de leitura sucessiva de x
executada por esse processo sempre retornar o
mesmo valor ou um valor mais recente.
Leitura de E-mails com cache.

Modelos de consistncia Centrados


no cliente Escritas monotnicas
Uma operao de escrita executada por um
processo em um item de dados x concluda antes
de qualquer operao de escrita sucessiva em x
pelo mesmo processo.
Atualizao verses de bibliotecas substituindo
uma ou mais funes.

Gerenciamento de Rplicas
Onde, quando e por quem rplicas devem ser
posicionadas?
Posicionar servidores de rplicas;
o posicionamento de hardware: encontrar as
melhores localizaes para colocar um servidor que
pode hospedar depsito de dados (ou parte dele);
Posicionar contedo;
o posicionamento dos dados e softwares:
encontrar o melhor servidor para colocar contedo.

Gerenciamento de Rplicas
Posicionamento do servidor de rplicas
Consiste em selecionar as melhores K de N localizaes
para se instalar servidores de rplicas;
Resolvidos por heursticas baseadas na distncia
(latncia, largura de banda) entre clientes e localizaes;
Ignorar posies de clientes considerando a Internet
como um conjunto de Sistemas Autnomos (AS) e distribuir
replicaes nos AS que possuem maior nmero de enlaces;
Identificar regies para posicionamento de rplicas
contendo ns que acessam o mesmo contedo.
Necessrio determinar o tamanho das clulas, feito pela
funo
da distncia mdia entre dois ns e do nmero de rplicas
requeridas.

Gerenciamento de Rplicas
Replicao e posicionamento de contedo
So distinguidos trs tipos de rplicas organizadas logicamente:
Rplicas permanentes: conjunto inicial de rplicas que
constituem um depsito distribudo;
Servidores que esto em uma nica localizao;
Espelhamento (servidores geograficamente espalhados pela
Internet).
Rplicas iniciadas por servidor: cpias de um depsito de
dados para aprimorar desempenho e criadas por iniciativa do
(proprietrio do) depsito de dados.
Para reduzir carga do servidor;
Replicao ou migrao de arquivos para proximidade de
clientes que emitem muitas requisies;
Rplicas iniciadas por cliente;
Cache na mquina do cliente;
Cache em mquina compartilhada por clientes de uma LAN.

Gerenciamento de Rplicas
Replicao e posicionamento de contedo

Gerenciamento de Rplicas
Distribuio de contedo
O gerenciamento de rplicas tambm trata da
propagao de contedo atualizado para servidores
de rplicas relevantes, seguindo os compromissos:
Estado vs. Operaes.
Protocolos de recuperao de atualizao vs.
protocolos de envio de atualizaes.
Unicast vs. Multicast.

Protocolos de Consistncia

Corresponde implementao de um modelo de


consistncia.

Protocolos baseados em
servidor-primrio
Servidor primrio-de-apoio com leitura local (remote-write):
Escritas encaminhadas e executadas no primrio;
Leitura Remota;
Atualizaes bloqueiam at terem executado em todas as
rplicas;

Servidor primrio-de-apoio com escrita local (local-write):


A cpia primria migra para o servidor local para poder ser
escrita;
Leituras locais;
Atualizaes so propagadas aps atualizao local;

Protocolos de replicao ativa


Nos protocolos baseados em primrio, o primrio
propaga as atualizaes antes de responder ao
cliente, atrasando a resposta do servio.
No protocolo de replicao ativa:
As leituras so executadas localmente
As escritas so executadas em todas as rplicas,
na mesma ordem
Portanto, requer multicast com ordenao total

Protocolos baseados em consensos


Tm por base o uso de votao - clientes tm de
obter permisso de vrios servidores antes de
lerem ou escreverem um dado replicado.
Para ler x, um cliente tem de reunir um readquorum com NR servidores, ou mais, de N rplicas
de x existentes.
Para escrever x, um cliente tem de reunir um writequorum com pelo menos NW servidores.
Os valores de NR e NW tm de satisfazer:
NR + NW > N (previne conflitos read-write)
NW > N=2 (previne conflitos write-wite)

You might also like