Comparativo de Desempenho de um Sistema de Cache para Aplicações web Utilizando Banco de Dados Chave-Valor

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Marina Souza
Ederson Torresini
Jorge Henrique Busatto Casagrande


Estudante do Curso de Engenharia de Telecomunicações do Campus São José do IFSC
Professor Orientador do Curso de Engenharia de Telecomunicações do Campus São José do IFSC
Professor Coorientador do Curso de Engenharia de Telecomunicações do Campus São José do IFSC
Resumo

O cache vem sendo amplamente utilizado em diversas etapas de um sistema web como técnica que possibilita a redução de consultas redundantes a servidores e banco de dados, tráfego na rede e latência. Contudo, dada a diversidade de aplicações disponíveis e suas particularidades, necessidades distintas entre as aplicações devem ser consideradas durante o desenvolvimento para melhor utilização dos recursos disponíveis. O objetivo deste trabalho é analisar diferentes abordagens de uso de cache em aplicações web, comparando o desempenho através da métrica de tempo de resposta da requisição, representando a percepção do usuário como utilizador do sistema e também métricas de eficiência de uso do recurso de cache como hit rate e uso de memória. A aplicação web em avaliação é um sistema de consulta por termos, no qual os dados serão armazenadas no banco de dados não relacional Cassandra e serviço de cache implementado através do banco de dados não relacional Redis. O sistema foi submetido à um teste de carga para análise do comportamento. Ao fim do teste, em média, mais de 78% das requisições estavam sendo atendidas por cache nos cenários que implementavam a técnica. O cenário que implementa o cache passivo e cenário que implementa cache pró-ativo com Time to Live (TTL) adaptativo apresentaram os menores valores de tempo de resposta sendo que o cenário com cache pró-ativo com TTL adaptativo apresentou também, a maior taxa de hit rate. A memória livre e o uso de Central Process Unit ( CPU), embora impactados durante a execução dos testes, não apresentaram resultados conclusivos quando a um cenário mais eficiente comparado as demais.

Palavras-chave

Invalidação de cache. Aplicação web. Banco de dados chave-valor.

Abstract

The cache has been widely used in several stages of a web system such as technique that makes it possible to reduce redundant queries to servers and databases, network traffic and latency. However, given the diversity of available applications and their particularities, different needs between applications must be considered during development to make better use of available resources. The purpose of this work is to analyze different approaches to the use of cache in web applications, comparing performance through the request response time metric, representing the user perception as a system user and also usage efficiency metrics cache resource like hit rate and memory usage. The web application being evaluated is a query by terms system, in which the data will be stored in the database Cassandra non-relational data and caching service implemented through the database Redis non-relational data. The system was subjected to a load test to analyze the behavior. At the end of the test, on average, more than 78% of requests were being processed served by cache in scenarios that implemented the technique. The scenario that implements passive caching and scenario that implements proactive caching with TTL adaptive presented the lowest response time values and the scenario with proactive caching with adaptive TTL also presented the highest hit rate. Free memory and CPU usage, although impacted during execution of the tests, did not present conclusive results when to a more efficient compared to others.

Keywords

Cache invalidation. Web application. Key-value database.

Arquivos do TCC