| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 658.29 KB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
As bases de dados são aplicações extremamente utilizadas hoje em dia, e por isso, é importante que cumpram determinados requisitos, nomeadamente, correcção, disponibilidade e desempenho. Uma aproximação para atingir estes objectivos passa por replicar o estado da base de dados em diferentes localizações, sendo necessário manter a coerência entre as diferentes
réplicas. Esta aproximação tem a possibilidade de continuar a fornecer o serviço mesmo em caso de falha de uma parte dos componentes do sistema.
A maioria das soluções existentes procura resolver o problema assumindo apenas o modelo
de falhas fail-stop, sem considerar falhas bizantinas. As falhas bizantinas provocam o comportamento arbitrário dos componentes, normalmente associadas a erros de implementação ou situações imprevistas como falhas de hardware ou máquinas controladas por atacantes.
Neste trabalho desenvolveu-se a segunda versão do Byzantium, um sistema middleware de
replicação de bases de dados tolerante a falhas bizantinas com o modelo de isolamento Snapshot Isolation. Além de uma nova implementação do protótipo, esta nova versão propõe novos algoritmos que introduzem as seguintes novas funcionalidades. Primeiro, um novo mecanismo eficiente de propagação das operações de uma transacção para as várias réplicas no sistema, durante
a sua execução. Este mecanismo pretende diminuir a complexidade da operação commit.
Segundo, a utilização de um menor número de réplicas para executar as transacções apenas com leituras. Esta decisão permite diminuir a carga das réplicas. Terceiro, a execução imediata das operações de leitura. Esta aproximação faz com que as transacções de leitura obtenham o resultado da operação de commit localmente no cliente, sem necessidade de contactar o servidor.
Os resultados obtidos na avaliação do protótipo mostram que estes algoritmos têm alguma penalização face a uma solução não tolerante a falhas com apenas um servidor para transacções de leitura e escrita. Adicionalmente, revela um desempenho superior para transacções de leitura
quando comparado com uma solução simples não tolerante a falhas. Quando as mesmas
optimizações introduzidas no Byzantium são usadas na execução das operações na solução não tolerante a falhas, o desempenho do protótipo implementado é ligeiramente inferior.
Descrição
Trabalho apresentado no âmbito do Mestrado em Engenharia Informática, como requisito parcial para obtenção do grau de Mestre em Engenharia Informática
Palavras-chave
Replicação bizantina Bases de dados Snapshot isolation Middleware
