POSICIONAMENTO DO SERVIDOR DE
RÉPLICAS
• Onde, quando e por quem réplicas
devem ser posicionadas?
• 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)
• Posicionar conteúdo
• É o posicionamento dos dados e softwares: encontrar
o melhor servidor para colocar conteúdo.
POSICIONAMENTO DO SERVIDOR DE
RÉPLICAS
• Análises das propriedades do cliente e
da rede são úteis para se tomar
decisões conscientes
• 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
POSICIONAMENTO DO SERVIDOR DE
RÉPLICAS
Para selecionar as melhores K de N localizações
• Podem ser usadas heurísticas baseadas na
distância (latência, largura de banda) entre
clientes e localizações
• 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 numero de enlaces
• Os ASs são escolhidos em ordem de tamanho
POSICIONAMENTO DO SERVIDOR DE
RÉPLICAS
O problema é que estes algoritmos são caros em termos de
cálculo
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
GERENCIAMENTO DE RÉPLICAS
Replicação e posicionamento de conteúdo
• 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
• Podem se distinguir 3 tipos de réplicas
organizadas logicamente:
• Réplicas permanentes
• Réplicas iniciadas por servidor
• Réplicas iniciadas por cliente
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
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
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
Réplicas iniciadas por 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
Distribuição de Conteúdo
• 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
Estado X Operações
• 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
Estado X Operações
• 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
Estado X Operações
• 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
Estado X Operações
• 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
Recuperação X Envio de Atualizações
• 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
Recuperação X Envio de Atualizações
• 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