Using Load Shedding to Fight Tail-Latency on Runtime-Based Services

  • Daniel Fireman
  • Raquel Lopes
  • João Brunet

Resumo


Serviços HTTP escritos em linguagens baseadas em runtime são muito populares nos dias de hoje. Por se basearem em uma runtime, estes serviços podem usufruir de benefícios como código mais seguro, multiplataforma e etc. Todavia, é bem conhecido que pausas da runtime devido à coleta de lixo aumentam o tempo de resposta. Como serviços modernos frequentemente se baseiam em diversas chamadas remotas, o desempenho total do sistema acaba sendo determinado pela cauda da distribuição de latência, ao invés da sua média. Como solução para esse problema, propomos uma combinação de prevenção de carga e controle das intervenções causadas por coletores de lixo. Nós implementamos um protótipo em Java e avaliamos o seu desempenho diante de workloads sintéticas. Os resultados mostram uma redução de aproximadamente 40% na cauda de latência, mantendo praticamente a mesma vazão e utilização de CPU.
Publicado
19/05/2017
FIREMAN, Daniel; LOPES, Raquel; BRUNET, João. Using Load Shedding to Fight Tail-Latency on Runtime-Based Services. In: SIMPÓSIO BRASILEIRO DE REDES DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS (SBRC), 35. , 2017, Belém. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2017 . ISSN 2177-9384.