CALCULO CALCULADO: REPLICAÇÃO
Projeto de pesquisa: CALCULO CALCULADO: REPLICAÇÃO. Pesquise 862.000+ trabalhos acadêmicosPor: LorayneP • 2/9/2014 • Projeto de pesquisa • 2.481 Palavras (10 Páginas) • 303 Visualizações
COMPUTAÇÃO DISTRIBUÍDA: REPLICAÇÃO
Resumo: A utilização de Sistemas Distribuídos tem sido muito popularizada nos tempos de hoje, pois é uma alternativa adequada para atender a grande demanda computacional existente. Este trabalho tem por estudo a replicação, que por sua vez é utilizada para tornar mais confiável o sistema distribuído ou melhorar seu desempenho.
1 INTRODUÇÃO
As redes de computadores estão por todo lado e tanto separadas quanto em combinação, compartilham as características essenciais que as tornam relevantes para estudar. Com a crescente necessidade de se utilizar inúmeros servidores tornou-se difícil suprir toda a sede pela informação, e dessa forma o uso de Sistemas Distribuídos é uma alternativa adequada para atender a grande demanda computacional existente. Sendo que Sistemas Distribuídos (SD) tem por conceito processos concorrentes acessando recursos distribuídos, podendo ser compartilhados ou replicados por meio de mensagem numa rede.
Um SD é uma coleção de computadores autônomos, ligados por uma rede, com software projetado para produzir uma facilidade de computação integrada (Coulouris, Dollimore, Kindberg).
Iremos aprofundar nossos estudos em um dos pilares da computação distribuída, a replicação que por sua vez é utilizada para tornar mais confiável o sistema distribuído ou melhorar seu desempenho. O Desempenho e a confiabilidade são as duas razões fundamentais para que exista replicação em sistemas distribuídos.
(Tanenbaum e Steen, 2007) “Se um sistema de arquivos foi replicado, pode ser possível continuar trabalhando após a queda de uma réplica simplesmente com comutação para uma das outras réplicas”
2 REPLICAÇÃO
2.1 Razões para replicação
Quando a replicação aumenta a confiabilidade em um sistema distribuído, é porque se obtêm a prevenção caso ocorra a queda ou corrupção de dados, e o projeto seja continuado, se os dados forem corrompidos é possível migrar para outra réplica dos dados.
Dizemos que houve melhora no desempenho em dois casos de onde o sistema distribuído precisa ser ampliando por quantidade e área geográfica.
O primeiro ocorre quando uma grande quantidade processos precisam acessar dados que são gerenciados um único servidor, e para aumentar o desempenho é necessário replicar o servidor e consequentemente se o trabalho for dividido. Já no segundo a ideia é que o tempo de acesso diminui quando uma cópia de dados é colocada próxima ao processo que está usando, fazendo com o desempenho pelo processo aumente.
2.2 Problema da replicação
Apesar de ter boas razões para usar replicação de dados há um grande problema, a consistência das réplicas. Manter todas as réplicas consistentes acaba se tornando uma tarefa difícil. Se uma réplica é modificada ela se torna diferente das outras e é preciso garantir que todas as outras vão obter a mesma modificação para que se garanta a consistência das outras réplicas.
A replicação não é nada simples implementar. E o principal problema que surge é como manter as réplicas sempre iguais? É preciso tomar muito cuidado pois se uma cópia é modificada ela se torna diferente das demais e portanto é necessário modificar todas as outras, podendo-se assim trazer problemas de consistência.
2.3 Técnica de crescimento
Para resolver problemas de escalabilidade pode-se colocar cópias de dados próximas aos processos que estão utilizando-as podendo assim melhorar o desempenho pois a houve a redução do tempo de acesso.
Manter cópias atualizadas requer mais largura de banda de rede. Assim como diz Tanembaum e Steen (2007):
“Considere um processo P que acessa uma réplica local N vezes por segundo, ao passo que a réplica em si é atualizada M vezes por segundo. Supondo que uma atualização remove completamente a versão anterior da réplica local. Se N << M, a razão acesso/atualização for muito baixa, temos uma situação em que muitas versões atualizadas da réplica local nunca serão acessadas por P tornando inútil a comunicação da rede para essas versões.”
Para que as réplicas estejam consistentes a operação de leitura de qualquer cópia precisar retornar o mesmo resultado das outas ou seja as cópias precisam ser sempre iguais. Quando uma atualização é realizada em determinada cópia a mesma atualização deve ser feita nas outras cópias antes de ocorrer outra operação. Para que uma atualização seja concretizada de forma ideal em todas as cópias seria necessária uma única operação atômica, mas isso também não é tarefa fácil.
3 GERENCIAMENTO DE RÉPLICAS
O gerenciamento de réplicas decide onde, quando e como as réplicas são posicionadas e ainda quais mecanismos usar para manter as réplicas consistentes. O posicionamento de réplicas gera dois problemas, o posicionamento de servidores de réplicas e de conteúdo.
3.1 Posicionamento de servidor de réplicas
O problema de posicionamento de servidor de réplicas consiste em, dado N localizações, encontrar as k melhores localizações para posicionar os servidores, onde k < N. Para posicionar os servidores, uma das formas é calculando a distância entre cliente e localizações. Essa distância pode ser medida usando latência ou largura de banda. Assim é posicionado o servidor na localização de distância média com os clientes.
Outra alternativa é usando topologia da rede, ignorando a posição dos clientes e considerando apenas os sistemas autônomos. É selecionado o maior sistema autônomo e adicionado o servidor ao roteador de maior número de enlaces.
Nota-se que, em ambos os casos, este é um cálculo complexo de custo alto, O(N), mesmo utilizando heurísticas. Logo levará muito tempo para ser calculado quando o número de localizações for milhares.
Uma forma mais eficiente de encontrar as localizações é identificar uma região com um conjunto de nós de baixa latência entre si, que acessam um mesmo conteúdo. O algoritmo primeiro encontra a região com maior número de nós e então torna um dos nós da região o servidor de réplica. Esse algoritmo é bem mais eficiente e pode ser executado em tempo real.
3.2 Posicionamento de conteúdo
O problema de posicionamento de conteúdo consiste em encontrar os melhores servidores
...