Symphony: A Scalable Emulator for Distributed Systems

Detalhes bibliográficos
Autor(a) principal: Atalaia, André de Oliveira
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10362/160382
Resumo: Distributed Systems are becoming increasingly prevalent in our daily lives and their rele- vance has never been so prominent in everyday activities. This naturally leads systems to increase in complexity and dimension, with users having much higher expectations about the performance and correctness of these systems. This creates a significant pressure for conducting systematic and detailed performance assessments of novel proposals through experimentation. Conducting experiments on distributed systems can be challenging, since one has to launch multiple processes and retain control over them. While you can manually run and control experiments for small distributed systems, such possibility becomes daunting when large-scale distributed systems such as peer-to-peer systems or recent proposes in the context of Web 3.0. To be able to extract key performance metrics, which depend heavily on the underlying network, and since the networks where these systems operate are many times unstable, this can lead to inconclusive results. Moreover, when considering systems operating at a global scale, it is extremely hard to have access to competitive resources in many locations, to achieve realistic conditions. To emulate the underlying network realistically we can use Linux tc to shape links between the end hosts to exhibit target properties. To do this for large systems with thousands of nodes is however, very complex. In this work, we introduce a tool that assists in defining and executing experiments for large scale distributed systems, using container technology and network emulation. We present an architecture where a manager node exists per physical machine, and this man- ager is responsible for all the application nodes in that physical machine. This responsi- bility goes from receiving the experiment information (network topology, link properties, dynamic events), to ensuring that every application node receive their corresponding events. Lastly, we evaluated our tool by conducting experiments and comparing it against state-of-the-art tools, evaluating their performance when emulating large distributed systems.
id RCAP_4b0e8299da82e9bf48582158a355bebb
oai_identifier_str oai:run.unl.pt:10362/160382
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Symphony: A Scalable Emulator for Distributed SystemsLarge Scale Distributed systems evaluationnetwork emulationcontainer technologyDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDistributed Systems are becoming increasingly prevalent in our daily lives and their rele- vance has never been so prominent in everyday activities. This naturally leads systems to increase in complexity and dimension, with users having much higher expectations about the performance and correctness of these systems. This creates a significant pressure for conducting systematic and detailed performance assessments of novel proposals through experimentation. Conducting experiments on distributed systems can be challenging, since one has to launch multiple processes and retain control over them. While you can manually run and control experiments for small distributed systems, such possibility becomes daunting when large-scale distributed systems such as peer-to-peer systems or recent proposes in the context of Web 3.0. To be able to extract key performance metrics, which depend heavily on the underlying network, and since the networks where these systems operate are many times unstable, this can lead to inconclusive results. Moreover, when considering systems operating at a global scale, it is extremely hard to have access to competitive resources in many locations, to achieve realistic conditions. To emulate the underlying network realistically we can use Linux tc to shape links between the end hosts to exhibit target properties. To do this for large systems with thousands of nodes is however, very complex. In this work, we introduce a tool that assists in defining and executing experiments for large scale distributed systems, using container technology and network emulation. We present an architecture where a manager node exists per physical machine, and this man- ager is responsible for all the application nodes in that physical machine. This responsi- bility goes from receiving the experiment information (network topology, link properties, dynamic events), to ensuring that every application node receive their corresponding events. Lastly, we evaluated our tool by conducting experiments and comparing it against state-of-the-art tools, evaluating their performance when emulating large distributed systems.Os sistemas distribuídos estão cada vez mais presentes no nosso dia-a-dia, e a sua impor- tância nunca esteve tão em destaque nas actividades do dia-a-dia. Naturalmente, isto leva a que os sistemas aumentem a sua complexidade e dimensão e que os seus utilizadores tenham maiores expectativas sobre o desempenho e exatidão destes sistemas. Isto cria uma pressão significativa para a reliazação de avaliações sistemáticas e detalhadas do desempenho de novas propostas através de experimentação. A realização de experiências em sistemas pode ser desafiante, uma vez que se tem de lançar múltiplos processos e manter o control sobre estes. Enquanto se pode executar e controlar experiências manualmente em sistemas distribuídos pequenos, tal possibilidade torna-se impossível quando em comparação com sistemas distribuídos de larga escala, tais como sistemas entre-pares (do Inglês peer-to-peer, P2P) ou propostas recentes no contexto da Web 3.0. A extração de métricas de desempenho dependem fortemente da rede subjacente, e uma vez que estas redes onde os sistemas operam são muitas vezes instavéis, isto pode levar a resultados inconclusivos. No entanto, quando consideramos sistemas que operam numa escala global, é extremamente difícil ter acesso a recursos competitivos em muitas localizações, para conseguir alcançar condições realistas. Para emular realisticamente a rede subjacente, podemos usar o Linux tc para moldar ligações entre os end hosts para exibir as propriedades alvo. Para o fazer para grandes sistemas com milhares de nós é, no entanto, muito complexo. Nesta dissertação, introduzimos uma ferramenta que assiste na definição e execução de experiências para sistemas distribuidos de larga escala usando a tecnologia de contai- ners e emulação de rede. Introduzimos uma arquitectura onde existem um nó gerente por máquina física, sendo este nó responsável por todos os nós aplicacionais naquela má- quina física. Esta responsabilidade vai de receber informação relevante para a experiência (i.e. topologia de rede, propriedades das ligações, e eventos dinamicos) de modo a asse- gurar que cada aplicação recebe os seus correspectivos eventos. Por ultimo, realizámos experiências e comparámos a nossa ferramenta com outras existentes, avaliando a sua performance ao emular grandes sistemas distribuidos.Leitão, JoãoRUNAtalaia, André de Oliveira2023-11-23T18:36:32Z2023-062023-06-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/160382enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:43:04Zoai:run.unl.pt:10362/160382Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:58:00.906304Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Symphony: A Scalable Emulator for Distributed Systems
title Symphony: A Scalable Emulator for Distributed Systems
spellingShingle Symphony: A Scalable Emulator for Distributed Systems
Atalaia, André de Oliveira
Large Scale Distributed systems evaluation
network emulation
container technology
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Symphony: A Scalable Emulator for Distributed Systems
title_full Symphony: A Scalable Emulator for Distributed Systems
title_fullStr Symphony: A Scalable Emulator for Distributed Systems
title_full_unstemmed Symphony: A Scalable Emulator for Distributed Systems
title_sort Symphony: A Scalable Emulator for Distributed Systems
author Atalaia, André de Oliveira
author_facet Atalaia, André de Oliveira
author_role author
dc.contributor.none.fl_str_mv Leitão, João
RUN
dc.contributor.author.fl_str_mv Atalaia, André de Oliveira
dc.subject.por.fl_str_mv Large Scale Distributed systems evaluation
network emulation
container technology
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Large Scale Distributed systems evaluation
network emulation
container technology
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Distributed Systems are becoming increasingly prevalent in our daily lives and their rele- vance has never been so prominent in everyday activities. This naturally leads systems to increase in complexity and dimension, with users having much higher expectations about the performance and correctness of these systems. This creates a significant pressure for conducting systematic and detailed performance assessments of novel proposals through experimentation. Conducting experiments on distributed systems can be challenging, since one has to launch multiple processes and retain control over them. While you can manually run and control experiments for small distributed systems, such possibility becomes daunting when large-scale distributed systems such as peer-to-peer systems or recent proposes in the context of Web 3.0. To be able to extract key performance metrics, which depend heavily on the underlying network, and since the networks where these systems operate are many times unstable, this can lead to inconclusive results. Moreover, when considering systems operating at a global scale, it is extremely hard to have access to competitive resources in many locations, to achieve realistic conditions. To emulate the underlying network realistically we can use Linux tc to shape links between the end hosts to exhibit target properties. To do this for large systems with thousands of nodes is however, very complex. In this work, we introduce a tool that assists in defining and executing experiments for large scale distributed systems, using container technology and network emulation. We present an architecture where a manager node exists per physical machine, and this man- ager is responsible for all the application nodes in that physical machine. This responsi- bility goes from receiving the experiment information (network topology, link properties, dynamic events), to ensuring that every application node receive their corresponding events. Lastly, we evaluated our tool by conducting experiments and comparing it against state-of-the-art tools, evaluating their performance when emulating large distributed systems.
publishDate 2023
dc.date.none.fl_str_mv 2023-11-23T18:36:32Z
2023-06
2023-06-01T00:00:00Z
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/160382
url http://hdl.handle.net/10362/160382
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799138161686740992