antonio leandro

sistemas distribuídos

Mesa: Geo-Replicated, Near Real-Time, Scalable Data Warehousing

paper · Ashish Gupta, Fan Yang, Jason Govig, et al. ·

a tese

warehouse não precisa ser a foto de ontem: dá para ingerir milhões de atualizações de linha por segundo, servir bilhões de consultas por dia e ainda garantir a mesma resposta quando um datacenter inteiro cai

o que fica

  1. Mesa trata a replicação geográfica como requisito de correção, não só de disponibilidade: a promessa declarada é resposta consistente e repetível mesmo com um datacenter inteiro fora do ar.
  2. A carga é assimétrica — milhões de atualizações de linha por segundo contra bilhões de consultas diárias que buscam trilhões de linhas — e é essa assimetria, não o volume de petabytes, que define o desenho.
  3. "Repetível" é uma exigência mais forte que "consistente": a mesma consulta, repetida, precisa devolver o mesmo número, e é isso que um sistema que fatura anúncios exige.
  4. O dado guardado é medição de publicidade, ou seja, dado que vira dinheiro — por isso reliability e fault tolerance aparecem no mesmo fôlego que escala, e não como preocupação secundária.
  5. O adjetivo do título é "near real-time", não "real-time": o trabalho assume que existe uma latência de ingestão e escolhe torná-la pequena e previsível em vez de fingir que ela não existe.

o problema

Um data warehouse clássico é uma fotografia. Você carrega o dado em lote, de madrugada, e durante o dia todo mundo consulta o retrato de ontem. Isso funciona quando o negócio tolera olhar para trás. Não funciona quando o dado que está sendo medido é o dinheiro que está entrando agora: quem compra publicidade quer ver a campanha rendendo enquanto ela roda, e quem vende precisa que o número mostrado ao anunciante seja o mesmo que vai para a fatura.

Some a isso a escala e o quadro fica desconfortável. O resumo do trabalho declara a ordem de grandeza: petabytes de dados, milhões de atualizações de linha por segundo na entrada, bilhões de consultas por dia que buscam trilhões de linhas na saída. Ingestão contínua e consulta pesada disputam a mesma máquina o tempo todo. E como se trata de dado de medição de publicidade da Google, a resposta não pode ser “quase certa”: os autores listam alta disponibilidade, confiabilidade, tolerância a falhas e escalabilidade como um pacote único de requisitos, não como coisas a resolver uma de cada vez.

a ideia

O movimento central é subir a régua do contrato. Em vez de tratar disponibilidade geográfica como uma apólice de seguro — replique em outro datacenter, torça para nunca precisar —, Mesa coloca a geo-replicação dentro da definição de resposta correta. O sistema é replicado entre múltiplos datacenters e promete respostas consistentes e repetíveis, com baixa latência, inclusive quando um datacenter inteiro sai do ar.

A palavra que faz o trabalho pesado é “repetível”. Consistência já é difícil; repetibilidade é mais estrita. Ela diz que a mesma consulta, feita duas vezes, tem que devolver o mesmo número — não um número mais novo porque o dado avançou entre as duas chamadas, nem um número diferente porque a segunda chamada caiu em outra réplica. Para um relatório qualquer, isso é preciosismo. Para um sistema em que o relatório é a fatura, é a diferença entre um produto e um problema jurídico.

O outro movimento é aceitar a palavra “near”. O título não promete tempo real, promete quase. É uma escolha honesta: existe atraso entre o evento e a consultabilidade do evento, e o desenho é sobre manter esse atraso curto e previsível, não sobre eliminá-lo.

o que isso custou

Este verbete foi escrito a partir do resumo, e o resumo não declara limitações — ele apresenta o sistema e anuncia que reporta desempenho e escala. Vale registrar o que essa moldura já implica.

Primeiro, é um relato de sistema em produção, não um estudo comparativo. “Reporta o desempenho e a escala que alcança” é uma frase sobre uma instalação específica, com o hardware, a rede e as garantias de datacenter de uma empresa específica. Nada aí diz que o desenho ganha de alternativas, nem que ele se sustenta fora daquele ambiente.

Segundo, o conjunto de requisitos é caro por construção. Manter cópias consistentes em datacenters distantes e ainda responder com baixa latência significa pagar em coordenação, em armazenamento duplicado e em complexidade operacional. Nada disso é de graça, e a conta cresce com os petabytes.

Terceiro, o “near” tem preço na outra ponta. Um sistema que garante repetibilidade precisa saber exatamente qual versão do dado está servindo, e essa disciplina de versionamento limita o que dá para atualizar, quando e de que jeito. Corrigir dado antigo em um sistema assim é bem mais custoso do que sobrescrever uma linha.

onde isso aparece hoje

Mesa entra numa linhagem de papers de infraestrutura da Google que já tinha resolvido pedaços vizinhos do problema: o armazenamento estruturado em escala de Bigtable, a consulta analítica interativa de Dremel, a replicação global com garantias fortes de Spanner e o banco transacional que atende o próprio negócio de anúncios em F1. O incômodo com o lote noturno também já tinha aparecido antes, em Percolator.

A pressão que Mesa nomeia — ingerir continuamente sem abrir mão da resposta analítica — virou o tema padrão da década seguinte. Ela reaparece no modelo de processamento contínuo do Dataflow, na infraestrutura de tempo real descrita pelo Uber e na tentativa de unificar warehouse e lago de dados do Lakehouse. O warehouse que só olha para ontem deixou de ser aceitável, e este é um dos papers que documentam a virada.

lido pelo resumo por pipeline de llm, revisado por antonio leandro antes de publicar ·