Dissertação

Variable Data Consistency in Parse Server EVALUATED

As aplicações de hoje em dia recorrem a sistemas de armazenamento backend, para armazenarem o seu estado persistente. A replicação dos dados é amplamente adotada por esses backends para melhorar a confiabilidade e o desempenho. Embora a manutenção da consistência forte entre as réplicas garanta o correto funcionamento das aplicações isso afetará o desempenho da mesma pois existe um trade-off bem conhecido entre consistência e desempenho. A documentação do Parse Server, o nosso backend alvo, não esclarece o nível de consistência que fornece. Nós investigamos e chegamos à conclusão de que as garantias de consistência que oferece dependem de como alguns parâmetros, que têm impacto na consistência de seu sistema de armazenamento, MongoDB, estão a ser definidos. Infelizmente, não há informações sobre essa configuração. Nós também descobrimos que ajustar esses parâmetros pode não garantir que algumas anomalias de consistência sejam evitadas. Para melhorar essas garantias, propomos uma solução que permite aos programadores escolher as garantias de consistência que necessitam, por objeto, e oferecer um novo modelo de consistência, fornecido pelo ZooKeeper. Esta solução permite que o Parse Server forneça consistência sequencial nos seus objetos, se os programadores assim o exigirem. Nós implementamos e avaliámos a nossa proposta de solução para medir como ela afeta a latência dos pedidos ao Parse Server e também o throughput do Parse Server. O impacto em certos casos é significativo, mas esse é o preço que os programadores têm que pagar para alcançar um nível maior de consistência de dados nas suas aplicações.
Sistemas distribuídos, Consistência de dados, ZooKeeper, Parse Server, MongoDB

Novembro 6, 2017, 14:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Rodrigo Seromenho Miragaia Rodrigues

Departamento de Engenharia Informática (DEI)

Professor Catedrático