SlideShare ist ein Scribd-Unternehmen logo
1 von 116
Consistência e
Replicação
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DISCIPLINA DE SISTEMAS DISTRIBUIDOS
PROF. MESSIAS R. BATISTA
Agenda
 Introdução
 Modelo de consistência
centradas em dados
 Modelos de consistências
centradas no cliente
 Gerenciamento de réplicas
2
Introdução
3
“
De modo geral, dados são replicados
para aprimorar a confiabilidade ou
melhorar o desempenho. Um dos
principais problemas é manter as
réplicas consistentes.
4
Introdução ▫ Razões primárias para replicação:
▪ Confiabilidade;
▪ Desempenho;
Razões para
replicação
5
Introdução
“... dados são replicados para aumentar a
confiabilidade de um sistema”
▫ Um sistema de arquivo que é replicado
pode, a partir de uma falha, ser comutado
para uma réplica;
▫ Várias réplicas promove proteção contra
dados corrompidos;
Razões para
replicação
6
Introdução
Situação de Proteção
(Confiabilidade)
há três cópias de um arquivo e
toda operação de leitura e escrita
é executada em cada cópia
Onde está a proteção? Um erro de escrita?
Razões para
replicação
7
Introdução
“Replicação para conseguir desempenho é
importante quando um sistemas distribuído
precisa ser ampliado em quantidade e área
geográfica”
▫ Quantidade:
▪ Acontece quando um número maior de
processos precisa acessar dados que
são gerenciados por um único servidor;
▪ Pode-se aumentar o desempenho ao se
replicar o servidor, dividindo o trabalho;
Razões para
replicação
8
Introdução
▫ Por área geográfica:
▪ É verificada quando coloca-se uma
réplica próximo ao local que o processo
está sendo executado;
▪ O desempenho é verificado pelo
processo;
“Esse exemplo também ilustra que pode ser difícil
avaliar os benefícios da replicação para obter
desempenho”
Razões para
replicação
9
10
“
Se a replicação ajuda a
melhorar a confiabilidade e
desempenho, quem poderia
ser contra ela?
11
Introdução
Problemas da replicação:
▫ Manter várias cópias exige esforço para manter
a consistência;
▪ A modificação de um cópia a torna diferente
das demais;
▪ O preço da replicação é determinado
“quando e como essas modificações
precisam ser executadas”;
Razões para
replicação
12
Introdução
Situação
Melhorar tempo no acesso à páginas web
1. Browsers costumam armazenar no local uma
cópia de uma página que já foi acessada (cache);
2. O usuário requisitando a página mais de uma
vez, o browser utiliza a cópia local;
3. O tempo de acesso percebido é excelente;
4. Caso o usuário precise de um versão recente da
página, pode não tê-la;
5. A página pode ter sido atualizada e ainda não
propagada no cache;
Razões para
replicação
13
Introdução
Analisando soluções
Melhorar tempo no acesso à páginas web
1. Proibir o browser de manter cópias locais e
deixar para o servidor a total responsabilidade
de replicação;
2. Deixar que o servidor invalide ou atualize cada
cópia em cache, requerendo do servidor
monitoramento de todas as caches;
Razões para
replicação
14
Introdução A discussão...
Desempenho
versus
Escalabilidade
Razões para
replicação
15
Replicação como
técnica de
crescimento
16
Introdução
“Replicação e cache para melhorar
desempenho encontram ampla aplicação
como técnicas de aumento do tamanho.
De modo geral, questões de escalabilidade
aparecem sob a forma de problemas de
desempenho”
Replicação como
técnica de
crescimento
17
Introdução Cópias atualizadas é igual
maior largura de banda
P é um processo que acessa uma réplica
local N vezes por segundo, ao passo que a
réplica em si é atualizada M vezes por
segundo.
Replicação como
técnica de
crescimento
18
Introdução N << M
isto é, a razão acesso/atualização for
muito baixa, temos a situação em que
muitas versões atualizadas da réplica
local nunca serão acessadas por P
Replicação como
técnica de
crescimento
19
20
É preciso projetar o sistema pensando
em duas variáveis:
a) vale a pena colocar um réplica tão
próximo?
b) a estratégia de atualização da
réplica é realmente eficiente?
21
Consistência ou
Escalabilidade?
Introdução Consistência estrita (informal) fornecida
pela replicação síncrona.
“A ideia fundamental é que uma
atualização seja realizada em todas as
cópias como uma única operação atômica,
ou transação”
Replicação como
técnica de
crescimento
22
Introdução
Como sincronizar todas as réplicas nesta
abordagem? (dificuldade)
▫ É necessário definir QUANDO uma
atualização deverá ser realizada
localmente.
Replicação como
técnica de
crescimento
23
Introdução
A cura pode ser pior do que a
doença
Replicação como
técnica de
crescimento
24
Introdução
“[...] problemas de escalabilidade
podem ser amenizados pela aplicação
de replicação e cache, o que resulta em
melhor desempenho.”
“[...] manter todas as cópias
consistentes em geral requer
sincronização global, que é
inerentemente cara em termos de
desempenho”
Replicação como
técnica de
crescimento
25
Introdução
“[...] problemas de escalabilidade
podem ser amenizados pela aplicação
de replicação e cache, o que resulta em
melhor desempenho.”
“[...] manter todas as cópias
consistentes em geral requer
sincronização global, que é
inerentemente cara em termos de
desempenho”
Replicação como
técnica de
crescimento
26
Introdução
Solução!
▫ “Relaxar” as restrições de consistência;
▫ Abrandar requisitos de que atualizações
precisam ser executadas como operações
atômicas;
▫ Possivelmente, evitar sincronizações globais
instantâneas, com o objetivo de ganhar
desempenho;
Replicação como
técnica de
crescimento
27
Introdução
“O preço a pagar é que pode ser que as
cópias nem sempre sejam iguais em
todos os lugares”
Replicação como
técnica de
crescimento
28
Modelo de
Consistência
Centrados em
Dados
29
“
Por tradição, a consistência tem sido
discutida no contexto de operações de
leitura e escrita em dados compartilhados
disponíveis por meio de memória
compartilhada (distribuída), de um banco
de dados (distribuído) compartilhado ou de
um sistema de arquivos (distribuído).
30
Depósito de
Dados
Depósito de Dados
(termo amplo)
▫ Pode ser distribuído fisicamente por várias
máquinas;
▫ Cada processo que pode acessar dados do
depósito tem uma cópia local (ou próxima)
disponível do depósito inteiro;
▫ Operações de escrita são propagadas para
outras cópias;
Modelo de
consistência
centrados em
dados
31
Depósito de
Dados
Modelo de consistência centrados em dados32
Operação de
Dados
“Uma operação de dados é classificada
como uma operação de escrita quando
altera os dados, caso contrário é
classificada como uma operação de
leitura”
Modelo de
consistência
centrados em
dados
33
Modelo de
consistência
“Um modelo de consistência é, em
essência, um contrato entre processos
e o depósito de dados. Ele diz que, se
os processos concordarem em
obedecer a certas regras, o depósito
promete funcionar de maneira correta”
Modelo de
consistência
centrados em
dados
34
35
Como podemos definir com precisão
qual operação de escrita é a última a
ser realizada quando se discute
sincronização/consistência?
“Como alternativa, precisamos fornecer outras definições, o que
resulta em um conjunto de modelos de consistência”
Consistência
contínua
36
Solução para
replicação de
dados
“[...] não existe melhor solução para
replicar dados”
▫ A replicação propõem problemas de
consistência que não podem ser resolvidos com
eficiência;
▫ Seria necessário abrandar a consistência para
ter esperança de conseguir soluções eficientes;
▫ Não existem regras gerais sobre como abrandar
a consistência;
▫ O que seria tolerável como consistente em
muitas aplicações?
Consistência
contínua
37
Inconsistências
toleráveis
1. Desvio em valores números entre
réplicas;
2. Desvio em idade entre réplicas;
3. Desvio em relação à ordenação de
operação de atualização;
Esses desvios trabalham como faixas
de consistência contínua.
Consistência
contínua
38
Inconsistências
toleráveis
Inconsistência em termos de
desvios numéricos
Exemplo: Replicação de registro que contêm
preços do mercado de ações. Restringir que
duas cópias não devem se desviar por mais do
$0,02 (absoluto). Ou especificar um desvio
numérico relativo, 0,5%.
Consistência
contínua
39
Inconsistências
toleráveis
“Em ambos os casos, veríamos que, se o preço
de uma ação subir (e uma das réplicas for
imediatamente atualizada) sem violar os
desvios numéricos especificados, as réplicas
ainda seriam consideradas como mutuamente
consistentes”
“Os desvio numérico também ide ser
entendido em termos do número de
atualizações que foram aplicadas a
determinada réplica, mas que ainda não forma
vistas pelas outras”
Consistência
contínua
40
Inconsistências
toleráveis
Inconsistência em termos de
desvios de idade
▫ Estão relacionados com a última vez que uma
réplica foi atualizada;
▫ Algumas aplicações toleram o fornecimento de
dados antigos, mas não em demasia;
Exemplo: previsões do tempo em geral
permanecem razoavelmente exatas durante algum
tempo, por horas. Assim, um servidor pode receber
atualizações em tempos oportunos, mas pode
decidir uma periocidade de propagação para as
réplicas.
Consistência
contínua
41
Inconsistências
toleráveis
Inconsistência em termos de
desvios em relação a ordenação
das atualizações
▫ É permitido que a ordenação das atualizações
seja diferente nas várias réplicas, contato que as
diferenças respeitem um limite;
Exemplo: Um modo de considerar essas
atualizações é que elas são aplicadas
provisoriamente a uma cópia local, à espera de um
acordo global de todas as réplicas. Pode acontecer
de algumas atualizações aplicadas precisarem se
reorganizar para manter o acordo global.
Consistência
contínua
42
Inconsistências
toleráveis
Inconsistência em termos de
desvios em relação a ordenação
das atualizações
“A intuição nos diz que os desvios de
ordenação são muito mais difíceis de
entender do que as outras duas
métricas de consistência”
Consistência
contínua
43
Noção de uma
conit
44
O que é Conit
Consistency (co) + unit (nit)
Uma conit especifica a unidade segundo a qual
a consistência deve ser medida
Exemplo: no exemplo da bolsa de valores, uma
conit poderia ser definida como um registro
que representa uma única ação.
Noção de uma
conit
45
46
Limitações ao
se utilizar
conits
“Embora do ponto de vista de conceito as conits formem
um modo atraente de capturar requisitos de consistência,
há duas questões importantes que precisam ser tratadas
antes que elas possam ser colocadas em uso na prática”
1. Impor consistência necessita de procotolos
(discutido a frente);
2. Desenvolvedores de programa precisam
especificar os requisitos de consistência:
I. Obter tais requisitos é extremamente difícil;
II. Entender as informações detalhadas sobre
consistência que precisam ser fornecidas;
III. Seria necessário haver interfaces de
programação que simplificasse e facilitasse o
processo;
Noção de uma
conit
47
Ordenação
consistente de
operações
48
“
Além da consistência contínua,
há um imenso acervo de
trabalho sobre modelos de
consistência centrados em
dados acumulado em décadas
passadas.
49
Consistência
Sequencial
50
Consistência
sequencial e
consistência
casual
Consistência sequencial e
consistência casual
“Confrontados com o fato de que em computação paralela
e distribuída vários processos vão precisar compartilhar
recursos simultaneamente, os pesquisadores procuraram
expressar a semântica de acessos concorrentes quando os
recursos compartilhados forem replicados”
Nesta seção iremos destacar:
 Modelos de ordenamento de operações consistentes em
dados compartilhados;
 (estes) modelos ampliam o consistência contínua;
 Tratam como chegar a um acordo sobre uma ordenação
global das atualizações;
Ordenação
consistente de
operações
51
Consistência
sequencial
Ordenação
consistente de
operações
52
Consistência
sequencial
“A consistência sequencial é um importante
modelo de consistência centrado em dados
que foi definido pela primeira vez por Lamport
(1979) no contexto da memória compartilhada
para sistemas multiprocessadores”
53
Ordenação
consistente de
operações
Consistência
sequencial
Mas, estamos falando de depósito de dados
consistentes, não esqueçamos. Quando um
depósito de dados pode ser consistente
neste contexto?
Ele precisa satisfazer 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 sequencia na ordem especificada por seu
programa.
54
Ordenação
consistente de
operações
Consistência
sequencial
O que isso significa?
 Processos executam concorrentemente em
máquinas diferentes, qualquer intercalação válida
de operações de leitura e escrita é um
comportamento aceitável;
 Mas, todos os processos veem a mesma
intercalação de operações;
 Isto é, não há nenhuma referência à operação de
escrita ‘mais recente’ sobre um item de dados;
Na consistência sequencial o processo vê escritas de
todos os processos, mas apenas suas próprias leituras
55
Ordenação
consistente de
operações
Consistência
sequencial
56
Ordenação
consistente de
operações
Consistência
sequencial
57
Ordenação
consistente de
operações
Consistência
Casual
58
Consistência
Casual
“O modelo de consistência causal representa
um enfraquecimento da consistência
sequencial no sentido de que faz uma distinção
entre eventos que são potencialmente
relacionados por causalidade os que não são”
Ordenação
consistente de
operações
59
Consistência
Casual
Como entender a causalidade? É simples.
“Se o evento b é causado ou influenciado por um
evento anterior a, a causalidade requer que todos
vejam primeiro a e, depois, b”
Ordenação
consistente de
operações
60
Consistência
Casual
Como entender a causalidade? É simples.
“Se o evento b é causado ou influenciado por um
evento anterior a, a causalidade requer que todos
vejam primeiro a e, depois, b”
Diferente de:
“Operações que não estão relacionados por
causada são concorrentes”
Ordenação
consistente de
operações
61
Consistência
Casual
Para um depósito de dados ser considerado
consistente por causalidade, é necessário
que ele obedeça à seguinte condição:
Escritas que são potencialmente relacionadas por
causalidade devem ser vistas por todos os
processos na mesma ordem. Escritas concorrentes
podem ser vistas em ordem diferente em
máquinas diferentes.
Ordenação
consistente de
operações
62
Consistência
Casual
Ordenação
consistente de
operações
63
É importante lembrar que “escritas concorrentes podem ser
vistas em ordem diferente em máquinas diferentes”
Consistência
Casual
Ordenação
consistente de
operações
64
Consistência
Casual
Ordenação
consistente de
operações
65
Consistência
Casual
o Um depósito consistente por causalidade
não requer que escritas concorrentes sejam
ordenadas globalmente;
o A figura (b) reflete uma situação que não
seria aceitável para um depósito
sequencialmente consistente;
Ordenação
consistente de
operações
66
“
Implementar consistência causal requer
monitorar quais processos viram quais
escritas. [...] significa que é preciso
construir e manter um gráfico de
dependência que mostre qual operação é
dependente de quais outras operações.
67
Operações de
agrupamento
68
“
Consistências sequencial e causal são
definidas no nível de operações de
leitura e escrita. Esse nível de
granularidade se deve a razões
históricas: esse modelos [...] foram
implementados no nível de hardware.
69
Operações de
agrupamento
É importante compreender que a consistência
sequencial e causal estão diretamente
relacionadas a uma granularidade de leitura e
escrita.
“Em muitos casos, a granularidade fina
desses modelos de consistência não
combina com a granularidade fornecida
pelas aplicações”
Ordenação
consistente de
operações
70
Resumo
Os modelos de consistência descritos nesta
seção objetivam fornecer uma visão
consistente de um depósito de dados.
Uma premissa importante é que processos
concorrentes podem estar atualizando o
depósito de dados simultaneamente e que é
necessário prover consistência em face de tal
concorrência.
Ordenação
consistente de
operações
71
Resumo
“A capacidade de manipular operações
concorrentes sobre dados compartilhados e, ao
mesmo tempo, manter a consistência
sequencial é fundamental para sistemas
distribuídos”
“Por razões de desempenho, a consistência
sequencial pode ser possivelmente garantida
somente quando processos usam mecanismos
de sincronização tais como transações ou
travas”
Ordenação
consistente de
operações
72
Modelos de
Consistência
Centrados no
Cliente
73
Introdução
▫ Os depósitos de dados, presentes nesta seção, se
caracterizam pela ausência de atualizações simultâneas;
▫ Outra característica possível também é a facilidade que
as atualizações podem ser resolvidas;
▫ Os depósitos de dados a seguir, oferecem um modelo
de consistência muito fraca, denominado consistência
eventual;
“Com a introdução de modelos de consistência especiais
centrados no cliente, muitas inconsistências podem ser
ocultadas de modo relativamente barato”
Modelos de
Consistência
Centrados no
Cliente
74
Consistência
eventual
75
Consistência
eventual
“Até que ponto os processo realmente operam de
maneira coerente e até que ponto a consistência
precisa ser garantida são coisa que podem
variar”
Por exemplo:
▫ Sistemas de banco de dados realizam mais leitura
de dados do que atualizações;
▫ Poucos processos realizam operações de
atualização;
▫ Com qual frequência/rapidez as atualizações
devem ser disponibilizadas para processos que
realizem somente leitura?
Modelos de
Consistência
Centrados no
Cliente
76
Consistência
eventual
 Comum é encontrar poucos (ou único) processos
que possam realizar atualização (tenham
permissão);
 Exemplo: sistema de nomeação DNS;
 Evita-se conflitos resultantes de duas operações
que querem executar uma atualização sobre os
mesmos dados;
 Conflitos escrita-escrita;
 Necessita de atenção para um processo que
deseja atualizar um item de dados enquanto
outro está tentando ler aquele item
simultaneamente;
 Conflitos leitura-escrita;
Modelos de
Consistência
Centrados no
Cliente
77
Consistência
eventual
“Ocorre que muitas vezes é aceitável
propagar uma atualização de maneira lenta,
o que significa que um processo que está
lendo verá uma atualização só depois de
passado algum tempo da atualização”
Modelos de
Consistência
Centrados no
Cliente
78
Consistência
eventual
Inconsistência aceitável
Utilização de cache. O usuário ter acesso a páginas
Web desatualizadas.
O quanto seria aceitável dados de um monitor
cardíaco desatualizados?
O que seria considerado velho uma informação
sobre tropas inimigas avançado por um território em
guerra?
Outros exemplos?
Modelos de
Consistência
Centrados no
Cliente
79
Consistência
eventual
Quando tratamos de Consistência Eventual...
“[...] se nenhuma atualização ocorrer por
tempo bastante longo, todas as réplicas ficarão
gradativamente consistentes”
Depósito de dados de consistência eventual
tem a seguinte propriedade:
“[...] na ausência de atualizações todas as
réplicas convergem em direção a cópias
idênticas uma às outras”
Modelos de
Consistência
Centrados no
Cliente
80
Consistência
eventual
Problema: acessar réplicas diferentes em curto
período de tempo!
Modelos de
Consistência
Centrados no
Cliente
81
Espera-se que ao mudar de localização se tenha todas as alterações a
disposição, em vez disso, parece que nada aconteceu.
Consistência
eventual
▫ Resolução: Introduzir consistência centrada no
cliente.
▫ Garantir consistência de acesso um depósito de
dados, por um único cliente;
“Bayou é um sistema de bando de dados
desenvolvido para computação móvel, no qual a
premissa é que a conectividade de rede é não
confiável e sujeita a vários problemas de
desempenho”
▫ Itens de dados tem um proprietário associado;
▫ O proprietário é o único que tem permissão de
modificar esse item;
▫ Evita-se conflitos de escrita-escrita;
Modelos de
Consistência
Centrados no
Cliente
82
Leituras
monotônicas
83
Leituras
monotônicas
 Leituras monotônicas é um modelo de
consistência centrado no cliente;
 Pode ser considerado um depósito dado que
oferece consistência monotônica:
 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.
“Em outras palavras, 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”
Modelos de
Consistência
Centrados no
Cliente
84
85
Escritas
monotônicas
86
Escritas
monotônicas
 “[...] é importante que operações de escrita sejam
propagadas na ordem correta para todas as
cópias do depósito de dados”
 Consistência de Escritas Monotônica
 Para um depósito ser considerado consistente
por escrita monotônica, precisa atender a
seguinte condiçã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.
Modelos de
Consistência
Centrados no
Cliente
87
“
[...] concluir uma operação de escrita significa
que a cópia na qual uma operação sucessiva
é executada reflete o efeito de uma operação
de escrita anterior executada pelo mesmo
processo, sem importar onde essa operação
foi iniciada.
88
Escritas
monotônicas
o Seguindo esta perspectiva, sendo necessário, uma
nova escrita precisará esperar que velhas escritas
sejam concluídas;
o Assim, a consistência de escrita monotônica é
parecida com consistência Fifo centrada em
dados;
o Restrição de ordenação também se aplica a
escrita monotônicas, entretanto esta perspectiva
considera a consistência de apenas um único
processo, em vez de um conjunto de processos
concorrentes;
o Por definição, operações de escrita pelo mesmo
processo são realizadas na mesma ordem em que
são iniciadas;
Modelos de
Consistência
Centrados no
Cliente
89 Importante!
90
Leia-suas-
escritas
91
Leia-suas-
escritas
▫ Modelo de consistência centro no cliente e que
está intimamente relacionado com leituras
monotônicas;
▫ Um depósito de dados que fornece consistência
leia-suas-escritas precisa validar a seguinte
condiçã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;
“[...] uma operação de escrita é sempre concluída
antes de uma operação de leitura sucessiva pelo
mesmo processo, não importando onde essa
operação de leitura ocorrerá”
Modelos de
Consistência
Centrados no
Cliente
92
“
A consistência ‘leia-suas-escritas’
pode garantir que, se o editor e o
browser forem integrados em um
único programa, a cache será
invalidade quando a página for
atualizada, de modo que o arquivo
atualizada será buscado e exibido.
93
94
Escritas-
seguem-leituras
95
Escritas-
seguem-
leituras
 Modelo no qual as atualizações são propagadas
como resultado de operações de leitura precedentes;
 Um depósito de dados que provê consistência de
escritas-seguem-leituras, valida a seguinte condição:
 Garanta-se que uma operação de escrita por um
processo em um idem de dados x em seguida a
operação de leitura anterior em x pelo mesmo
processo ocorre sobre o mesmo valor, ou sobre o
valor mais recente de x que foi lido.
“Em outras palavras, 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 por esse processo”
Modelos de
Consistência
Centrados no
Cliente
96
97
Gerenciamento
de Réplicas
98
“
Uma questão fundamental para qualquer
sistema distribuído que suporte replicação
é decidir onde, quando e por quem as
réplicas devem ser posicionadas, e na
sequência quais mecanismos usar para
manter as réplicas consistentes.
99
Problemas
1.Posicionar servidores de
réplicas;
2.Posicionar conteúdo;
Gerenciamento de
Réplicas
100
Problemas
Posicionar servidores de réplicas
Refere-se a encontrar as melhores localizações para
colocar um servidor que pode hospedar um depósito
de dados (ou parte dele).
Posicionar conteúdo
Refere-se a achar os melhores servidores para
colocar conteúdo.
Gerenciamento de
Réplicas
101
Posicionamento
do servidor de
réplicas
102
“
O posicionamento de servidores
de réplicas não é um problema
estudado intensivamente pela
simples razão de ser mais uma
questão gerencial e comercial
do que um problema de
otimização.
103
Posicionamento
do servidor de
réplicas
Sobre
POSICIONAMENTO DO SERVIDOR DE RÉPLICAS
▫ Deve-se se considerar como ponto de partida a
distância entre cliente e localizações;
▫ A distância pode ser medida em termos de
latência ou largura de banda;
▫ A solução está em selecionar um servidor por vez,
calculando a distância média entre o servidor e
seus clientes, tentando coloca-lo a menor
distância possível;
Gerenciamento de
Réplicas
104
Posicionamento
do servidor de
réplicas
Alternativa a primeira solução
POSICIONAMENTO DO SERVIDOR DE RÉPLICAS
▫ Realizar o calculo da distância média é demasiado
custoso;
▫ Alternativa proposta por Randoslavov: ignorar
a posição dos clientes e apenas considerar que a
topologia da Internet é formada pelos sistemas
autônomos;
Gerenciamento de
Réplicas
105
Posicionamento
do servidor de
réplicas
Solução Definitiva
POSICIONAMENTO DO SERVIDOR DE RÉPLICAS
▫ Método desenvolvido para identificar
rapidamente uma região para o posicionamento
de réplicas;
▫ Necessário identificar o maiores clusters de nós;
▫ Designa-se um nó de cada cluster para hospedar
o conteúdo replicado;
▫ Células mais densas são selecionadas para
posicionamento de um servidor de réplicas;
Gerenciamento de
Réplicas
106
107
“
[...] um tamanho adequado
para célula pode ser
calculado como uma simples
função da distância média
entre dois nós e do número
de réplicas requeridas.
108
Replicação e
posicionamento
de conteúdo
109
“
Quando se trata de replicação
e posicionamento de
conteúdo, podem-se
distinguir três tipos
diferentes de réplicas
organizadas logicamente.
110
Replicação e
posicionamento
de conteúdo
Réplicas Permanentes
“Réplicas permanentes podem ser consideradas como o conjunto
inicial de réplicas que constituem um depósito de dados
distribuídos”
Primeiro tipo: relacionado com os arquivos que constituem um
site, que são replicados para um número limitado de servidores que
estão em uma única localização;
Segundo tipo: é denominado espelhamento, é um tipo de
distribuição de site web. O Website é copiado para um número
limitado de servidores, denominados sites espelhados, e estão
geograficamente espalhados pela internet.
“A característica comum entre sites Web
espelhados e sites Web baseados em clusters é
que há apenas um pequeno número de réplicas,
cuja configuração é mais ou menos estática”
Gerenciamento de
Réplicas
111
Replicação e
posicionamento
de conteúdo
Réplicas iniciadas por servidor
“Ao contrário de réplicas permanentes, réplicas iniciadas por
servidor são cópias de um depósito de dados que existem para
aprimorar desempenho e que são criadas por iniciativa do
(proprietário do) depósito de dados”
Considera-se: a partir de um “rajada repentina de requisições” seja
possível instalar uma quantidade de servidores temporários
capazes de auxiliar no provimento do serviço.
“O algoritmo para replicação dinâmica leva em conta duas
questões”
A primeira é que a replicação pode ocorrer para reduzir a carga de
um servidor.
A segunda é que arquivos específicos em um servidor podem ser
migrados ou replicados para servidores posicionados na
proximidade de clientes que emitem muitas requisições para esses
arquivos.
Gerenciamento de
Réplicas
112
Replicação e
posicionamento
de conteúdo
Réplicas iniciadas por clientes
“Réplicas iniciadas por clientes são mais conhecidas como caches
(de cliente)”
▫ O gerenciamento do cache é inteiramente do cliente;
▫ O depósito de dados não tem responsabilidade pela
manutenção da consistência dos dados em cache;
▫ Pode haver situações em que o cliente se conecte ao
depósito de dados para receber informações sobre a
idade dos dados em seu cache;
“Caches de cliente são usados somente para melhorar o
tempo de acesso aos dados. [...] quando um cliente quer
acessar alguns dados ele se conecta com a cópia do
depósito de dados mais próxima”
Gerenciamento de
Réplicas
113
114
Atividade
Escreva uma resenha do ponto
7.4.3 Distribuição de conteúdo
a resenha deve ser entregue ao
processo via Moodle até o dia
16/05 às 23h59.
O formato de entrega deverá ser
em processador de texto .doc,
.docx, ou .odt.
115
Consistência e
Replicação
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DISCIPLINA DE SISTEMAS DISTRIBUIDOS
PROF. MESSIAS R. BATISTA

Weitere ähnliche Inhalte

Was ist angesagt?

SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Aula 1 Modelagem De Processos
Aula 1   Modelagem De ProcessosAula 1   Modelagem De Processos
Aula 1 Modelagem De ProcessosMarcos Barato
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumWellington Oliveira
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Topologias Fisicas de rede
Topologias Fisicas de redeTopologias Fisicas de rede
Topologias Fisicas de redediogoaaf
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoHus Juky
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Marlene Guirado Psicologia Institucional (2).pdf
Marlene Guirado Psicologia Institucional (2).pdfMarlene Guirado Psicologia Institucional (2).pdf
Marlene Guirado Psicologia Institucional (2).pdfrosemendes2001hotmai
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemasFelipe Oliveira
 
01 - Informatica Basica.pdf
01 - Informatica Basica.pdf01 - Informatica Basica.pdf
01 - Informatica Basica.pdfNiltonRaice
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 

Was ist angesagt? (20)

Pseudoparalelismo
PseudoparalelismoPseudoparalelismo
Pseudoparalelismo
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Aula 1 Modelagem De Processos
Aula 1   Modelagem De ProcessosAula 1   Modelagem De Processos
Aula 1 Modelagem De Processos
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes Tanenbaum
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Aula 11 instalação de hardware
Aula 11 instalação de hardwareAula 11 instalação de hardware
Aula 11 instalação de hardware
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Topologias Fisicas de rede
Topologias Fisicas de redeTopologias Fisicas de rede
Topologias Fisicas de rede
 
O Luto
O LutoO Luto
O Luto
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Marlene Guirado Psicologia Institucional (2).pdf
Marlene Guirado Psicologia Institucional (2).pdfMarlene Guirado Psicologia Institucional (2).pdf
Marlene Guirado Psicologia Institucional (2).pdf
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Gestores De Disco
Gestores De DiscoGestores De Disco
Gestores De Disco
 
Saude Mental e Espiritualidade
Saude Mental e EspiritualidadeSaude Mental e Espiritualidade
Saude Mental e Espiritualidade
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
01 - Informatica Basica.pdf
01 - Informatica Basica.pdf01 - Informatica Basica.pdf
01 - Informatica Basica.pdf
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 

Ähnlich wie Aula09 SD - Replicação e Consistência

19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptxRoberto Aragy
 
Estrategias de backup e recovery
Estrategias de backup e recoveryEstrategias de backup e recovery
Estrategias de backup e recoveryRodrigo Crespi
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIECloves da Rocha
 
e-book Backup Cloud
e-book Backup Cloude-book Backup Cloud
e-book Backup Cloudgoocloud
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Aula01 administrador de banco de dados dba
Aula01 administrador de banco de dados  dbaAula01 administrador de banco de dados  dba
Aula01 administrador de banco de dados dbajjuniorlopes
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring DatabasesIsmael
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdfEizo Edson
 
Artigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeArtigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeAugusto Cezar Pinheiro
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital PreservationRoberto Beraldo Chaiben
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -MySQL Brasil
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Banco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasBanco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasFernandaNascimento276697
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQLCleber Dantas
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé Pereira
 

Ähnlich wie Aula09 SD - Replicação e Consistência (20)

19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
 
Estrategias de backup e recovery
Estrategias de backup e recoveryEstrategias de backup e recovery
Estrategias de backup e recovery
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIE
 
e-book Backup Cloud
e-book Backup Cloude-book Backup Cloud
e-book Backup Cloud
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Aula01 administrador de banco de dados dba
Aula01 administrador de banco de dados  dbaAula01 administrador de banco de dados  dba
Aula01 administrador de banco de dados dba
 
SISTEMA SD
SISTEMA SDSISTEMA SD
SISTEMA SD
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring Databases
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Alta Disponibilidade
Alta Disponibilidade Alta Disponibilidade
Alta Disponibilidade
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
Artigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeArtigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidade
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Banco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasBanco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, características
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
 

Mehr von Messias Batista

Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Messias Batista
 
Aula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesAula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesMessias Batista
 
Aula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesAula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesMessias Batista
 
Aula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesAula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesMessias Batista
 
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Messias Batista
 
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Messias Batista
 
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto... Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...Messias Batista
 
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Messias Batista
 
Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Messias Batista
 
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Messias Batista
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaMessias Batista
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosMessias Batista
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasMessias Batista
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosMessias Batista
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Aula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoAula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoMessias Batista
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Messias Batista
 
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Messias Batista
 
Aula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoAula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoMessias Batista
 

Mehr von Messias Batista (20)

Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
 
Aula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesAula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas Organizações
 
Aula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesAula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas Importantes
 
Aula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesAula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e Matrizes
 
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
 
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
 
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto... Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
 
Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)
 
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Aula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoAula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - Sincronização
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3
 
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
 
Aula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoAula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - Comunicação
 

Aula09 SD - Replicação e Consistência

  • 1. Consistência e Replicação CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS DISTRIBUIDOS PROF. MESSIAS R. BATISTA
  • 2. Agenda  Introdução  Modelo de consistência centradas em dados  Modelos de consistências centradas no cliente  Gerenciamento de réplicas 2
  • 4. “ De modo geral, dados são replicados para aprimorar a confiabilidade ou melhorar o desempenho. Um dos principais problemas é manter as réplicas consistentes. 4
  • 5. Introdução ▫ Razões primárias para replicação: ▪ Confiabilidade; ▪ Desempenho; Razões para replicação 5
  • 6. Introdução “... dados são replicados para aumentar a confiabilidade de um sistema” ▫ Um sistema de arquivo que é replicado pode, a partir de uma falha, ser comutado para uma réplica; ▫ Várias réplicas promove proteção contra dados corrompidos; Razões para replicação 6
  • 7. Introdução Situação de Proteção (Confiabilidade) há três cópias de um arquivo e toda operação de leitura e escrita é executada em cada cópia Onde está a proteção? Um erro de escrita? Razões para replicação 7
  • 8. Introdução “Replicação para conseguir desempenho é importante quando um sistemas distribuído precisa ser ampliado em quantidade e área geográfica” ▫ Quantidade: ▪ Acontece quando um número maior de processos precisa acessar dados que são gerenciados por um único servidor; ▪ Pode-se aumentar o desempenho ao se replicar o servidor, dividindo o trabalho; Razões para replicação 8
  • 9. Introdução ▫ Por área geográfica: ▪ É verificada quando coloca-se uma réplica próximo ao local que o processo está sendo executado; ▪ O desempenho é verificado pelo processo; “Esse exemplo também ilustra que pode ser difícil avaliar os benefícios da replicação para obter desempenho” Razões para replicação 9
  • 10. 10
  • 11. “ Se a replicação ajuda a melhorar a confiabilidade e desempenho, quem poderia ser contra ela? 11
  • 12. Introdução Problemas da replicação: ▫ Manter várias cópias exige esforço para manter a consistência; ▪ A modificação de um cópia a torna diferente das demais; ▪ O preço da replicação é determinado “quando e como essas modificações precisam ser executadas”; Razões para replicação 12
  • 13. Introdução Situação Melhorar tempo no acesso à páginas web 1. Browsers costumam armazenar no local uma cópia de uma página que já foi acessada (cache); 2. O usuário requisitando a página mais de uma vez, o browser utiliza a cópia local; 3. O tempo de acesso percebido é excelente; 4. Caso o usuário precise de um versão recente da página, pode não tê-la; 5. A página pode ter sido atualizada e ainda não propagada no cache; Razões para replicação 13
  • 14. Introdução Analisando soluções Melhorar tempo no acesso à páginas web 1. Proibir o browser de manter cópias locais e deixar para o servidor a total responsabilidade de replicação; 2. Deixar que o servidor invalide ou atualize cada cópia em cache, requerendo do servidor monitoramento de todas as caches; Razões para replicação 14
  • 17. Introdução “Replicação e cache para melhorar desempenho encontram ampla aplicação como técnicas de aumento do tamanho. De modo geral, questões de escalabilidade aparecem sob a forma de problemas de desempenho” Replicação como técnica de crescimento 17
  • 18. Introdução Cópias atualizadas é igual maior largura de banda P é um processo que acessa uma réplica local N vezes por segundo, ao passo que a réplica em si é atualizada M vezes por segundo. Replicação como técnica de crescimento 18
  • 19. Introdução N << M isto é, a razão acesso/atualização for muito baixa, temos a situação em que muitas versões atualizadas da réplica local nunca serão acessadas por P Replicação como técnica de crescimento 19
  • 20. 20 É preciso projetar o sistema pensando em duas variáveis: a) vale a pena colocar um réplica tão próximo? b) a estratégia de atualização da réplica é realmente eficiente?
  • 22. Introdução Consistência estrita (informal) fornecida pela replicação síncrona. “A ideia fundamental é que uma atualização seja realizada em todas as cópias como uma única operação atômica, ou transação” Replicação como técnica de crescimento 22
  • 23. Introdução Como sincronizar todas as réplicas nesta abordagem? (dificuldade) ▫ É necessário definir QUANDO uma atualização deverá ser realizada localmente. Replicação como técnica de crescimento 23
  • 24. Introdução A cura pode ser pior do que a doença Replicação como técnica de crescimento 24
  • 25. Introdução “[...] problemas de escalabilidade podem ser amenizados pela aplicação de replicação e cache, o que resulta em melhor desempenho.” “[...] manter todas as cópias consistentes em geral requer sincronização global, que é inerentemente cara em termos de desempenho” Replicação como técnica de crescimento 25
  • 26. Introdução “[...] problemas de escalabilidade podem ser amenizados pela aplicação de replicação e cache, o que resulta em melhor desempenho.” “[...] manter todas as cópias consistentes em geral requer sincronização global, que é inerentemente cara em termos de desempenho” Replicação como técnica de crescimento 26
  • 27. Introdução Solução! ▫ “Relaxar” as restrições de consistência; ▫ Abrandar requisitos de que atualizações precisam ser executadas como operações atômicas; ▫ Possivelmente, evitar sincronizações globais instantâneas, com o objetivo de ganhar desempenho; Replicação como técnica de crescimento 27
  • 28. Introdução “O preço a pagar é que pode ser que as cópias nem sempre sejam iguais em todos os lugares” Replicação como técnica de crescimento 28
  • 30. “ Por tradição, a consistência tem sido discutida no contexto de operações de leitura e escrita em dados compartilhados disponíveis por meio de memória compartilhada (distribuída), de um banco de dados (distribuído) compartilhado ou de um sistema de arquivos (distribuído). 30
  • 31. Depósito de Dados Depósito de Dados (termo amplo) ▫ Pode ser distribuído fisicamente por várias máquinas; ▫ Cada processo que pode acessar dados do depósito tem uma cópia local (ou próxima) disponível do depósito inteiro; ▫ Operações de escrita são propagadas para outras cópias; Modelo de consistência centrados em dados 31
  • 32. Depósito de Dados Modelo de consistência centrados em dados32
  • 33. Operação de Dados “Uma operação de dados é classificada como uma operação de escrita quando altera os dados, caso contrário é classificada como uma operação de leitura” Modelo de consistência centrados em dados 33
  • 34. Modelo de consistência “Um modelo de consistência é, em essência, um contrato entre processos e o depósito de dados. Ele diz que, se os processos concordarem em obedecer a certas regras, o depósito promete funcionar de maneira correta” Modelo de consistência centrados em dados 34
  • 35. 35 Como podemos definir com precisão qual operação de escrita é a última a ser realizada quando se discute sincronização/consistência? “Como alternativa, precisamos fornecer outras definições, o que resulta em um conjunto de modelos de consistência”
  • 37. Solução para replicação de dados “[...] não existe melhor solução para replicar dados” ▫ A replicação propõem problemas de consistência que não podem ser resolvidos com eficiência; ▫ Seria necessário abrandar a consistência para ter esperança de conseguir soluções eficientes; ▫ Não existem regras gerais sobre como abrandar a consistência; ▫ O que seria tolerável como consistente em muitas aplicações? Consistência contínua 37
  • 38. Inconsistências toleráveis 1. Desvio em valores números entre réplicas; 2. Desvio em idade entre réplicas; 3. Desvio em relação à ordenação de operação de atualização; Esses desvios trabalham como faixas de consistência contínua. Consistência contínua 38
  • 39. Inconsistências toleráveis Inconsistência em termos de desvios numéricos Exemplo: Replicação de registro que contêm preços do mercado de ações. Restringir que duas cópias não devem se desviar por mais do $0,02 (absoluto). Ou especificar um desvio numérico relativo, 0,5%. Consistência contínua 39
  • 40. Inconsistências toleráveis “Em ambos os casos, veríamos que, se o preço de uma ação subir (e uma das réplicas for imediatamente atualizada) sem violar os desvios numéricos especificados, as réplicas ainda seriam consideradas como mutuamente consistentes” “Os desvio numérico também ide ser entendido em termos do número de atualizações que foram aplicadas a determinada réplica, mas que ainda não forma vistas pelas outras” Consistência contínua 40
  • 41. Inconsistências toleráveis Inconsistência em termos de desvios de idade ▫ Estão relacionados com a última vez que uma réplica foi atualizada; ▫ Algumas aplicações toleram o fornecimento de dados antigos, mas não em demasia; Exemplo: previsões do tempo em geral permanecem razoavelmente exatas durante algum tempo, por horas. Assim, um servidor pode receber atualizações em tempos oportunos, mas pode decidir uma periocidade de propagação para as réplicas. Consistência contínua 41
  • 42. Inconsistências toleráveis Inconsistência em termos de desvios em relação a ordenação das atualizações ▫ É permitido que a ordenação das atualizações seja diferente nas várias réplicas, contato que as diferenças respeitem um limite; Exemplo: Um modo de considerar essas atualizações é que elas são aplicadas provisoriamente a uma cópia local, à espera de um acordo global de todas as réplicas. Pode acontecer de algumas atualizações aplicadas precisarem se reorganizar para manter o acordo global. Consistência contínua 42
  • 43. Inconsistências toleráveis Inconsistência em termos de desvios em relação a ordenação das atualizações “A intuição nos diz que os desvios de ordenação são muito mais difíceis de entender do que as outras duas métricas de consistência” Consistência contínua 43
  • 45. O que é Conit Consistency (co) + unit (nit) Uma conit especifica a unidade segundo a qual a consistência deve ser medida Exemplo: no exemplo da bolsa de valores, uma conit poderia ser definida como um registro que representa uma única ação. Noção de uma conit 45
  • 46. 46
  • 47. Limitações ao se utilizar conits “Embora do ponto de vista de conceito as conits formem um modo atraente de capturar requisitos de consistência, há duas questões importantes que precisam ser tratadas antes que elas possam ser colocadas em uso na prática” 1. Impor consistência necessita de procotolos (discutido a frente); 2. Desenvolvedores de programa precisam especificar os requisitos de consistência: I. Obter tais requisitos é extremamente difícil; II. Entender as informações detalhadas sobre consistência que precisam ser fornecidas; III. Seria necessário haver interfaces de programação que simplificasse e facilitasse o processo; Noção de uma conit 47
  • 49. “ Além da consistência contínua, há um imenso acervo de trabalho sobre modelos de consistência centrados em dados acumulado em décadas passadas. 49
  • 51. Consistência sequencial e consistência casual Consistência sequencial e consistência casual “Confrontados com o fato de que em computação paralela e distribuída vários processos vão precisar compartilhar recursos simultaneamente, os pesquisadores procuraram expressar a semântica de acessos concorrentes quando os recursos compartilhados forem replicados” Nesta seção iremos destacar:  Modelos de ordenamento de operações consistentes em dados compartilhados;  (estes) modelos ampliam o consistência contínua;  Tratam como chegar a um acordo sobre uma ordenação global das atualizações; Ordenação consistente de operações 51
  • 53. Consistência sequencial “A consistência sequencial é um importante modelo de consistência centrado em dados que foi definido pela primeira vez por Lamport (1979) no contexto da memória compartilhada para sistemas multiprocessadores” 53 Ordenação consistente de operações
  • 54. Consistência sequencial Mas, estamos falando de depósito de dados consistentes, não esqueçamos. Quando um depósito de dados pode ser consistente neste contexto? Ele precisa satisfazer 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 sequencia na ordem especificada por seu programa. 54 Ordenação consistente de operações
  • 55. Consistência sequencial O que isso significa?  Processos executam concorrentemente em máquinas diferentes, qualquer intercalação válida de operações de leitura e escrita é um comportamento aceitável;  Mas, todos os processos veem a mesma intercalação de operações;  Isto é, não há nenhuma referência à operação de escrita ‘mais recente’ sobre um item de dados; Na consistência sequencial o processo vê escritas de todos os processos, mas apenas suas próprias leituras 55 Ordenação consistente de operações
  • 59. Consistência Casual “O modelo de consistência causal representa um enfraquecimento da consistência sequencial no sentido de que faz uma distinção entre eventos que são potencialmente relacionados por causalidade os que não são” Ordenação consistente de operações 59
  • 60. Consistência Casual Como entender a causalidade? É simples. “Se o evento b é causado ou influenciado por um evento anterior a, a causalidade requer que todos vejam primeiro a e, depois, b” Ordenação consistente de operações 60
  • 61. Consistência Casual Como entender a causalidade? É simples. “Se o evento b é causado ou influenciado por um evento anterior a, a causalidade requer que todos vejam primeiro a e, depois, b” Diferente de: “Operações que não estão relacionados por causada são concorrentes” Ordenação consistente de operações 61
  • 62. Consistência Casual Para um depósito de dados ser considerado consistente por causalidade, é necessário que ele obedeça à seguinte condição: Escritas que são potencialmente relacionadas por causalidade devem ser vistas por todos os processos na mesma ordem. Escritas concorrentes podem ser vistas em ordem diferente em máquinas diferentes. Ordenação consistente de operações 62
  • 63. Consistência Casual Ordenação consistente de operações 63 É importante lembrar que “escritas concorrentes podem ser vistas em ordem diferente em máquinas diferentes”
  • 66. Consistência Casual o Um depósito consistente por causalidade não requer que escritas concorrentes sejam ordenadas globalmente; o A figura (b) reflete uma situação que não seria aceitável para um depósito sequencialmente consistente; Ordenação consistente de operações 66
  • 67. “ Implementar consistência causal requer monitorar quais processos viram quais escritas. [...] significa que é preciso construir e manter um gráfico de dependência que mostre qual operação é dependente de quais outras operações. 67
  • 69. “ Consistências sequencial e causal são definidas no nível de operações de leitura e escrita. Esse nível de granularidade se deve a razões históricas: esse modelos [...] foram implementados no nível de hardware. 69
  • 70. Operações de agrupamento É importante compreender que a consistência sequencial e causal estão diretamente relacionadas a uma granularidade de leitura e escrita. “Em muitos casos, a granularidade fina desses modelos de consistência não combina com a granularidade fornecida pelas aplicações” Ordenação consistente de operações 70
  • 71. Resumo Os modelos de consistência descritos nesta seção objetivam fornecer uma visão consistente de um depósito de dados. Uma premissa importante é que processos concorrentes podem estar atualizando o depósito de dados simultaneamente e que é necessário prover consistência em face de tal concorrência. Ordenação consistente de operações 71
  • 72. Resumo “A capacidade de manipular operações concorrentes sobre dados compartilhados e, ao mesmo tempo, manter a consistência sequencial é fundamental para sistemas distribuídos” “Por razões de desempenho, a consistência sequencial pode ser possivelmente garantida somente quando processos usam mecanismos de sincronização tais como transações ou travas” Ordenação consistente de operações 72
  • 74. Introdução ▫ Os depósitos de dados, presentes nesta seção, se caracterizam pela ausência de atualizações simultâneas; ▫ Outra característica possível também é a facilidade que as atualizações podem ser resolvidas; ▫ Os depósitos de dados a seguir, oferecem um modelo de consistência muito fraca, denominado consistência eventual; “Com a introdução de modelos de consistência especiais centrados no cliente, muitas inconsistências podem ser ocultadas de modo relativamente barato” Modelos de Consistência Centrados no Cliente 74
  • 76. Consistência eventual “Até que ponto os processo realmente operam de maneira coerente e até que ponto a consistência precisa ser garantida são coisa que podem variar” Por exemplo: ▫ Sistemas de banco de dados realizam mais leitura de dados do que atualizações; ▫ Poucos processos realizam operações de atualização; ▫ Com qual frequência/rapidez as atualizações devem ser disponibilizadas para processos que realizem somente leitura? Modelos de Consistência Centrados no Cliente 76
  • 77. Consistência eventual  Comum é encontrar poucos (ou único) processos que possam realizar atualização (tenham permissão);  Exemplo: sistema de nomeação DNS;  Evita-se conflitos resultantes de duas operações que querem executar uma atualização sobre os mesmos dados;  Conflitos escrita-escrita;  Necessita de atenção para um processo que deseja atualizar um item de dados enquanto outro está tentando ler aquele item simultaneamente;  Conflitos leitura-escrita; Modelos de Consistência Centrados no Cliente 77
  • 78. Consistência eventual “Ocorre que muitas vezes é aceitável propagar uma atualização de maneira lenta, o que significa que um processo que está lendo verá uma atualização só depois de passado algum tempo da atualização” Modelos de Consistência Centrados no Cliente 78
  • 79. Consistência eventual Inconsistência aceitável Utilização de cache. O usuário ter acesso a páginas Web desatualizadas. O quanto seria aceitável dados de um monitor cardíaco desatualizados? O que seria considerado velho uma informação sobre tropas inimigas avançado por um território em guerra? Outros exemplos? Modelos de Consistência Centrados no Cliente 79
  • 80. Consistência eventual Quando tratamos de Consistência Eventual... “[...] se nenhuma atualização ocorrer por tempo bastante longo, todas as réplicas ficarão gradativamente consistentes” Depósito de dados de consistência eventual tem a seguinte propriedade: “[...] na ausência de atualizações todas as réplicas convergem em direção a cópias idênticas uma às outras” Modelos de Consistência Centrados no Cliente 80
  • 81. Consistência eventual Problema: acessar réplicas diferentes em curto período de tempo! Modelos de Consistência Centrados no Cliente 81 Espera-se que ao mudar de localização se tenha todas as alterações a disposição, em vez disso, parece que nada aconteceu.
  • 82. Consistência eventual ▫ Resolução: Introduzir consistência centrada no cliente. ▫ Garantir consistência de acesso um depósito de dados, por um único cliente; “Bayou é um sistema de bando de dados desenvolvido para computação móvel, no qual a premissa é que a conectividade de rede é não confiável e sujeita a vários problemas de desempenho” ▫ Itens de dados tem um proprietário associado; ▫ O proprietário é o único que tem permissão de modificar esse item; ▫ Evita-se conflitos de escrita-escrita; Modelos de Consistência Centrados no Cliente 82
  • 84. Leituras monotônicas  Leituras monotônicas é um modelo de consistência centrado no cliente;  Pode ser considerado um depósito dado que oferece consistência monotônica:  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. “Em outras palavras, 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” Modelos de Consistência Centrados no Cliente 84
  • 85. 85
  • 87. Escritas monotônicas  “[...] é importante que operações de escrita sejam propagadas na ordem correta para todas as cópias do depósito de dados”  Consistência de Escritas Monotônica  Para um depósito ser considerado consistente por escrita monotônica, precisa atender a seguinte condiçã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. Modelos de Consistência Centrados no Cliente 87
  • 88. “ [...] concluir uma operação de escrita significa que a cópia na qual uma operação sucessiva é executada reflete o efeito de uma operação de escrita anterior executada pelo mesmo processo, sem importar onde essa operação foi iniciada. 88
  • 89. Escritas monotônicas o Seguindo esta perspectiva, sendo necessário, uma nova escrita precisará esperar que velhas escritas sejam concluídas; o Assim, a consistência de escrita monotônica é parecida com consistência Fifo centrada em dados; o Restrição de ordenação também se aplica a escrita monotônicas, entretanto esta perspectiva considera a consistência de apenas um único processo, em vez de um conjunto de processos concorrentes; o Por definição, operações de escrita pelo mesmo processo são realizadas na mesma ordem em que são iniciadas; Modelos de Consistência Centrados no Cliente 89 Importante!
  • 90. 90
  • 92. Leia-suas- escritas ▫ Modelo de consistência centro no cliente e que está intimamente relacionado com leituras monotônicas; ▫ Um depósito de dados que fornece consistência leia-suas-escritas precisa validar a seguinte condiçã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; “[...] uma operação de escrita é sempre concluída antes de uma operação de leitura sucessiva pelo mesmo processo, não importando onde essa operação de leitura ocorrerá” Modelos de Consistência Centrados no Cliente 92
  • 93. “ A consistência ‘leia-suas-escritas’ pode garantir que, se o editor e o browser forem integrados em um único programa, a cache será invalidade quando a página for atualizada, de modo que o arquivo atualizada será buscado e exibido. 93
  • 94. 94
  • 96. Escritas- seguem- leituras  Modelo no qual as atualizações são propagadas como resultado de operações de leitura precedentes;  Um depósito de dados que provê consistência de escritas-seguem-leituras, valida a seguinte condição:  Garanta-se que uma operação de escrita por um processo em um idem de dados x em seguida a operação de leitura anterior em x pelo mesmo processo ocorre sobre o mesmo valor, ou sobre o valor mais recente de x que foi lido. “Em outras palavras, 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 por esse processo” Modelos de Consistência Centrados no Cliente 96
  • 97. 97
  • 99. “ Uma questão fundamental para qualquer sistema distribuído que suporte replicação é decidir onde, quando e por quem as réplicas devem ser posicionadas, e na sequência quais mecanismos usar para manter as réplicas consistentes. 99
  • 100. Problemas 1.Posicionar servidores de réplicas; 2.Posicionar conteúdo; Gerenciamento de Réplicas 100
  • 101. Problemas Posicionar servidores de réplicas Refere-se a encontrar as melhores localizações para colocar um servidor que pode hospedar um depósito de dados (ou parte dele). Posicionar conteúdo Refere-se a achar os melhores servidores para colocar conteúdo. Gerenciamento de Réplicas 101
  • 103. “ O posicionamento de servidores de réplicas não é um problema estudado intensivamente pela simples razão de ser mais uma questão gerencial e comercial do que um problema de otimização. 103
  • 104. Posicionamento do servidor de réplicas Sobre POSICIONAMENTO DO SERVIDOR DE RÉPLICAS ▫ Deve-se se considerar como ponto de partida a distância entre cliente e localizações; ▫ A distância pode ser medida em termos de latência ou largura de banda; ▫ A solução está em selecionar um servidor por vez, calculando a distância média entre o servidor e seus clientes, tentando coloca-lo a menor distância possível; Gerenciamento de Réplicas 104
  • 105. Posicionamento do servidor de réplicas Alternativa a primeira solução POSICIONAMENTO DO SERVIDOR DE RÉPLICAS ▫ Realizar o calculo da distância média é demasiado custoso; ▫ Alternativa proposta por Randoslavov: ignorar a posição dos clientes e apenas considerar que a topologia da Internet é formada pelos sistemas autônomos; Gerenciamento de Réplicas 105
  • 106. Posicionamento do servidor de réplicas Solução Definitiva POSICIONAMENTO DO SERVIDOR DE RÉPLICAS ▫ Método desenvolvido para identificar rapidamente uma região para o posicionamento de réplicas; ▫ Necessário identificar o maiores clusters de nós; ▫ Designa-se um nó de cada cluster para hospedar o conteúdo replicado; ▫ Células mais densas são selecionadas para posicionamento de um servidor de réplicas; Gerenciamento de Réplicas 106
  • 107. 107
  • 108. “ [...] um tamanho adequado para célula pode ser calculado como uma simples função da distância média entre dois nós e do número de réplicas requeridas. 108
  • 110. “ Quando se trata de replicação e posicionamento de conteúdo, podem-se distinguir três tipos diferentes de réplicas organizadas logicamente. 110
  • 111. Replicação e posicionamento de conteúdo Réplicas Permanentes “Réplicas permanentes podem ser consideradas como o conjunto inicial de réplicas que constituem um depósito de dados distribuídos” Primeiro tipo: relacionado com os arquivos que constituem um site, que são replicados para um número limitado de servidores que estão em uma única localização; Segundo tipo: é denominado espelhamento, é um tipo de distribuição de site web. O Website é copiado para um número limitado de servidores, denominados sites espelhados, e estão geograficamente espalhados pela internet. “A característica comum entre sites Web espelhados e sites Web baseados em clusters é que há apenas um pequeno número de réplicas, cuja configuração é mais ou menos estática” Gerenciamento de Réplicas 111
  • 112. Replicação e posicionamento de conteúdo Réplicas iniciadas por servidor “Ao contrário de réplicas permanentes, réplicas iniciadas por servidor são cópias de um depósito de dados que existem para aprimorar desempenho e que são criadas por iniciativa do (proprietário do) depósito de dados” Considera-se: a partir de um “rajada repentina de requisições” seja possível instalar uma quantidade de servidores temporários capazes de auxiliar no provimento do serviço. “O algoritmo para replicação dinâmica leva em conta duas questões” A primeira é que a replicação pode ocorrer para reduzir a carga de um servidor. A segunda é que arquivos específicos em um servidor podem ser migrados ou replicados para servidores posicionados na proximidade de clientes que emitem muitas requisições para esses arquivos. Gerenciamento de Réplicas 112
  • 113. Replicação e posicionamento de conteúdo Réplicas iniciadas por clientes “Réplicas iniciadas por clientes são mais conhecidas como caches (de cliente)” ▫ O gerenciamento do cache é inteiramente do cliente; ▫ O depósito de dados não tem responsabilidade pela manutenção da consistência dos dados em cache; ▫ Pode haver situações em que o cliente se conecte ao depósito de dados para receber informações sobre a idade dos dados em seu cache; “Caches de cliente são usados somente para melhorar o tempo de acesso aos dados. [...] quando um cliente quer acessar alguns dados ele se conecta com a cópia do depósito de dados mais próxima” Gerenciamento de Réplicas 113
  • 114. 114
  • 115. Atividade Escreva uma resenha do ponto 7.4.3 Distribuição de conteúdo a resenha deve ser entregue ao processo via Moodle até o dia 16/05 às 23h59. O formato de entrega deverá ser em processador de texto .doc, .docx, ou .odt. 115
  • 116. Consistência e Replicação CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS DISTRIBUIDOS PROF. MESSIAS R. BATISTA