Consistent and Efficient Application Caching

Detalhes bibliográficos
Autor(a) principal: Mendes, Francisco Ramos de Deus
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10362/163560
Resumo: 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
id RCAP_93e8e67681d272e456c6ec423ea6ff23
oai_identifier_str oai:run.unl.pt:10362/163560
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Consistent and Efficient Application CachingApplication cachingConsistencyConcurrencyInvalidationTransparent cachingDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaApplication 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 useO 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.Preguiça, NunoLeitão, JoãoRUNMendes, Francisco Ramos de Deus2024-02-15T10:50:15Z2023-112023-11-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/163560enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:47:20Zoai:run.unl.pt:10362/163560Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:59:27.777215Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Consistent and Efficient Application Caching
title Consistent and Efficient Application Caching
spellingShingle Consistent and Efficient Application Caching
Mendes, Francisco Ramos de Deus
Application caching
Consistency
Concurrency
Invalidation
Transparent caching
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Consistent and Efficient Application Caching
title_full Consistent and Efficient Application Caching
title_fullStr Consistent and Efficient Application Caching
title_full_unstemmed Consistent and Efficient Application Caching
title_sort Consistent and Efficient Application Caching
author Mendes, Francisco Ramos de Deus
author_facet Mendes, Francisco Ramos de Deus
author_role author
dc.contributor.none.fl_str_mv Preguiça, Nuno
Leitão, João
RUN
dc.contributor.author.fl_str_mv Mendes, Francisco Ramos de Deus
dc.subject.por.fl_str_mv Application caching
Consistency
Concurrency
Invalidation
Transparent caching
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Application caching
Consistency
Concurrency
Invalidation
Transparent caching
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description 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
publishDate 2023
dc.date.none.fl_str_mv 2023-11
2023-11-01T00:00:00Z
2024-02-15T10:50:15Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10362/163560
url http://hdl.handle.net/10362/163560
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799138174324178944