Prévia do material em texto
Sistemas Distribuídos Lista de Exercícios - Consistência e Replicação 1. Cite e descreva as principais razões para a utilização de réplicas de dados em Sistemas Distribuídos. Dados são replicados para aumentar a confiabilidade do sistema e fornecer mais segurança contra dados corrompidos, pois se o acesso a uma das cópias falhar, basta buscar outra. Além disso, a replicação contribui para a performance quando o sistema precisa escalar e termos de tamanho ou geograficamente. 2. Qual o principal problema da utilização da replicação como técnica de escalabilidade? A replicação cria um problema quanto à consistência, pois quando uma cópia é modificada, ela se torna diferente das outras. Assim, modificações devem ser feitas em todas as cópias para garantir a consistência. Quando e como essas modificações precisam ser feitas é o que determina o preço da replicação. 3. O que é um modelo de consistência de dados? Descreva o modelo de consistência com o maior grau de consistência possível, denominado consistência estrita ou severa. É essencialmente um contrato entre processos e o banco de dados. Diz que se os processos concordam em seguir certas regras, o banco se compromete a trabalhar corretamente. Normalmente um processo espera que uma operação de leitura retorne um valor correspondente à última operação de escrita naquele dado, sendo assim a consistência estrita. 4. Cite e descreva os três tipos principais de inconsistências que podem ser usados para implementar consistência em sistemas reais. - Desvios Numéricos: podem ser usados em sistemas onde os dados possuem semântica numérica (preços do mercado de ações). - Desvios de Idade: estão relacionados com a última vez que uma réplica foi atualizada: algumas aplicações podem tolerar que uma réplica forneça dados desatualizados que não sejam muito antigos (previsão do tempo). - Desvios em relação à ordenação de operações: em algumas aplicações, é permitido que a ordenação das atualizações seja diferente nas várias réplicas, dentro de um limite, então atualizações são aplicadas provisoriamente a uma cópia local, à espera de um acordo global de todas as réplicas. Como consequência, algumas atualizações podem precisar voltar atrás e serem aplicadas em uma ordem diferente antes de se tornarem permanentes 5. O modelo de consistência sequencial não faz nenhuma referência a tempo, isto é, não existe a idéia de escrita 'mais recente'. Discuta esta afirmação. Quando 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 vêem a mesma intercalação de operações. Assim, os processos devem aceitar todos os resultados válidos como respostas adequadas e devem trabalhar corretamente se qualquer um deles ocorrer. 6. Faça um exemplo com um conjunto de três escritas feitas por 3 processos diferentes em um mesmo item de dado x e respectivas leituras do mesmo dado em que se visualiza um depósito de dados que não seja sequencialmente consistente. [?] 7. Por que o modelo de consistência causal pode ser classificado como uma variante mais fraca de consistência quando comparado com o modelo de consistência sequencial? O modelo de consistência causal faz distinção entre eventos que são potencialmente por relacionados causalidade e aqueles que não são. 8. Que tipo de consistência você usaria para implementar um mercado eletrônico de ações? Explique sua resposta. Consistência causal, pois o problema é que as reações às mudanças nos valores das ações devem ser consistentes. As mudanças em ações que são independentes podem ser vistas em ordens diferentes. 9. Quais os tipos de réplicas que podem existir em Sistemas Distribuídos? Descreva cada uma delas. - Réplicas permanentes: Conjunto inicial de réplicas que constituem um depósito de dados distribuído. Número de réplicas permanentes é pequeno. - Réplicas iniciadas por servidor: 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. - Réplicas iniciadas por cliente: Recurso de armazenamento local, usado por um cliente para armazenar temporariamente uma cópia dos dados que ele acabou de requisitar (cache). Gerenciado pelo cliente. 10. Para sistemas onde a razão leitura/escrita é relativamente pequena, qual tipo de informação deve ser propagada para alcançar uma maior eficiência? Por que? Notificação de atualização, pois as cópias são informadas de uma atualização ocorreu e que os dados que elas contêm não são mais válidos. Utiliza pouca largura de banda de rede e funciona melhor quando há mais operações de atualização em comparação com operações de escrita. 11. Para sistemas onde a razão leitura/escrita é relativamente alta, qual tipo de informação deve ser propagada para alcançar uma maior eficiência? Por que? Transferir dados entre cópias, pois a probabilidade de uma atualização ser efetivada é grande, então o fato de haver um grande números de leituras faz com que os dados devam ser modificados antes de ocorrer a atualização seguinte. 12. Por que os protocolos baseados em primários proporcionam uma implementação direta do modelo de consistência sequencial? Cada item de dados x no depósito de dados tem um primário associado, que é responsável por coordenar operações de escrita em x.