| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 2.51 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Application caching has become extremely popular and vital to today’s Web applications
and services, becoming a core component of these systems. Application caching consists of
integrating a caching layer into the existing application and storing data and computation
results from the database. It significantly improves performance by producing faster
responses and reducing overall system load.
However, while this level of caching provides better latency and scalability for the
applications and services that use it, there are some complex challenges to consider. One
of the primary challenges is to guarantee that the data in the cache remains consistent with
the data stored in the database when concurrent requests are issued to the application.
The integration of mechanisms in the application to ensure this consistency can be
complex and is often overlooked, leading to the return of stale data or the unnecessary
invalidation of still up-to-date data from the cache. If this issue remains unresolved, it
leads to consistency or performance problems for the application, ultimately defeating
the purpose of using an application cache.
In this dissertation, we propose a system named ClearCache, which addresses this
consistency problem. It was designed as an integrated library that can be used in applications
that make use of MongoDB as their database, and it includes the logic required to
write to and access data from a Redis cache instance automatically. Through the use of
timestamps and Redis functionalities, it transparently manages the consistency between
the database and cache layers.
Lastly, we present an experimental evaluation, where the results showthat ClearCache
enables better performance for applications that use it, reducing latency and increasing
performance. In addition to its efficiency, it is also simple to use
O caching aplicacional tornou-se extremamente popular e vital para as aplicações e serviços Web atuais, tornando-se um componente central destes sistemas. O caching aplicacional consiste na integração de uma camada de cache na aplicação existente e na sua utilização para armazenar dados e o resultado de cálculos provenientes da base de dados. Proporciona melhorias significativas de desempenho ao produzir respostas mais rápidas e ao reduzir a carga global do sistema. No entanto, embora este nível de caching proporcione uma melhor latência e escalabilidade para as aplicações e serviços que o utilizam, existem alguns desafios complexos a considerar. Um dos principais desafios é garantir que os dados presentes na cache permanecem consistentes com os dados armazenados na base de dados quando são efetuados pedidos concorrentes à aplicaçãoWeb. A integração de mecanismos na aplicação para garantir esta consistência pode ser complexa e é frequentemente negligenciada, levando ao retorno de dados obsoletos ou à invalidação desnecessária de dados ainda corretos da cache. Se esta questão não for resolvida, irá resultar em problemas de consistência ou de desempenho para a aplicação, acabando por anular o objetivo da utilização de uma cache de aplicação. Nesta dissertação, propomos um sistema designado ClearCache, que aborda este problema de consistência. Foi implementado como uma biblioteca integrada que pode ser usada em aplicações que utilizam o MongoDB como base de dados, e inclui a lógica necessária para escrever e aceder automaticamente a dados de uma instância de cache Redis. Através do uso de timestamps e funcionalidades do Redis, o sistema gere de forma transparente a consistência entre as camadas de banco de dados e cache. Por fim, apresentamos uma avaliação experimental, onde os resultados mostram que o ClearCache permite um melhor desempenho das aplicações que o utilizam, reduzindo a latência e aumentando a performance. Para além da sua eficiência, é também simples de utlizar.
O caching aplicacional tornou-se extremamente popular e vital para as aplicações e serviços Web atuais, tornando-se um componente central destes sistemas. O caching aplicacional consiste na integração de uma camada de cache na aplicação existente e na sua utilização para armazenar dados e o resultado de cálculos provenientes da base de dados. Proporciona melhorias significativas de desempenho ao produzir respostas mais rápidas e ao reduzir a carga global do sistema. No entanto, embora este nível de caching proporcione uma melhor latência e escalabilidade para as aplicações e serviços que o utilizam, existem alguns desafios complexos a considerar. Um dos principais desafios é garantir que os dados presentes na cache permanecem consistentes com os dados armazenados na base de dados quando são efetuados pedidos concorrentes à aplicaçãoWeb. A integração de mecanismos na aplicação para garantir esta consistência pode ser complexa e é frequentemente negligenciada, levando ao retorno de dados obsoletos ou à invalidação desnecessária de dados ainda corretos da cache. Se esta questão não for resolvida, irá resultar em problemas de consistência ou de desempenho para a aplicação, acabando por anular o objetivo da utilização de uma cache de aplicação. Nesta dissertação, propomos um sistema designado ClearCache, que aborda este problema de consistência. Foi implementado como uma biblioteca integrada que pode ser usada em aplicações que utilizam o MongoDB como base de dados, e inclui a lógica necessária para escrever e aceder automaticamente a dados de uma instância de cache Redis. Através do uso de timestamps e funcionalidades do Redis, o sistema gere de forma transparente a consistência entre as camadas de banco de dados e cache. Por fim, apresentamos uma avaliação experimental, onde os resultados mostram que o ClearCache permite um melhor desempenho das aplicações que o utilizam, reduzindo a latência e aumentando a performance. Para além da sua eficiência, é também simples de utlizar.
Descrição
Palavras-chave
Application caching Consistency Concurrency Invalidation Transparent caching
