Testing Geo-Replicated Aplications

Bibliographic Details
Main Author: França, Miguel Elias de Sousa
Publication Date: 2023
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/10362/167025
Summary: Geo-replication has been a common technique to provide clients with fast worldwide access to an application. For such large-scale systems, the application’s servers, logic and data are replicated in many geographical locations across different continents. Creating and maintaining geo-replicated applications is challenging and developers often make mistakes due to the complexity of these systems. Software tools and frame- works, such as Jepsen and JepREST, are currently available to assist with the testing process and the correctness of distributed applications. Yet, these tools were not designed to test applications that are spread out in a geo-replicated way without extra effort. For this purpose, we have extended the functionalities of JepREST to support testing geo-replicated applications. This involves the deployment of virtual clients around the world that perform a set of operations simultaneously on the application while producing logs that will be analysed to check if the execution was correct. These clients will attempt to uncover any inconsistencies being made by the application. As they act like real- world clients, detecting anomalies in the behaviour of the application can be deemed unacceptable. That is why it is crucial for an application to be able to maintain its claims of being correct and ensuring data consistency. To accommodate the generated results that are now scattered around the globe we have implemented an algorithm that compiles them into a unified sequence of operations ordered by their time of execution. Since our clients use different clocks, there can be slight discrepancies which can cause operations to be ordered differently than what happened in reality. To address this, we calculate the time gaps between our clients’ clocks and consider these differences in the verification process using a checker algorithm modified to handle such cases. To test the accuracy of this algorithm we built a geo-replicated application and deployed JepREST to test it worldwide. The results show that the algorithm is able to detect anomalies present in the sequences of operations that do not respect causal consistency. We also designed custom histories of operations to test the limits of our algorithm, for which the algorithm was able to correctly output the results.
id RCAP_3e1b98f0b3e913aff1f958e7332f0e6d
oai_identifier_str oai:run.unl.pt:10362/167025
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Testing Geo-Replicated AplicationsDistributed SystemsGeo-replicationJepsenJepRESTBlack-box testsDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaGeo-replication has been a common technique to provide clients with fast worldwide access to an application. For such large-scale systems, the application’s servers, logic and data are replicated in many geographical locations across different continents. Creating and maintaining geo-replicated applications is challenging and developers often make mistakes due to the complexity of these systems. Software tools and frame- works, such as Jepsen and JepREST, are currently available to assist with the testing process and the correctness of distributed applications. Yet, these tools were not designed to test applications that are spread out in a geo-replicated way without extra effort. For this purpose, we have extended the functionalities of JepREST to support testing geo-replicated applications. This involves the deployment of virtual clients around the world that perform a set of operations simultaneously on the application while producing logs that will be analysed to check if the execution was correct. These clients will attempt to uncover any inconsistencies being made by the application. As they act like real- world clients, detecting anomalies in the behaviour of the application can be deemed unacceptable. That is why it is crucial for an application to be able to maintain its claims of being correct and ensuring data consistency. To accommodate the generated results that are now scattered around the globe we have implemented an algorithm that compiles them into a unified sequence of operations ordered by their time of execution. Since our clients use different clocks, there can be slight discrepancies which can cause operations to be ordered differently than what happened in reality. To address this, we calculate the time gaps between our clients’ clocks and consider these differences in the verification process using a checker algorithm modified to handle such cases. To test the accuracy of this algorithm we built a geo-replicated application and deployed JepREST to test it worldwide. The results show that the algorithm is able to detect anomalies present in the sequences of operations that do not respect causal consistency. We also designed custom histories of operations to test the limits of our algorithm, for which the algorithm was able to correctly output the results.A Geo-Replicação tem sido uma técnica comum para proporcionar aos clientes um acesso global e rápido a uma aplicação. Para tais sistemas de larga escala, os servidores, a lógica e os dados da aplicação são replicados em várias localizações geográficas em diferentes continentes. Construir e manter serviços geo-replicados é um desafio para os informáticos devido à sua complexidade. Algumas ferramentas, como o Jepsen e JepREST, já foram desenvolvidas para auxiliar o processo de teste e correção de sistemas distribuídos, no entanto, estas não são capazes de testar sistemas geo-replicados com muita facilidade. Para este propósito, estendemos as funcionalidades do JepREST para suportar testes em aplicações geo-replicadas. Isto envolveu a criação de clientes virtuais espalhados por todo o mundo, que realizam um conjunto de operações na aplicação concorrentemente. Ao mesmo tempo, geram ficheiros que serão analisados para verificar se a execução foi correta. Estes clientes tentarão descobrir quaisquer inconsistências da aplicação. São clientes a agir como um utilizador do mundo real, e por isso, ao detetarmos anomalias no comportamento da aplicação,esta pode ser considerada como tendo um comportamento inaceitável. Por essa razão, é crucial que uma aplicação consiga manter as suas afirmações de correção e garantir a consistência dos seus dados. Para tratar os resultados gerados que estão dispersos pelo globo nos diversos clientes, implementámos um algoritmo que os compila para uma única sequência de operações ordenadas pelo tempo de execução. Como os nossos clientes utilizam relógios de diferentes máquinas, podem existir pequenas discrepâncias que levam às operações sendo incorretamente ordenadas. Para solucionar isto, são calculadas as diferenças entre os relógios dos nossos clientes. Estas diferenças vão ter impacto na posterior análise dos resultados por parte de um algoritmo, modificado para tratar de tais casos. Para testar a precisão deste algoritmo, construímos uma aplicação geo-replicada e utilizámos o JepREST para a testar a nível mundial. Os resultados mostram que o algoritmo é capaz de detetar anomalias presentes nas sequências de operações que não respeitam a consistência causal. Também desenhamos testes personalizados de operações para avaliar os limites do nosso algoritmo, para os quais o algoritmo foi capaz de apresentar os resultados esperados.Preguiça, NunoFreitas, FilipeLeitão, JoãoRUNFrança, Miguel Elias de Sousa2024-05-06T15:19:45Z2023-112023-11-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/167025enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T18:21:04Zoai:run.unl.pt:10362/167025Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:51:50.345293Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Testing Geo-Replicated Aplications
title Testing Geo-Replicated Aplications
spellingShingle Testing Geo-Replicated Aplications
França, Miguel Elias de Sousa
Distributed Systems
Geo-replication
Jepsen
JepREST
Black-box tests
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Testing Geo-Replicated Aplications
title_full Testing Geo-Replicated Aplications
title_fullStr Testing Geo-Replicated Aplications
title_full_unstemmed Testing Geo-Replicated Aplications
title_sort Testing Geo-Replicated Aplications
author França, Miguel Elias de Sousa
author_facet França, Miguel Elias de Sousa
author_role author
dc.contributor.none.fl_str_mv Preguiça, Nuno
Freitas, Filipe
Leitão, João
RUN
dc.contributor.author.fl_str_mv França, Miguel Elias de Sousa
dc.subject.por.fl_str_mv Distributed Systems
Geo-replication
Jepsen
JepREST
Black-box tests
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Distributed Systems
Geo-replication
Jepsen
JepREST
Black-box tests
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Geo-replication has been a common technique to provide clients with fast worldwide access to an application. For such large-scale systems, the application’s servers, logic and data are replicated in many geographical locations across different continents. Creating and maintaining geo-replicated applications is challenging and developers often make mistakes due to the complexity of these systems. Software tools and frame- works, such as Jepsen and JepREST, are currently available to assist with the testing process and the correctness of distributed applications. Yet, these tools were not designed to test applications that are spread out in a geo-replicated way without extra effort. For this purpose, we have extended the functionalities of JepREST to support testing geo-replicated applications. This involves the deployment of virtual clients around the world that perform a set of operations simultaneously on the application while producing logs that will be analysed to check if the execution was correct. These clients will attempt to uncover any inconsistencies being made by the application. As they act like real- world clients, detecting anomalies in the behaviour of the application can be deemed unacceptable. That is why it is crucial for an application to be able to maintain its claims of being correct and ensuring data consistency. To accommodate the generated results that are now scattered around the globe we have implemented an algorithm that compiles them into a unified sequence of operations ordered by their time of execution. Since our clients use different clocks, there can be slight discrepancies which can cause operations to be ordered differently than what happened in reality. To address this, we calculate the time gaps between our clients’ clocks and consider these differences in the verification process using a checker algorithm modified to handle such cases. To test the accuracy of this algorithm we built a geo-replicated application and deployed JepREST to test it worldwide. The results show that the algorithm is able to detect anomalies present in the sequences of operations that do not respect causal consistency. We also designed custom histories of operations to test the limits of our algorithm, for which the algorithm was able to correctly output the results.
publishDate 2023
dc.date.none.fl_str_mv 2023-11
2023-11-01T00:00:00Z
2024-05-06T15:19:45Z
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 http://hdl.handle.net/10362/167025
url http://hdl.handle.net/10362/167025
dc.language.iso.fl_str_mv eng
language eng
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órios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833597018340065280