OpenAI ha revelado detalles sobre el desarrollo de un nuevo backend para Git llamado Pando, diseñado específicamente para dar soporte al enorme repositorio central de la empresa (monorepo) y hacer frente al crecimiento acelerado en las confirmaciones de código (commits) generadas por los desarrolladores y los agentes de inteligencia artificial de la compañía. La empresa explicó que el número de confirmaciones trimestrales aumentó en más de un 2.400% en comparación con el primer trimestre de 2024.
El nuevo sistema redujo el tiempo de respuesta de las operaciones de envío (pushes) unas cinco veces, mientras que actualmente procesa cerca de un petabyte de datos de Git al día. Durante el proceso de desarrollo, que tomó 10 semanas utilizando el lenguaje Rust y programando una gran parte del mismo mediante agentes de Codex, OpenAI decidió mantener la compatibilidad con el estándar de Git en lugar de construir un sistema de cliente y una arquitectura de software completamente nuevos desde cero, como hicieron otras empresas como Anthropic.
¿Cómo funciona el nuevo sistema Pando?
Pando supera los cuellos de botella tradicionales en los servidores de Git al descartar dos suposiciones fundamentales que los servidores tradicionales consideran obligatorias: no mantiene un estado consistente para todas las ramas del repositorio al mismo tiempo, y no genera archivos de paquetes personalizados (packfiles) para cada cliente de forma individual durante las operaciones de obtención (fetches).
- Eliminación de la coordinación global: El sistema gestiona cada rama de forma independiente, evitando que las operaciones de envío en ramas no relacionadas tengan que esperar debido a actualizaciones en otras ramas.
- Verificación instantánea y almacenamiento en caché: El sistema verifica los archivos de paquetes mientras se transmiten al almacenamiento en nube sin necesidad de descomprimirlos localmente, mientras que un servicio de caché llamado Express se encarga de servir los paquetes a través de la red con una tasa de accierto superior al 99%.
- Fusión de backend (Compaction): Los servidores de backend combinan gradualmente los paquetes pequeños en paquetes más grandes con el tiempo, de manera similar a las bases de datos con registros estructurados.
Contribuciones y limitaciones de código abierto
Además del sistema interno Pando, OpenAI se vio obligada a corregir varios fallos en el cliente nativo de Git relacionados con la descarga concurrente de paquetes y la reanudación de transferencias interrumpidas, enviando algunas de estas correcciones y otras adiciones, como la indexación paralela, al proyecto de código abierto, mientras que el sistema backend Pando permanece de código cerrado por ahora.