Netflix cria particionamento dinâmico no Cassandra para séries temporais de alto volume
Aprofundamento CEVIU
Aprofundamento
A Netflix não está apenas ajustando o Cassandra: está redefinindo como bancos de dados distribuídos lidam com séries temporais em escala real. O particionamento dinâmico, anunciado em 3 de junho de 2026 e agora em produção, ataca dois sintomas crônicos do Cassandra em workloads de eventos contínuos, latência de leitura em segundos e timeouts recorrentes, com duas camadas técnicas distintas. A primeira, o re-particionamento de fatias de tempo, opera em segundo plano usando nodetool tablehistograms para monitorar densidade de partições e recalibrar automaticamente os limites de janelas temporais (ex: mudando de 1h para 15min por partição) com base em alvos configuráveis: entre 2 MiB e 10 MiB, nunca ultrapassando 100 MB. A segunda, o particionamento dinâmico por ID, é acionada em tempo de leitura: ao detectar uma partição larga durante uma consulta, um pipeline assíncrono a divide e redireciona transparentemente as requisições usando filtros Bloom em memória, sem que aplicações precisem saber ou se adaptar.
Isso não é uma otimização isolada. Conecta-se diretamente à evolução da movimentação de dados descrita em 21 de maio: o novo particionamento reduz a pressão sobre pipelines que migram dados do Cassandra para Iceberg no S3, pois partições menores e mais uniformes melhoram a eficiência dos leitores Spark DataFrames. Também complementa os Data Projects lançados em 14 de maio, agora, cada projeto pode definir políticas de particionamento dinâmico específicas para seus ativos de séries temporais, vinculando governança a comportamento operacional.
O que mudou
O que era uma estratégia manual de 'chunking' baseada em CustomerId (desde 2018) e depois uma abstração estática com 'event bucketing' (desde outubro de 2024) agora virou um sistema autoadaptativo. Antes, engenheiros ajustavam buckets de tempo ou tamanhos de chunk em código ou configurações fixas; agora, o sistema detecta, decide e executa divisões em tempo real, mantendo compatibilidade total com consultas existentes. A mudança não é só técnica: é operacional, elimina intervenções manuais para equilibrar partições em clusters com petabytes de dados de visualização e métricas.
Por que isso importa
Para times de dados que usam Cassandra para séries temporais, isso significa deixar de escolher entre escalabilidade e baixa latência. Partições largas eram um trade-off inevitável, ou você fragmentava demais e perdiam qualidade nas consultas de intervalo, ou consolidava demais e quebrava SLAs. Agora, o Cassandra da Netflix age como se tivesse um agente de balanceamento interno, capaz de manter 99% das leituras sob 200ms mesmo com crescimento desigual de dados por usuário ou dispositivo. Isso impacta diretamente a confiabilidade de sistemas críticos: desde detecção de fraudes em tempo real até geração de recomendações baseadas em sessão.
Linha do tempo
Netflix implementa 'chunking' manual no Cassandra para histórico de visualização devido ao crescimento excessivo de rows por CustomerId
Lançamento da Camada de Abstração de Séries Temporais com particionamento temporal estático e event bucketing
Introdução dos Data Projects para governança de ativos de dados em escala
Substituição do motor de movimentação de dados Cassandra para Iceberg por plataforma baseada em S3 e Spark DataFrames
Anúncio oficial do particionamento dinâmico no Cassandra para séries temporais
Implantação em produção e validação de redução de latência de leitura para dezenas de milissegundos
Perguntas frequentes
Esse particionamento dinâmico requer alterações nas aplicações?
Não. As consultas continuam usando as mesmas chaves primárias e predicados. O redirecionamento para partições divididas é feito internamente pelo driver modificado e pelos filtros Bloom em memória, sem mudanças no código cliente.
Como a Netflix garante consistência durante a divisão de uma partição?
A divisão ocorre em modo de escrita exclusiva: novas inserções são roteadas para as novas partições enquanto a antiga fica em modo somente leitura até que todas as leituras pendentes sejam concluídas. Não há perda de dados nem estado inconsistente visível para aplicações.
Essa funcionalidade já está disponível no Apache Cassandra open source?
Não. Trata-se de um fork interno da Netflix para Cassandra 4.x, integrado à sua TimeSeries Abstraction Layer. Não há planos públicos de contribuição para o upstream, pois depende de componentes proprietários de orquestração e introspecção.
Qual é o impacto no custo operacional de clusters Cassandra?
Redução de 30–40% na utilização média de CPU e diminuição significativa de pausas de GC. Isso permitiu consolidar clusters menores e reduzir o número de nós dedicados a séries temporais, sem afetar a latência de pico.
- Categoria
- CEVIU Dados
- Publicado
- 08 de junho de 2026
- Fonte
- CEVIU Dados
