Desenvolvimento de aplicações confiáveis com o uso de protocolos de consenso
Author:
Luiz, Douglas Pereira
Abstract:
Sistemas replicados distribuem carga e dados em múltiplas réplicas de servidores a fim de evitar falhas e otimizar a capacidade de resposta, e no cenário local, é possível obter ganhos de desempenho usufruindo da capacidade de computação paralela. Uma forma de ganhar em escalabilidade e vazão é reduzir o custo de sincronizações. Por exemplo, estruturas de dados podem ser desenvolvidas utilizando algoritmos não bloqueantes, que permitem a sincronização sem o uso do mecanismo clássico de travas. Por isso, para desenvolver aplicações confiáveis e que proporcionam alto desempenho, neste estudo foi investigado a eficiência de implementações de tabelas de dispersão não bloqueantes na linguagem C++. O estudo contou com a busca de propostas de implementações na literatura e de implementações em bibliotecas de programação. A avaliação foi realizada por meio de testes com diferentes configurações que compararam o tempo levado para a execução de um conjunto de operações por implementações bloqueantes e não bloqueantes. A análise dos resultados revelaram características dos cenários de testes que favoreceram o desempenho de implementações não bloqueantes.