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
This item appears in the following Collection(s)
Show simple item record
Search DSpace
Browse
-
All of DSpace
-
This Collection
My Account
Statistics
Compartilhar