Enhancing OLAP Resilience at LinkedIn

Este artigo descreve um conjunto abrangente de mecanismos de resiliência desenvolvidos para o Apache Pinot no LinkedIn, incluindo isolamento de carga de consultas, reequilíbrio sem impacto e seleção adaptativa de servidores, que garantem baixa latência e alta disponibilidade em sistemas OLAP de grande escala sob falhas e picos de demanda.

Praveen Chaganlal, Jia Guo, Vivek Vaidyanathan, Dino Occhialini, Sonam Mandal, Subbu Subramaniam, Siddharth Teotia, Tianqi Li, Xiaxuan Gao, Florence Zhang

Publicado Tue, 10 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que o LinkedIn é uma cidade gigante e digital, onde milhões de pessoas conversam, procuram emprego e compartilham notícias todos os segundos. Para que isso funcione, eles precisam de uma biblioteca de dados imensa e super rápida, capaz de responder a perguntas como "Quem viu meu perfil?" em menos de um segundo.

Essa biblioteca é chamada de Pinot (um sistema OLAP). Mas, como em qualquer cidade grande, problemas acontecem: às vezes um servidor fica doente, o tráfego explode, ou eles precisam fazer obras na estrada (atualizações de software). Se a biblioteca não for resiliente, tudo para e os usuários ficam frustrados.

Este artigo conta como a equipe do LinkedIn construiu quatro "superpoderes" para proteger essa biblioteca, garantindo que ela nunca pare, mesmo quando as coisas dão errado. Vamos usar analogias simples para entender cada um:

1. O Guardião de Orçamento (QWI - Query Workload Isolation)

O Problema: Imagine que a biblioteca é um restaurante comunitário onde todos compartilham as mesmas panelas e fogões. De repente, um cliente (um "vizinho barulhento") pede uma sopa que leva 2 horas para cozinhar e ocupa todo o fogão. Os outros clientes, que só queriam um café rápido, ficam esperando horas e o serviço para.

A Solução: O Guardião de Orçamento é como um gerente que dá a cada grupo de clientes um "orçamento" de tempo de fogão e espaço na mesa.

  • Se um grupo de clientes começa a pedir coisas que gastam demais do orçamento deles, o gerente corta o serviço na hora, antes que eles estraguem o fogão para os outros.
  • Isso é feito de forma tão rápida e inteligente que o restaurante continua funcionando perfeitamente para quem está dentro do orçamento, sem quase nenhum custo extra de energia.

2. O Arquiteto à Prova de Desastres (Zone Aware Placement)

O Problema: Imagine que a biblioteca tem várias cópias dos mesmos livros espalhadas por diferentes prédios. Se todos os prédios estiverem em uma única rua e houver um incêndio nessa rua, todos os livros somem. Ou, se eles precisarem reformar uma rua inteira, a biblioteca fica vazia.

A Solução: O Arquiteto garante que as cópias dos livros estejam espalhadas por bairros diferentes (zonas de manutenção).

  • Ele usa um algoritmo inteligente para garantir que, se um bairro inteiro for desligado para reforma ou se um prédio cair, a biblioteca ainda tenha cópias suficientes em outros bairros para continuar funcionando.
  • Além disso, quando eles precisam mudar os livros de lugar (rebalanceamento), eles fazem isso de forma "sem impacto": tiram os livros da prateleira apenas quando ninguém está lendo, garantindo que o serviço nunca pare durante a mudança.

3. O GPS Inteligente de Tráfego (Adaptive Server Selection)

O Problema: Imagine que você é um entregador (o "Broker") que precisa pegar pacotes em vários armazéns (os "Servidores") e trazer de volta. O sistema antigo era como um GPS que mandava todos os entregadores para o mesmo armazém, apenas porque era o "próximo na fila". Se aquele armazém estivesse com o elevador quebrado ou cheio de gente, todos os entregadores ficariam presos lá, atrasando tudo.

A Solução: O GPS Inteligente olha em tempo real para cada armazém.

  • Ele vê qual armazém está lento, qual está cheio e qual está rápido.
  • Se um armazém começa a demorar, o GPS imediatamente manda os próximos entregadores para um armazém vizinho que está livre, sem esperar o primeiro terminar.
  • Isso é feito de forma tão suave que evita que todos os entregadores corram para o mesmo lugar de uma vez só (evitando o efeito manada), mantendo o tráfego fluido.

4. O Equilíbrio Perfeito (Impact-Free Rebalancing)

O Problema: Às vezes, a biblioteca precisa crescer (adicionar mais prateleiras) ou encolher. Fazer isso enquanto as pessoas estão lendo pode causar caos, como tirar livros das mãos dos leitores para movê-los.

A Solução: Eles criaram um método de "troca suave".

  • Antes de mover um livro pesado, eles garantem que ninguém esteja lendo aquele livro naquele momento.
  • Eles movem os livros em pequenos passos, garantindo que sempre haja pelo menos uma cópia disponível em outro lugar antes de tirar a cópia antiga. É como trocar de pneu em um carro que está andando, mas feito de forma que o carro nem sinta que o pneu foi trocado.

Resumo Final

Esses quatro mecanismos funcionam juntos como um sistema imunológico para a infraestrutura de dados do LinkedIn:

  1. Isolam os problemas para que um cliente ruim não afete os bons.
  2. Espalham os dados para que um desastre local não pare tudo.
  3. Desviam o tráfego de servidores lentos automaticamente.
  4. Movem os dados sem interromper o serviço.

O resultado? O LinkedIn consegue lidar com petabytes de dados (bilhões de gigabytes) e milhões de perguntas por segundo, mantendo a velocidade e a estabilidade, mesmo quando a infraestrutura sofre falhas ou mudanças constantes. É a engenharia por trás de uma experiência de usuário que parece mágica, mas é, na verdade, muito resiliente.