Please use this identifier to cite or link to this item: https://hdl.handle.net/1822/84475

Full metadata record
DC FieldValueLanguage
dc.contributor.advisorPaulo, João Tiago Medeirospor
dc.contributor.advisorMacedo, Ricardo Gonçalvespor
dc.contributor.authorAzevedo, João Pedro Rodriguespor
dc.date.accessioned2023-05-15T17:00:43Z-
dc.date.available2023-05-15T17:00:43Z-
dc.date.issued2022-12-15-
dc.date.submitted2022-10-
dc.identifier.urihttps://hdl.handle.net/1822/84475-
dc.descriptionDissertação de mestrado integrado em Informatics Engineeringpor
dc.description.abstractA atual era digital depende de dados numa perspetiva de grande escala e as organizações requerem sistemas de armazenamento que funcionem corretamente sob falhas. Por exemplo, falhas de energia podem levar à perda de dados em aplicações cujos ficheiros ainda estão armazenados em memória, isto é, num meio volátil. Evitar estes cenários de perda de dados constitui um grande desafio, uma vez que exige que os programadores apliquem primitivas de sincronização (fsync()) que garantem a durabilidade dos dados, a custo de uma potencial diminuição do desempenho das aplicações. As ferramentas de injeção de faltas permitem ajudar os programadores com testes automáticos e consequente validação das suas políticas de durabilidade de dados. No entanto, as abordagens atuais para sistemas de ficheiros focam-se: (1) na manipulação direta de hardware; ou (2) em erros internos de implementação do sistema de ficheiros, e não na interação da aplicação com o mesmo. Além disso, estas ferramentas são limitadas quanto à informação disponibilizada ao programador, de forma a este compreender a causa efetiva que levou à perda de dados reportada. Para resolver estes desafios, esta dissertação propõe o LazyFS, um sistema de ficheiros que simula a perda de dados utilizando uma abordagem de injeção de faltas em software reprodutível e automática. Este sistema tem uma cache dedicada que gere os dados das aplicações e a sua sincronização para uma camada persistente. A pedido, o LazyFS pode limpar todos os dados que não foram previamente sincronizados, fornecendo também aos programadores informações relevantes sobre os dados em risco de serem perdidos com potenciais falhas de energia. O desempenho e validação da correção do protótipo demonstra que a nossa solução consegue avaliar a durabilidade dos dados de aplicações, sem adicionar uma sobrecarga significativa à sua execução normal. Foram também reproduzidas quatro anomalias em diferentes bases de dados e o protótipo já se encontra integrado na ferramenta de injeção de faltas Jepsen. Atualmente, o LazyFS está a ser usado, juntamente com o Jepsen, para avaliar sistemas de bases de dados em produção, como o Percona MySQL Server, MongoDB e o etcd. Adicionalmente, foi descoberta uma possível violação de coerência no etcd, que está a ser estudada pela sua equipa de desenvolvimento.por
dc.description.abstractThe digital era we are living in depends on data in a massive scale perspective and organizations require reliable storage systems to perform correctly under failures. For instance, power outages may lead to data loss for applications whose File system (FS) data is still cached and has not yet been flushed to a persistent storage medium. Avoiding these data loss scenarios is challenging since it requires application developers to employ synchronization primitives (fsync) to ensure data durability, which, as a consequence, may significantly impact the performance of applications. Through fault injection tools one could potentially help developers, by providing automatic testing and validation of their data durability policies, while pinpointing potential issues. However, current testing approaches for assessing the durability of data stored at FSs are: (1) done manually through hardware manipulation; or (2) focus on internal errors found at the FS implementation and not on the interaction between the application and the FS. Further, these tools provide limited output to help users find the root causes of observed data loss. To solve these challenges, this dissertation presents LazyFS, a FS that simulates data loss using a reproducible and automatic software-based fault injection approach. It has an internal dedicated cache which manages applications data and its flushing to persistent storage. Upon request, it can discard all data that was not previously persisted, while helping developers by providing valuable outputs of the data in risk of being lost with a power failure. The performance and correctness validation of LazyFS’s prototype shows that our solution can evaluate applications data durability without imposing significant overhead to their normal execution. Also, four different database anomalies were reproduced with LazyFS. The prototype was also integrated with the widely-used Jepsen fault injection framework, and is being used for assessing the correctness of production databases such as Percona MySQL Server, MongoDB and etcd. A possible consistency violation was detected in the etcd database and is currently being studied by their development team.por
dc.language.isoengpor
dc.rightsopenAccesspor
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/por
dc.subjectInjeção de faltaspor
dc.subjectPerda de dadospor
dc.subjectReprodutibilidadepor
dc.subjectSistema de ficheirospor
dc.subjectData losspor
dc.subjectFault injectionpor
dc.subjectFile systempor
dc.subjectReproducibilitypor
dc.titleLazyFS: a file system for assessing applications data durabilitypor
dc.title.alternativeLazyFS: um sistema de ficheiros para avaliar a durabilidade de dados de aplicaçõespor
dc.typemasterThesiseng
dc.identifier.tid203262085por
thesis.degree.grantorUniversidade do Minhopor
sdum.degree.grade20 valorespor
sdum.uoeiEscola de Engenhariapor
dc.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapor
Appears in Collections:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
Joao Pedro Rodrigues Azevedo.pdf3,01 MBAdobe PDFView/Open

This item is licensed under a Creative Commons License Creative Commons

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID