Hermes Vector

AI & SI

OpenAI introduces Pando to scale Git backend for monorepo development

OpenAI has developed Pando, a new Git backend designed to handle high volumes of concurrent writes and maximize read throughput for its monorepo.

By Hermes-Vector AI Desk

Checked against 1 sourceOpenAI
Illustration for: OpenAI introduces Pando to scale Git backend for monorepo development

In brief

  • OpenAI developed Pando, a new Git backend, to handle increased monorepo demands.
  • Pando uses causal consistency to allow parallel updates to unrelated branches.
  • The system reuses packfiles to maximize read throughput and reduce server computation.
  • OpenAI reports Pando has reduced median push latency by nearly 5x in production.

OpenAI introduces Pando to scale Git backend for monorepo development

OpenAI has announced the development of Pando, a new backend for Git repositories designed to scale with the increasing demands of the company's monorepo. According to OpenAI, the system was built to support the level of concurrent work enabled by Codex without interrupting existing engineering workflows or changing how the team uses Git.

Scaling Challenges

OpenAI reports that starting around the end of last year, the systems supporting its monorepo struggled to keep up with development demands. The company noted it experienced "slow fetches and pushes along with failed merges," with reliability occasionally falling below 90%.

OpenAI attributes these challenges to the increased scale and pace of development driven by Codex, which enables engineers to work in parallel. This increased activity results in more branches, pushes, merges, and fetches from various environments, including research jobs and CI.

Technical Architecture

To address these issues, Pando was designed with two primary goals: achieving horizontally scalable writes optimized for concurrent pushes to many branches, and maximizing read throughput to saturate available network bandwidth.

Unlike conventional approaches, Pando utilizes a relaxed consistency model known as causal consistency. This allows the system to scale writes by coordinating updates to each branch independently. According to OpenAI, this means "updates to unrelated branches can proceed in parallel," though a reader looking at several branches may see them at different points in time.

To scale reads, Pando reuses packfiles—Git's format for compressing multiple objects—across fetches. This allows the server to serve the same bytes to many clients with minimal computation, rather than generating individual packfiles for every client.

Performance and Implementation

OpenAI states that Pando is compatible with the Git protocol and client, allowing both engineers and agents to adopt the system into existing workflows. In production, OpenAI reports that Pando has "cut median push latency by nearly 5x" and currently delivers "nearly a petabyte of Git data per day."

When a client pushes to a branch, Pando streams the incoming packfile to blob storage and uses a multi-key transaction to record a ref version in a metadata store. During a fetch, Pando selects the stored packs required by the reader and provides them via a service called Express.


Sources

This article was drafted with AI assistance and checked against the sources above. Company claims are reported as claims. Cover image is AI-generated.

Questions readers ask

What is Pando and why was it developed?
OpenAI introduced Pando as a new backend for Git repositories designed to scale with the increasing demands of the company's monorepo. The system was built to support the level of concurrent work enabled by Codex without interrupting existing engineering workflows or changing how the team uses Git.
What scaling challenges did OpenAI face before implementing Pando?
Starting around the end of last year, the systems supporting OpenAI's monorepo struggled with slow fetches and pushes along with failed merges. Reliability occasionally fell below 90% due to increased activity from research jobs, CI, and parallel work enabled by Codex.
How does Pando's technical architecture handle consistency and reads?
Pando utilizes a relaxed consistency model known as causal consistency, which allows updates to unrelated branches to proceed in parallel. To scale reads, it reuses packfiles across fetches so the server can serve the same bytes to many clients with minimal computation.
How does Pando manage data during a push and fetch operation?
When a client pushes, Pando streams the incoming packfile to blob storage and uses a multi-key transaction to record a ref version in a metadata store. During a fetch, Pando selects the stored packs required by the reader and provides them via a service called Express.

The day's checked news, by email

One short email a day with the top stories. Free, and you can unsubscribe in one click.

Or follow for the latest news:

Advertisement

How do you feel about this story?

Comments 0

No comments yet. Start the discussion.