Testing Geo-Replicated Aplications
Main Author: | |
---|---|
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 |