Utilize este identificador para referenciar este registo:
http://hdl.handle.net/10362/160382| Título: | Symphony: A Scalable Emulator for Distributed Systems |
| Autor: | Atalaia, André de Oliveira |
| Orientador: | Leitão, João |
| Palavras-chave: | Large Scale Distributed systems evaluation network emulation container technology |
| Data de Defesa: | Jun-2023 |
| 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. 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. |
| URI: | http://hdl.handle.net/10362/160382 |
| Designação: | MASTER IN COMPUTER SCIENCE AND ENGINEERING |
| Aparece nas colecções: | FCT: DI - Dissertações de Mestrado |
Ficheiros deste registo:
| Ficheiro | Descrição | Tamanho | Formato | |
|---|---|---|---|---|
| Atalaia_2023.pdf | 6,64 MB | Adobe PDF | Ver/Abrir |
Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.











