Escalando leituras: o que Big Techs esperam que você saiba (System Design #1)

Escalando leituras: o que Big Techs esperam que você saiba (System Design #1)

Como Escalar Leituras de Banco de Dados em Entrevistas

Introdução ao Problema

  • O vídeo começa com um cenário de entrevista onde o entrevistador apresenta um problema de desempenho em um banco de dados que recebe 50.000 leituras por segundo.
  • Pedro Camaforte, desenvolvedor sênior, introduz a série sobre System Design e promete explicar conceitos como índices, connection pooling, read replicas e caching.

Identificação do Gargalo

  • A motivação para a série é baseada em um artigo de Lucas Faria sobre os principais conceitos abordados em entrevistas para empresas Tier S.
  • Exemplos são dados sobre aplicações que têm muitas leituras comparadas a escritas, sugerindo que isso pode causar gargalos no banco de dados.

Soluções Iniciais

  • Antes de considerar soluções complexas, é crucial verificar se as tabelas têm índices corretos e se está sendo utilizado connection pooling.
  • Uma tabela sem índice pode ter latências altas; otimizar índices pode reduzir o tempo de resposta drasticamente.

Connection Pooling

  • Connection pooling ajuda a evitar delays na abertura de novas conexões com o banco, melhorando a performance sob alta carga.
  • Combinando índices e connection pooling, é possível resolver até 80% dos problemas iniciais relacionados à leitura.

Read Replicas

  • Quando as soluções iniciais não são suficientes, entra-se no conceito de read replicas para distribuir a carga entre múltiplas fontes.
  • É importante discutir os trade-offs das read replicas, como o delay na replicação que pode ser crítico dependendo da aplicação (ex: finanças).

Caching como Solução Avançada

  • O caching é apresentado como uma solução eficaz para hotspots específicos que recebem cargas excessivas.
  • Ele permite responder rapidamente às requisições sem sobrecarregar o banco principal.

Estratégias para Invalidação do Cache

  • A invalidação do cache deve ser considerada quando há mudanças nos dados; três estratégias incluem expiração automática, deleção ou atualização do cache junto com o banco.

CDN e Arquitetura Global

  • A CDN (Content Delivery Network) é discutida como uma solução para melhorar a entrega de arquivos estáticos globalmente.

Erros Comuns em Entrevistas

  • Um erro comum que leva à eliminação imediata dos candidatos é não entender completamente o problema antes de propor soluções arquiteturais.

Perguntas Cruciais Durante Entrevistas

  • Programadores seniores devem fazer perguntas relevantes sobre a aplicação antes de sugerir soluções técnicas específicas.

Exemplo Prático: Encurtador de URL

  • Um exemplo prático ilustra como aplicar os conceitos discutidos ao lidar com um encurtador de URL recebendo 60.000 requisições por segundo.
Video description

Como escalar leituras em um banco de dados — o tópico de System Design que mais cai em entrevistas de big tech. Neste vídeo (parte 1 de 7): índices e connection pooling, read replicas, cache com Redis, CDN, e os erros que eliminam candidatos. Capítulos: 0:00 - Introdução e problema 0:21 - Conceitos abordados 0:35 - Quem sou eu e objetivo do vídeo 0:53 - Motivação para a criação da série 1:13 - Como identificar um sistema pesado em leituras 1:49 - Esclarecimento 2:17 - Primeiro conceito: Índices + Connection Pooling 4:20 - Segundo conceito: Read Replicas 5:22 - Tradeoff e desafios de se utilizar read replicas 6:25 - Terceiro conceito: Cache 8:05 - Tradeoff e desafios de se utilizar cache 10:10 - Quarto conceito: CDN 11:10 - O erro mais comum que elimina 90% dos candidatos das entrevistas 11:46 - O que separa o programador pleno do senior 12:15 - Como um senior responderia uma pergunta de arquitetura 14:24 - A regra de ouro para responder qualquer pergunta sobre escalabilidade de leituras 15:47 - Exemplo prático sendo aplicado 18:21 - E quando o problema não são leituras, mas escritas no banco? #systemdesign #programacao #softwareengineer #engenheirodesoftware #sistemasdistribuidos #entrevistaembigtech #salarioemdolar