Biblioteca para Replicação Máquina de Estados em Elixir

DSpace Repository

A- A A+

Biblioteca para Replicação Máquina de Estados em Elixir

Show simple item record

dc.contributor Universidade Federal de Santa Catarina pt_BR
dc.contributor.advisor Mendizabal, Odorico Machado
dc.contributor.author Krause, Peter Michael Claes
dc.date.accessioned 2022-08-05T23:21:54Z
dc.date.available 2022-08-05T23:21:54Z
dc.date.issued 2022-08-25
dc.identifier.uri https://repositorio.ufsc.br/handle/123456789/237986
dc.description TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Sistemas de Informação. pt_BR
dc.description.abstract Aplicações distribuídas, como servidores modernos, lidam com uma crescente demanda por disponibilidade e velocidade. Uma das maneiras de amplificarmos a disponibilidade de um serviço é a adoção da estratégia de Replicação Máquina de Estado. Paralelamente a estas exigências de tolerância a falhas e desempenho, presenciamos uma retomada do uso de linguagens de programação funcional no desenvolvimento de aplicações, por garantir tanto segurança quanto escalabilidade no processo de desenvolvimento. Neste cenário, identificou-se o Elixir, uma linguagem de programação funcional baseada na plataforma de desenvolvimento Erlang, cuja máquina virtual BEAM oferece recursos para a construção de aplicações de larga escala, altamente disponíveis, e tolerantes a falhas. Apesar de triunfarem em aplicações monolíticas, os componentes da BEAM oferecem um grau adicional de complexidade quando direcionados à montagem de sistemas distribuídos. O objetivo deste trabalho foi a codificação de uma biblioteca de código aberto que permita a adoção da estratégia de Replicação Máquina de Estado com simplicidade, ao passo que endereça as fraquezas apresentadas pela BEAM no âmbito de aplicações distribuídas tolerantes a falhas. A utilidade do presente projeto foi comprovada por testes com um benchmark artificial simulador de cargas. Este teste de desempenho comparou latência e vazão de um servidor simples, um servidor com réplicas em consenso manualmente configuradas e um servidor que utiliza a biblioteca para abstrair toda a configuração necessária na segunda aplicação. Ao agir como uma fina camada entre as réplicas e a implementação do protocolo de consenso, foi verificado que a adição da biblioteca não sacrificou o desempenho da aplicação replicada em consenso, ao passo que reduziu o labor da configuração das instâncias distribuídas e suas interações. pt_BR
dc.description.abstract Modern applications, such as web servers, face a growing demand for speed and availability. One way to address such challenges is the adoption of the State Machine Replication strategy, granting further availability to the target service. Alongside these demands, the functional programming paradigm is making a return to mainstream software development, for its scalable and safe nature. Amidst this scenario, comes Elixir, a functional programming language built on top of the Erlang development platform, whose underlying virtual machine offers powerful resources for the construction of highly-available and fault-tolerant applications that thrive while maintaining a high throughput. Although the out-of-the-box components offered by the BEAM virtual machine are battle-tested and reliable, they offer an additional level of complexity when configured to operate in a distributed environment. The purpose of this work was the the building of an easy-to-use library capable of abstracting the non-trivial work required to setup state machine replicas in a distributed Erlang environment. The library usage was verified through a synthetic benchmark test, where it was possible to see that the performance constraints imposed by the underlying consensus protocol were not increased nor decreased, proving that the library acted as a thin layer capable of reducing the configuration work it set out to do without greatly interferring in performance. pt_BR
dc.format.extent 61 pt_BR
dc.language.iso por pt_BR
dc.publisher Florianópolis, SC pt_BR
dc.rights Open Access
dc.subject Sistemas Distribuídos pt_BR
dc.subject Tolerância à falha pt_BR
dc.subject Replicação Máquina de Estados pt_BR
dc.subject Erlang pt_BR
dc.subject Programação Funcional pt_BR
dc.title Biblioteca para Replicação Máquina de Estados em Elixir pt_BR
dc.type TCCgrad pt_BR


Files in this item

Files Size Format View Description
TCC.pdf 2.073Mb PDF View/Open Monografia
pistis.zip 11.67Mb Unknown View/Open Código fonte

This item appears in the following Collection(s)

Show simple item record

Search DSpace


Browse

My Account

Statistics

Compartilhar