A Netflix detalhou uma otimizacao no Apache Druid em que cerca de 84% dos resultados analiticos passaram a ser servidos direto do cache. A carga de queries caiu em torno de 33%. O ganho veio de uma ideia simples na descricao mas exigente na implementacao: ensinar o cache a entender intervalos de tempo em vez de tratar cada query como uma string isolada.
O que o Apache Druid faz no dia a dia
O Druid e um banco analitico (OLAP, sigla para Online Analytical Processing, sistemas otimizados para agregacoes em grandes volumes de dados) projetado para responder a consultas com janelas de tempo em alta frequencia. Dashboards de operacao em tempo real, relatorios de produto e alertas dependem desse tipo de motor para devolver agregacoes rapidas em cima de bilhoes de eventos.
Na Netflix, o Druid sustenta paineis que recalculam metricas continuamente. Cada refresh dispara uma nova consulta com a mesma logica mas com a janela deslocada alguns segundos para frente. Quem ja construiu dashboard sabe a sensacao: pequenas variacoes na janela geram trabalho computacional repetido.
O problema do cache tradicional
A forma mais comum de cachear resultados em motores OLAP usa o hash da query como chave. Funciona quando a mesma pergunta e feita varias vezes seguidas, mas quebra em cenarios de janela deslizante. Pedir “ultimos 7 dias” hoje e “ultimos 7 dias” daqui a uma hora produz duas chaves diferentes, mesmo que 99% dos dados se sobreponham.
O resultado pratico e leitura repetida de blocos enormes de dados que ja foram computados ha minutos. Para um servico com milhares de paineis ativos simultaneamente, isso vira pressao desnecessaria sobre o cluster.
A ideia central: cache que entende intervalos
A otimizacao da Netflix muda o que o cache armazena e como ele e consultado. Em vez de salvar apenas o resultado completo de cada query, o cache passa a registrar resultados por sub-intervalos. Quando uma nova consulta chega, o sistema verifica quais pedacos do intervalo solicitado ja existem no cache e computa apenas o que ainda falta.
Se a consulta de ontem cobriu de 1 a 7 de maio e a de hoje pede de 2 a 8 de maio, o motor reaproveita os seis dias em comum e processa so o dia 8. O ganho composto ao longo de milhares de queries por minuto explica os numeros divulgados.
Os resultados em numeros
A Netflix reporta um cache hit rate de cerca de 84%, ou seja, em 84 a cada 100 consultas o sistema consegue compor a resposta direto da memoria. A carga total de queries no cluster caiu cerca de 33%. Sao numeros relevantes para qualquer operacao que paga por infraestrutura analitica proporcional ao volume processado.
Por que isso interessa alem do Druid
A tecnica nao e exclusiva do Druid. A mesma logica se aplica em qualquer motor OLAP com queries baseadas em tempo, como ClickHouse, Apache Pinot, Trino ou ate BigQuery e Snowflake quando usados em workloads de monitoramento. Times brasileiros que mantem stacks analiticos com janelas deslizantes podem revisitar suas estrategias de cache com a mesma logica.
A licao mais ampla e que cache em sistemas analiticos nao precisa ser binario (resultado existe ou nao). Pode ser composicional: pequenos blocos cacheados se combinam para formar respostas maiores. Esse padrao aparece tambem em arquiteturas de materialized views e em camadas de pre-agregacao.
O que observar a partir daqui
A Netflix nao publicou o codigo dessa otimizacao como contribuicao oficial ao projeto Apache Druid no momento do anuncio. Times interessados em replicar a abordagem precisam reimplementar a logica de decomposicao de intervalos sobre o cache de suas proprias instalacoes. Vale acompanhar se a empresa abrira parte do trabalho upstream ou se o projeto Druid mainline incorporara uma versao similar.
Reportado originalmente por InfoQ em 2026-05-11.



