Hermes Vector

Português ·

OpenAI desenvolve Pando para escalar backend Git para desenvolvimento em grande escala

OpenAI apresentou o Pando, um novo backend compatível com Git projetado para lidar com escritas de alta concorrência e maximizar a taxa de transferência de leitura para seu monorepo.

Por Hermes-Vector AI Desk · Read in English

Ilustração: OpenAI desenvolve Pando para escalar backend Git para desenvolvimento em grande escala

Em resumo

  • OpenAI desenvolveu o Pando, um backend compatível com Git projetado para escritas de alta concorrência e alta taxa de transferência de leitura.
  • O Pando utiliza um modelo de consistência causal para permitir atualizações paralelas em branches não relacionadas.
  • O sistema reduziu a latência de push mediana em quase 5x e entrega quase um petabyte de dados Git diariamente.
  • O Pando evita gerar packfiles únicos para cada cliente reutilizando packfiles existentes para escalar leituras.

OpenAI desenvolveu o Pando, um novo backend para repositórios Git projetado para gerenciar a crescente escala e demandas do monorepo da empresa. De acordo com a OpenAI, o sistema foi construído para suportar o nível de trabalho simultâneo habilitado pelo Codex sem interromper os fluxos de trabalho de engenharia existentes ou alterar a maneira como a equipe usa o Git.

Escalabilidade e Performance

A OpenAI afirma que o Pando foi projetado para alcançar dois objetivos principais: fornecer escritas horizontalmente escaláveis otimizadas para pushes concorrentes a muitas branches e maximizar a taxa de transferência de leitura para permitir que os clientes baixem dados em velocidades que saturam a largura de banda de rede disponível.

Em produção, a OpenAI relata que o Pando alcançou o seguinte:

  • Reduziu a latência de push mediana em quase 5x.
  • Entrega quase um petabyte de dados Git por dia.

Arquitetura Técnica

Para alcançar esses objetivos, o Pando utiliza um modelo de consistência relaxado conhecido como consistência causal. Essa abordagem permite que atualizações em branches não relacionadas prossigam em paralelo coordenando atualizações para cada branch independentemente. De acordo com a OpenAI, isso significa que um leitor olhando várias branches pode vê-las em pontos diferentes no tempo.

Ao contrário dos padrões tradicionais de serviço Git, o Pando emprega os seguintes métodos:

  • Otimização de Escrita: O Pando valida packfiles recebidos enquanto os streama para o armazenamento de blobs sem descompactá-los em um repositório local. Ele usa uma transação multi-chave para registrar versões de refs em um armazenamento de metadados, o que a OpenAI diz requer leituras e escritas de metadados $O(1)$.
  • Otimização de Leitura: O Pando reutiliza packfiles entre fetches em vez de gerar packfiles individuais para cada cliente. Isso permite que o servidor sirva os mesmos bytes a muitos clientes com mínima computação.

Comparação com Métodos Existentes

A OpenAI avaliou duas abordagens convencionais para escalar Git: três fases de commit (3PC) e designs baseados em log de escrita antecipada (WAL).

De acordo com as simulações e testes da OpenAI:

  • Três fases de commit (3PC): Este método requer múltiplas rodadas de comunicação entre um coordenador e réplicas, o que a OpenAI diz levar a uma latência de escrita significativamente maior sob carga conforme os discos saturam.
  • Log de escrita antecipada (WAL): Este método usa um manifesto compartilhado no armazenamento de blobs para ordenar atualizações. A OpenAI relata que esses sistemas mostram latência de leitura significativamente maior porque os servidores têm dificuldade em acompanhar a leitura do journal.

A OpenAI afirma que o Pando suporta muitos milhares de clientes fazendo pushes simultaneamente sem impactar o desempenho sob carga.


Fontes (em inglês)

Tradução feita com IA do artigo original em inglês, revisada automaticamente para dizer o mesmo que o original. As fontes foram verificadas em inglês.

Advertisement

How do you feel about this story?

Comments 0

No comments yet. Start the discussion.

OpenAI desenvolve Pando para escalar backend Git para desenvolvimento em grande escala | Hermes Vector