Contribuições para escalabilidade em replicação máquina de estados
O uso crescente de serviços online tem gerado a necessidade de arquiteturas que ofereçam alta disponibilidade e desempenho. No contexto de alta disponibilidade, a técnica de Replicação Máquina de Estados (RME) é uma solução amplamente utilizada em diversos setores da computação, como computação em n...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis doctoral |
| Estado: | Versión publicada |
| Fecha de publicación: | 2023 |
| País: | Brasil |
| Institución: | Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) |
| Repositorio: | Biblioteca Digital de Teses e Dissertações da PUC_RS |
| Idioma: | portugués |
| OAI Identifier: | oai:tede2.pucrs.br:tede/10975 |
| Acceso en línea: | https://tede2.pucrs.br/tede2/handle/tede/10975 |
| Access Level: | acceso abierto |
| Palabra clave: | Replicação Máquina de Estados Escalabilidade Execução Paralela Multicast Atômico State Machine Replication Scalability Parallel Execution Atomic Multicast CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO |
| Sumario: | O uso crescente de serviços online tem gerado a necessidade de arquiteturas que ofereçam alta disponibilidade e desempenho. No contexto de alta disponibilidade, a técnica de Replicação Máquina de Estados (RME) é uma solução amplamente utilizada em diversos setores da computação, como computação em nuvem, sistemas de banco de dados, mecanismos de sincronização e comunicação confiável. O conceito de RME é simples: como todas as réplicas iniciam com um mesmo estado e executam comandos deterministicamente na mesma ordem, as mesmas mudanças de estado após a execução de cada comando são realizadas entre todas as réplicas do sistema, garantindo consistência forte. No entanto, esse mesmo modelo básico de funcionamento da RME limita o seu desempenho. Para aumentar a escalabilidade da técnica de RME foram propostas diferentes estratégias. Uma possível estratégia para obter ganhos com a técnica é através do melhor aproveitamento dos múltiplos núcleos de processamento comumente disponíveis em servidores modernos. Diferentes arquiteturas paralelas de RME foram formuladas com soluções que introduzem concorrência na ordenação e execução de comandos, considerando que requisições não conflitantes podem ser processadas em paralelo sem afetar a consistência forte. Protocolos de consenso generalizado trabalham com a mesma noção de conflito: comandos que não conflitam não necessitam de ordenação durante o consenso. Nesta primeira parte do trabalho propõe-se, o uso de informações de conflito provenientes do consenso generalizado para a subsequente execução paralela de comandos na RME. Esta proposta, ainda não encontrada na literatura, foi descrita, implementada e avaliada, mostrando ganhos de desempenho. Outra estratégia utilizada para aumentar a escalabilidade da técnica de RME é com o particionamento do estado, permitindo que partições trabalhem de forma independentes. Além da ordenação de comandos para cada partição, comandos multi-partição necessitam de ordenação entre as partições envolvidas. Neste contexto o multicast atômico é uma abstração fundamental, pois captura os requisitos de confiabilidade e ordenação. ByzCast foi o primeiro protocolo de multicast atômico tolerante a falhas bizantinas. Para reusar soluções de ordenação para o caso bizantino, ByzCast faz uso de uma estrutura em árvore para disseminação de mensagens entre as partições envolvidas, sendo cada partição implementada por um conjunto de réplicas atuando em consenso bizantino. Na segunda parte deste trabalho estendemos ByzCast de um protocolo de multicast atômico tolerante a falhas bizantinas para uma RME particionada com tolerância a falhas bizantinas. Para tal, definimos e discutimos diferentes estratégias de tratamento da requisição e do retorno da resposta aos clientes da RME. |
|---|