Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/84475

TítuloLazyFS: a file system for assessing applications data durability
Outro(s) título(s)LazyFS: um sistema de ficheiros para avaliar a durabilidade de dados de aplicações
Autor(es)Azevedo, João Pedro Rodrigues
Orientador(es)Paulo, João Tiago Medeiros
Macedo, Ricardo Gonçalves
Palavras-chaveInjeção de faltas
Perda de dados
Reprodutibilidade
Sistema de ficheiros
Data loss
Fault injection
File system
Reproducibility
Data15-Dez-2022
Resumo(s)A 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.
The 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.
TipoDissertação de mestrado
DescriçãoDissertação de mestrado integrado em Informatics Engineering
URIhttps://hdl.handle.net/1822/84475
AcessoAcesso aberto
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Joao Pedro Rodrigues Azevedo.pdf3,01 MBAdobe PDFVer/Abrir

Este trabalho está licenciado sob uma Licença Creative Commons 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