A OpenAI criou o Pando, um novo backend para repositórios Git, para lidar com o aumento do volume de desenvolvimento paralelo possibilitado pelo Codex. O sistema agora dá suporte a todo o desenvolvimento no monorepositório da empresa e foi introduzido sem interromper o trabalho de engenharia nem alterar a forma como os funcionários usam o Git.

A OpenAI afirma que o Pando foi projetado para dar suporte a pushes simultâneos em diferentes branches e, ao mesmo tempo, fornecer dados do repositório rapidamente a muitos leitores. Em produção, ele reduziu a latência mediana de push em quase cinco vezes e entrega quase um petabyte de dados Git por dia.

A empresa afirma que o aumento da atividade de desenvolvimento trouxe mais branches, pushes, merges, fetches e clones provenientes de ambientes de engenharia, tarefas de pesquisa e CI. Seus sistemas anteriores para o monorrepositório começaram a apresentar dificuldades por volta do fim do ano passado, com operações lentas, merges malsucedidos e confiabilidade que, em alguns momentos, caiu para menos de 90%.

O Pando mantém a compatibilidade com o protocolo e o cliente Git. Seu projeto permite que atualizações em branches sem relação entre si prossigam de forma independente, reutilizando arquivos pack armazenados em diferentes fetches, em vez de gerar um arquivo pack separado para cada cliente. Isso pode fazer com que um cliente baixe alguns objetos que já possui, mas reduz a computação necessária para fornecer os mesmos dados a muitos leitores.

A arquitetura armazena os arquivos pack recebidos em armazenamento de blobs e registra as versões dos branches em um armazenamento de metadados. Ao receber um fetch, o Pando seleciona os arquivos pack armazenados de que o cliente precisa, enquanto um serviço separado chamado Express os fornece por meio de caches regionais. A OpenAI afirma que essa abordagem evita exigir que os servidores descompactem e recompactem os dados em repositórios locais a cada operação.

O Pando usa consistência causal, em vez de oferecer uma visão única, de um mesmo instante, de todos os branches do repositório. As atualizações de um branch individual continuam serializáveis, mas os clientes que leem vários branches podem vê-los em momentos diferentes. A OpenAI afirma que essa escolha permite que atualizações de branches sem relação entre si evitem disputar um ponto de coordenação em todo o repositório.

A empresa afirma que simulações e testes em seu monorrepositório mostraram que o Pando consegue lidar com muitos milhares de clientes simultâneos sem degradação de desempenho sob carga. A OpenAI também planeja continuar contribuindo com melhorias para o Git e diz que manter a compatibilidade permite que engenheiros e agentes adotem o sistema por meio dos fluxos de trabalho existentes.

Fontes: OpenAI News.