Dissertação

{en_GB=Flexible Large-Scale Data Storage} {} EVALUATED

{pt=Com o aumento da quantidade de informação processada, as empresas são forçadas a aumentar as suas infraestruturas de modo a continuarem a prestar um serviço de qualidade aos seus clientes. Para além disso, diferentes classes de pedidos têm diferentes requisitos de performance e consistência, o que cria tensão entre a simplicidade de utilizar o mesmo sistema para lidar com todos os pedidos e a capacidade de diferenciar como estes pedidos são processados. No entanto, empresas que não têm a dimensão de grandes entidades, sentem dificuldades em garantir que a qualidade do serviço prestado não seja afetada. Neste trabalho, foi feita uma análise meticulosa em relação aos diferentes tipos de soluções capazes de lidar com o aumento da quantidade de informação, para projetar uma solução tão capaz quanto aquelas, mas a um custo reduzido. Após esta análise, esta dissertação propõe uma abordagem híbrida, inspirada no padrão de software Command Query Responsibility Segregation. No seu estado mais puro, este padrão segrega os pedidos de acordo com o seu propósito, leitura ou escrita de dados. No entanto, nós iremos mais longe e teremos em conta os diferentes níveis de consistência de cada pedido. Para testar a nossa solução, colaborámos com a Unbabel, uma startup que fornece tradução como um serviço, implementando-a num módulo específico do seu sistema. Os resultados desta avaliação demonstram que a nossa solução é capaz de melhorar o tempo de resposta dos pedidos de leitura que possuem requisitos de consistência mais relaxados, atingindo, em média, um speedup de 3.30., en=The ever increasing amount of data that companies have to process forces their infrastructure to grow to continue serving the client's demands. Furthermore, different classes of storage requests have different requirements in terms of performance and consistency which leads to a tension between the simplicity of using the same system for handling all requests and the ability to differentiate how these requests are handled. However, companies that lack the dimension of major Internet players, find it difficult to address this problem without reducing the quality of the service provided to the client. In this work, we make a thorough analysis on the state-of-art regarding the different types of solutions capable of dealing with request differentiation in large scale storage, to design a solution as capable as those but at a severely reduced cost. After analyzing the state-of-art, this thesis proposes a hybrid approach inspired by the software pattern called Command Query Responsibility Segregation. At its core, this pattern segregates requests according to its functionality, whether it reads or updates data. However, in our solution, we will go further and include the different levels of consistency in this differentiation. In order to test our solution, we collaborated with Unbabel, a startup that offers translation as a service, by implementing it on a specific module of their system. This solution managed to improve the read response time of requests with more relaxed consistency requirements by achieving a speedup of 3.30 while maintaining the same performance for the remaining classes of requests.}
{pt=CQRS, Armazenamento em larga escala, Disponibilidade, Consistência, en=CQRS, Large scale storage, Availability, Consistency}

Novembro 13, 2018, 9:0

Orientação

ORIENTADOR

Rodrigo Seromenho Miragaia Rodrigues

Departamento de Engenharia Informática (DEI)

Professor Catedrático

ORIENTADOR

Marcelo Lebre

Unbabel

Especialista