Voltar
Architecture diagram showing three application types — Java apps (JDBC, jooq), Python apps (sqlalchemy, pymysql), and Ruby apps (ActiveRecord, mysql2) — each paired with a corresponding query logger (Java Query Logger, Python Query Logger, Ruby Query Logger). All three loggers feed into a central Kafka topic that collects query traces, which then flows into a Legacy Query Replayer.

Airbnb Inova ao Reproduzir Cargas de Trabalho de Banco de Dados para Testes e Otimização

Aprofundamento CEVIU

Aprofundamento

A estratégia do Airbnb para testar bancos de dados é um case interessante para engenheiros de plataforma e DevOps. Em vez de se basear em benchmarks sintéticos, a empresa optou por capturar o tráfego SQL real da produção, usando o ProxySQL como ponto de interceptação. Essa escolha é estratégica: o ProxySQL já atua como um proxy de banco de dados, entende o protocolo MySQL e, o mais importante, não exige alterações nas aplicações. Isso resolve o problema de capturas fragmentadas e dependentes de linguagem que o Airbnb tinha antes, conforme detalhado no artigo.

O sistema funciona em três fases: um Log Mover coleta logs do ProxySQL para armazenamento em nuvem, um Log Processor decodifica, agrupa e reordena as transações por cluster e pod de ProxySQL, e um Log Replayer executa esses logs contra os bancos de dados de teste. Um ponto crucial é como o Log Processor manipula IDs auto-incrementais: ele reescreve instruções INSERT para incluir explicitamente o last_insert_id original. Isso garante a consistência em testes de compatibilidade, evitando falsos positivos que poderiam surgir de diferentes comportamentos de auto-incremento entre versões de MySQL ou bancos compatíveis. Essa abordagem se diferencia de métodos como o apresentado para PostgreSQL 18, que no artigo do CEVIU de 10 de março de 2026, foca em exportar apenas estatísticas do otimizador para testes, sem a reprodução exata da carga de trabalho transacional.

Por que isso importa

Para equipes de DevOps, a solução do Airbnb é um divisor de águas na gestão de infraestrutura de dados em escala. A capacidade de reproduzir com precisão o timing e a sequência das transações de produção em ambientes de teste permite um planejamento de capacidade muito mais acurado. É possível simular picos de tráfego, como temporadas de alta demanda, e identificar gargalos antes que afetem usuários reais, otimizando o uso de recursos e, consequentemente, custos.

Além disso, a detecção proativa de regressões de desempenho e problemas de compatibilidade, como os encontrados na transição do MySQL 5.7 para o 8.0 (com a remoção do cache de query e mudanças na ordenação de linhas), minimiza riscos em upgrades de banco de dados. Isso garante que a confiabilidade do sistema não seja comprometida, economizando tempo valioso da equipe de engenharia e evitando incidentes em produção. É a diferença entre testar o que se imagina e testar o que realmente acontece.

Linha do tempo

  1. CEVIU News reporta que Airbnb inova em testes de banco de dados com reaplicação de workloads reais.

  2. CEVIU News aprofunda sobre o aprimoramento da validação de banco de dados no Airbnb com replicação de cargas de trabalho reais.

  3. Airbnb detalha como reproduz cargas de trabalho de banco de dados para testes e otimização.

Perguntas frequentes

Qual o papel do ProxySQL na estratégia do Airbnb?

O ProxySQL atua como o ponto de captura central do tráfego SQL. Por já estar entre as aplicações e os bancos de dados, ele permite interceptar e logar todas as consultas de forma agnóstica ao cliente, sem exigir alterações no código das aplicações. Isso simplifica a coleta de dados de produção para replay.

Como o Airbnb garante a segurança e privacidade dos dados capturados?

Os logs de query capturados são tratados com o mesmo rigor dos dados de produção. Eles são criptografados em trânsito e em repouso, o acesso é restrito à equipe de infraestrutura de banco de dados com base no princípio do menor privilégio, e o log é ativado apenas durante as janelas de teste necessárias. As reproduções são realizadas apenas em ambientes equivalentes à produção, nunca em ambientes de desenvolvimento ou inferiores.

Que tipo de problemas o sistema de replay do Airbnb conseguiu identificar?

O sistema foi crucial para identificar regressões de desempenho na atualização para o MySQL 8.0, como latências aumentadas devido a novas políticas de bloqueio de metadados e mudanças na leitura de linhas durante a ordenação. Também revelou consultas com ordenação de linhas não determinística, que poderiam retornar resultados diferentes entre versões de banco de dados, permitindo correções proativas.

Quais são as vantagens de replicar tráfego real em vez de usar benchmarks sintéticos?

Benchmarks sintéticos como o sysbench não conseguem reproduzir a complexidade e o espectro total das consultas de produção. A replicação de tráfego real permite testar o banco de dados exatamente com a carga de trabalho que ele enfrenta, resultando em um planejamento de capacidade mais preciso, identificação de gargalos reais e validação de compatibilidade com base no comportamento exato das aplicações.

Fontes

Avalie este artigo:
Categoria
CEVIU DevOps
Publicado
09 de outubro de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser