Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados

Detalhes bibliográficos
Autor(a) principal: Gomes Junior, Everaldo de Avila
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da FURG (RI FURG)
Texto Completo: http://repositorio.furg.br/handle/1/9935
Resumo: Replicação é uma técnica comumente utilizada para implementação de serviços tolerantes a falhas. Ao ser replicado, o serviço se mantém operando corretamente apesar da falha de uma quantidade limitada de réplicas. Para aumentar a disponibilidade, estratégias de recuperação se fazem necessárias, desta forma réplicas extras podem ser adicionadas durante a execução do serviço. Replicação Máquina de Estados (RME) é um tipo de replicação bastante difundido para implementação de sistemas tolerantes a falhas. Em RME, todas as réplicas partem de um mesmo estado inicial e executam a mesma sequência determinística de comandos. Desta forma, as réplicas transitam pela mesma sequência de estados e produzem exatamente as mesmas respostas para cada requisição. Para garantir que réplicas faltosas recuperem-se ou novas réplicas sejam adicionadas ao sistema, estratégias de durabilidade como logging, checkpointing e transferência de estados devem ser implementadas nas réplicas do serviço. Enquanto processam as requisições, as réplicas registram os comandos executados em um log em armazenamento persistente, permitindo que réplicas faltosas obtenham uma sequência de comandos já executada. Para evitar que o log cresça indefinidamente, réplicas salvam periodicamente seus estados em armazenamento persistente (checkpoint) e removem do log os comandos cujas alterações estão refletidas no checkpoint. Apesar de melhorarem a disponibilidade, estratégias de durabilidade degradam a performance do serviço. Técnicas tradicionais de checkpointing exigem que a execução de novas requisições seja interrompida enquanto o estado é salvo. Esta sincronização é necessária para garantir consistência, porém a vazão do serviço é reduzida e a latência de resposta aumenta. Neste trabalho é proposta uma estratégia que reduz a degradação do desempenho causada por checkpointing com base no particionamento do estado da aplicação. É apresentado um algoritmo onde diferentes threads de execução realizam checkpointing de determinadas partições em diferentes instantes de tempo. Desta maneira, durante o salvamento de estado, são impedidos de executar somente os comandos que operam sobre a partição que encontra-se em checkpointing. Requisições sobre as demais partições podem ser executadas normalmente. Através desta abordagem foi possível obter melhor desempenho durante a execução do serviço. A nova estratégia apresentou melhores resultados na vazão do serviço. Ainda, foi possível observar que a latência de resposta para as requisições realizadas durante a realização de checkpoints foi consideravelmente menor. A nova abordagem apresentou menor tempo necessário para recuperação do sistema.
id FURG_6dc5518f1a7766541bbda0f6aaec549f
oai_identifier_str oai:repositorio.furg.br:1/9935
network_acronym_str FURG
network_name_str Repositório Institucional da FURG (RI FURG)
repository_id_str
spelling Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionadosTolerância a falhasReplicaçãoRecuperaçãoCheckpointingFault toleranceReplicationRecoveryReplicação é uma técnica comumente utilizada para implementação de serviços tolerantes a falhas. Ao ser replicado, o serviço se mantém operando corretamente apesar da falha de uma quantidade limitada de réplicas. Para aumentar a disponibilidade, estratégias de recuperação se fazem necessárias, desta forma réplicas extras podem ser adicionadas durante a execução do serviço. Replicação Máquina de Estados (RME) é um tipo de replicação bastante difundido para implementação de sistemas tolerantes a falhas. Em RME, todas as réplicas partem de um mesmo estado inicial e executam a mesma sequência determinística de comandos. Desta forma, as réplicas transitam pela mesma sequência de estados e produzem exatamente as mesmas respostas para cada requisição. Para garantir que réplicas faltosas recuperem-se ou novas réplicas sejam adicionadas ao sistema, estratégias de durabilidade como logging, checkpointing e transferência de estados devem ser implementadas nas réplicas do serviço. Enquanto processam as requisições, as réplicas registram os comandos executados em um log em armazenamento persistente, permitindo que réplicas faltosas obtenham uma sequência de comandos já executada. Para evitar que o log cresça indefinidamente, réplicas salvam periodicamente seus estados em armazenamento persistente (checkpoint) e removem do log os comandos cujas alterações estão refletidas no checkpoint. Apesar de melhorarem a disponibilidade, estratégias de durabilidade degradam a performance do serviço. Técnicas tradicionais de checkpointing exigem que a execução de novas requisições seja interrompida enquanto o estado é salvo. Esta sincronização é necessária para garantir consistência, porém a vazão do serviço é reduzida e a latência de resposta aumenta. Neste trabalho é proposta uma estratégia que reduz a degradação do desempenho causada por checkpointing com base no particionamento do estado da aplicação. É apresentado um algoritmo onde diferentes threads de execução realizam checkpointing de determinadas partições em diferentes instantes de tempo. Desta maneira, durante o salvamento de estado, são impedidos de executar somente os comandos que operam sobre a partição que encontra-se em checkpointing. Requisições sobre as demais partições podem ser executadas normalmente. Através desta abordagem foi possível obter melhor desempenho durante a execução do serviço. A nova estratégia apresentou melhores resultados na vazão do serviço. Ainda, foi possível observar que a latência de resposta para as requisições realizadas durante a realização de checkpoints foi consideravelmente menor. A nova abordagem apresentou menor tempo necessário para recuperação do sistema.Replication is a technique commonly adopted on the development of faulttolerant systems. By replicating a service, it remains accessible by clients despite the occurrence of faults in a bounded number of replicas. To increase availability, recovery strategies are required, so that extra replicas can be added to the system at run time. State Machine Replication (SMR) is a well-known replication technique for implementing strong consistency across replicas. In SMR, every replica starts in the same state and executes a totally ordered sequence of deterministic commands. Thus, each replica evolves through the same sequence of state changes and produce exactly the same outputs for every request. In order to support recovery of faulty replicas or addition of new ones, replicas must implement durability strategies, such as logging, checkpointing and state transfer. While processing commands, replicas log these commands in a persistent storage, allowing new replicas retrieve a sequence of commands already executed. To avoid the continuos growth of logs, replicas periodically save their states and truncates their logs, removing those commands represented by the checkpoints. Althought durability approaches benefits overall availability, they hurt systems performance. Traditional checkpointing approaches interrupt the execution of incoming commands while service state is being saved. This synchronization is necessary to ensure consistence, but it causes a reduction in the throughput and latency increase. This work proposes a strategy based on state partition to aleviate the performance degradation caused by checkpointing. The work presents a new algorithm that save states at different times. This way, during a checkpointing, new commands are blocked only if they access a partition being saved. Requests addressed to other partitions can be normally executed. By employing this new approach one can observe better performance during normal service execution. The new approach presented higher throughput. Moreover, it was noticed that the latency for those requests issued during the checkpointing execution where considerable low. The new approach presented lower time for systems recovery.Mendizabal, Odorico MachadoGomes Junior, Everaldo de Avila2021-12-16T14:02:28Z2021-12-16T14:02:28Z2020info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfGOMES JUNIOR, Everaldo de Avila. Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados. 2020. 89. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2020.http://repositorio.furg.br/handle/1/9935porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da FURG (RI FURG)instname:Universidade Federal do Rio Grande (FURG)instacron:FURG2021-12-16T14:02:28Zoai:repositorio.furg.br:1/9935Repositório InstitucionalPUBhttps://repositorio.furg.br/oai/request || http://200.19.254.174/oai/requestopendoar:2021-12-16T14:02:28Repositório Institucional da FURG (RI FURG) - Universidade Federal do Rio Grande (FURG)false
dc.title.none.fl_str_mv Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
title Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
spellingShingle Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
Gomes Junior, Everaldo de Avila
Tolerância a falhas
Replicação
Recuperação
Checkpointing
Fault tolerance
Replication
Recovery
title_short Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
title_full Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
title_fullStr Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
title_full_unstemmed Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
title_sort Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados
author Gomes Junior, Everaldo de Avila
author_facet Gomes Junior, Everaldo de Avila
author_role author
dc.contributor.none.fl_str_mv Mendizabal, Odorico Machado
dc.contributor.author.fl_str_mv Gomes Junior, Everaldo de Avila
dc.subject.por.fl_str_mv Tolerância a falhas
Replicação
Recuperação
Checkpointing
Fault tolerance
Replication
Recovery
topic Tolerância a falhas
Replicação
Recuperação
Checkpointing
Fault tolerance
Replication
Recovery
description Replicação é uma técnica comumente utilizada para implementação de serviços tolerantes a falhas. Ao ser replicado, o serviço se mantém operando corretamente apesar da falha de uma quantidade limitada de réplicas. Para aumentar a disponibilidade, estratégias de recuperação se fazem necessárias, desta forma réplicas extras podem ser adicionadas durante a execução do serviço. Replicação Máquina de Estados (RME) é um tipo de replicação bastante difundido para implementação de sistemas tolerantes a falhas. Em RME, todas as réplicas partem de um mesmo estado inicial e executam a mesma sequência determinística de comandos. Desta forma, as réplicas transitam pela mesma sequência de estados e produzem exatamente as mesmas respostas para cada requisição. Para garantir que réplicas faltosas recuperem-se ou novas réplicas sejam adicionadas ao sistema, estratégias de durabilidade como logging, checkpointing e transferência de estados devem ser implementadas nas réplicas do serviço. Enquanto processam as requisições, as réplicas registram os comandos executados em um log em armazenamento persistente, permitindo que réplicas faltosas obtenham uma sequência de comandos já executada. Para evitar que o log cresça indefinidamente, réplicas salvam periodicamente seus estados em armazenamento persistente (checkpoint) e removem do log os comandos cujas alterações estão refletidas no checkpoint. Apesar de melhorarem a disponibilidade, estratégias de durabilidade degradam a performance do serviço. Técnicas tradicionais de checkpointing exigem que a execução de novas requisições seja interrompida enquanto o estado é salvo. Esta sincronização é necessária para garantir consistência, porém a vazão do serviço é reduzida e a latência de resposta aumenta. Neste trabalho é proposta uma estratégia que reduz a degradação do desempenho causada por checkpointing com base no particionamento do estado da aplicação. É apresentado um algoritmo onde diferentes threads de execução realizam checkpointing de determinadas partições em diferentes instantes de tempo. Desta maneira, durante o salvamento de estado, são impedidos de executar somente os comandos que operam sobre a partição que encontra-se em checkpointing. Requisições sobre as demais partições podem ser executadas normalmente. Através desta abordagem foi possível obter melhor desempenho durante a execução do serviço. A nova estratégia apresentou melhores resultados na vazão do serviço. Ainda, foi possível observar que a latência de resposta para as requisições realizadas durante a realização de checkpoints foi consideravelmente menor. A nova abordagem apresentou menor tempo necessário para recuperação do sistema.
publishDate 2020
dc.date.none.fl_str_mv 2020
2021-12-16T14:02:28Z
2021-12-16T14:02:28Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv GOMES JUNIOR, Everaldo de Avila. Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados. 2020. 89. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2020.
http://repositorio.furg.br/handle/1/9935
identifier_str_mv GOMES JUNIOR, Everaldo de Avila. Redução do custo da durabilidade em Replicação Máquina de Estados através de checkpoints particionados. 2020. 89. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2020.
url http://repositorio.furg.br/handle/1/9935
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da FURG (RI FURG)
instname:Universidade Federal do Rio Grande (FURG)
instacron:FURG
instname_str Universidade Federal do Rio Grande (FURG)
instacron_str FURG
institution FURG
reponame_str Repositório Institucional da FURG (RI FURG)
collection Repositório Institucional da FURG (RI FURG)
repository.name.fl_str_mv Repositório Institucional da FURG (RI FURG) - Universidade Federal do Rio Grande (FURG)
repository.mail.fl_str_mv
_version_ 1807384415893979136