Hermes Vector

Français ·

OpenAI présente Pando pour mettre à l'échelle le backend Git pour les monorepos

OpenAI a développé Pando, un nouveau backend Git conçu pour gérer les demandes de développement accrues et le travail concurrent des ingénieurs et des agents.

Par Hermes-Vector AI Desk · Read in English

Illustration: OpenAI présente Pando pour mettre à l'échelle le backend Git pour les monorepos

En bref

  • OpenAI a développé Pando pour gérer les demandes accrues des monorepos et le travail concurrent des ingénieurs et des agents.
  • Pando utilise un modèle de cohérence causale pour permettre des mises à jour indépendantes et parallèles sur différentes branches.
  • Le système réutilise les packfiles pour maximiser le débit de lecture et réduire le calcul du serveur.
  • En production, Pando a réduit la latence médiane des pushes de près de 5x et traite près d'un pétaoctet de données par jour.

OpenAI a annoncé le développement de Pando, un nouveau backend pour les dépôts Git conçu pour évoluer avec la taille croissante et les demandes accrues du monorepo de l'entreprise. Selon OpenAI, le système a été construit pour répondre aux besoins du travail concurrent rendu possible par Codex, qui a changé l'échelle et le rythme du développement au sein de l'entreprise.

Moteurs de développement

OpenAI signale que la taille et les demandes sur son monorepo ont augmenté à un rythme « stupéfiant » au cours de la dernière année. L'entreprise indique qu'à partir de la fin de l'année dernière, les systèmes soutenant le monorepo peinaient à suivre, entraînant des fetches et des pushes lents, ainsi que des fusions échouées, avec une fiabilité tombant parfois en dessous de 90 %.

OpenAI note que Codex a permis aux ingénieurs d'effectuer plus de travail en parallèle, conduisant à plus de branches, de pushes, de fusions et de fetches provenant de tâches de recherche, d'environnements de développement et de CI. Ces demandes s'accumulent car un seul ingénieur peut avoir plusieurs modifications prêtes pour la CI en même temps, et chaque push peut déclencher plusieurs tâches effectuant le fetch du même commit.

Architecture technique de Pando

Pour répondre à ces défis d'échelle, OpenAI a conçu Pando pour atteindre deux objectifs principaux : des écritures horizontalement évolutives optimisées pour les pushes concurrents sur de nombreuses branches, et un débit de lecture maximal permettant aux clients de télécharger les données assez rapidement pour saturer la bande passante réseau disponible.

Contrairement aux approches conventionnelles, Pando utilise un modèle de cohérence assoupi connu sous le nom de cohérence causale (CC). Selon OpenAI, cela permet au système d'échelonner les écritures en coordonnant les mises à jour de chaque branche indépendamment. Bien que cela fournisse une sémantique de sérialisabilité pour les mises à jour des références individuelles, un client lisant plusieurs branches ne peut pas supposer que ces lectures décrivent un point unique dans le temps pour l'ensemble du dépôt.

Les fonctionnalités techniques clés de Pando incluent :

  • Optimisation des écritures : Pando valide les packfiles entrants tout en les streamant vers le stockage blob sans les décompresser dans un dépôt local. Il utilise une transaction multi-clés pour enregistrer une version de référence dans un magasin de métadonnées et mettre à jour atomiquement le pointeur de référence.
  • Optimisation des lectures : Pando réutilise les packfiles entre les fetches plutôt que de générer des packfiles individuels pour chaque client. Cela permet au serveur de servir les mêmes octets à de nombreux clients avec peu de calcul.
  • Compatibilité : Le système conserve la compatibilité avec le protocole Git et le client, permettant aux ingénieurs et aux agents d'adopter Pando dans leurs flux de travail existants.

Performance et comparaison

OpenAI a évalué Pando contre deux autres approches courantes pour mettre à l'échelle Git : une conception à trois phases de commit (3PC) et une conception de journal avant écriture (WAL). Dans les simulations, OpenAI a constaté que la conception 3PC présentait une latence d'écriture nettement plus élevée sous charge lorsque les disques étaient saturés, tandis que les systèmes WAL présentaient une latence de lecture nettement plus élevée lorsque les serveurs peinaient à suivre la lecture du journal.

En production, OpenAI indique que Pando a réduit la latence médiane des pushes de près de 5x et livre désormais près d'un pétaoctet de données Git par jour.

Pourquoi cela importe

À mesure que le développement évolue pour inclure plus d'agents et de travail parallèle, les modèles de services Git traditionnels font face à des goulots d'étranglement. La démarche d'OpenAI vers un backend personnalisé vise à soutenir le « travail à l'échelle des agents » tout en contribuant des améliorations à la communauté Git en amont.


Sources (en anglais)

Traduction réalisée par IA de l’article original en anglais, vérifiée automatiquement pour dire la même chose que l’original. Les sources ont été vérifiées en anglais.

Advertisement

How do you feel about this story?

Comments 0

No comments yet. Start the discussion.

OpenAI présente Pando pour mettre à l'échelle le backend Git pour les monorepos | Hermes Vector