OpenAI представляє Pando: Git-бекенд, що скорочує медіанну затримку push приблизно на 80%
OpenAI представила Pando — новий бекенд Git, який тепер обслуговує всю розробку у її монорепозиторії. Бекенд OpenAI Pando для Git зберігає стандартний клієнт і протокол Git. Інженери й агенти Codex і надалі виконують git push і git fetch, як і раніше. Змінився лише сервер. Команда OpenAI повідомляє, що медіанна затримка push зменшилася майже на 80%. Тепер Pando передає майже петабайт даних Git на день.
Коротко
- Масштаб: Майже 1 ПБ даних Git на день; пікове значення — понад 57 ТБ за 1 годину.
- Працює на: Стандартному обладнанні; звичайні хмарні віртуальні машини повністю завантажують канали зі швидкістю 10 Гбіт/с під час клонування та fetch.
- Продуктивність: Тисячі одночасних відправників без погіршення характеристик, згідно з власним тестуванням OpenAI.
- Найкращий результат: Медіанна затримка push зменшилася майже на 80% (приблизно у 5 разів).
- Найгірший результат: Не є відкритим кодом; повторні відправлення гілок повторно передають історію, що не належить до trunk (p99-пакет має розмір менше 3 МіБ).
Що таке OpenAI Pando?
Pando — це сумісний із Git серверний бекенд від OpenAI, який масштабує одночасні push і fetch для монорепозиторію. Його написано мовою Rust і доведено до промислової експлуатації за 10 тижнів. Один інженер спроєктував ядро, а команди агентів Codex реалізували його. Він обслуговує робочий трафік із квітня 2026 року.
Навіщо OpenAI знадобився новий бекенд Git?
Codex збільшив обсяг паралельної роботи. Графік комітів OpenAI показує, що кількість комітів, доданих до master, у третьому кварталі 2026 року зросла на 1 378% порівняно з першим кварталом 2024 року. Прогноз на четвертий квартал 2026 року становить +2 442%. Тепер кожен push запускає багато операцій CI fetch. Наприкінці 2025 року fetch і push сповільнилися, злиття завершувалися помилками, а надійність часом падала нижче 90%. OpenAI дійшла висновку, що вузьким місцем був спосіб обслуговування Git, а не сам Git.
Як працює Pando?
Pando відкидає 2 припущення, які більшість серверів Git вважає вимогами:
1. Узгодженість на рівні всього репозиторію: Звичайні сервери впорядковують кожне оновлення ref у межах усього репозиторію, тому непов’язані push очікують. Pando натомість використовує причинно-наслідкову узгодженість. Кожна гілка серіалізується окремо, а конфлікти виникають лише тоді, коли клієнти надсилають зміни до того самого ref. Компроміс полягає в тому, що читач, який переглядає кілька гілок, може бачити їх у різних часових точках.
2. Унікальний packfile для кожного клієнта: Стандартні сервери створюють новий pack для кожного fetch. Pando зберігає кожен надісланий pack як незмінний blob. «Версія ref» потрапляє до масштабованого сховища метаданих. Для push потрібні O(1) операцій читання та запису метаданих. Для fetch потрібно O(log Δ) операцій читання, де Δ — розрив між версіями ref, який потрібно закрити.
Як push залишаються малими та придатними для повторного використання?
За наявності мільйонів гілок повне оголошення ref може перевищувати 100 МіБ. Pando оголошує лише гілку trunk як основу для нових push до гілок функцій. Тоді будь-який читач, який має історію trunk, може отримати цю гілку з 1 збереженого pack. У монорепозиторії OpenAI медіанний pack мав розмір менше 20 КіБ.
Як fetch обслуговуються на швидкості лінії?
Pando повертає посилання на завантаження через packfile-uri — наявну функцію протоколу Git. Він надсилає порожній вбудований pack. Сервіс доставки Express кешує pack регіонально, використовуючи узгоджене хешування, із показниками влучання понад 99%.
Що замінює збирання сміття?
Кожен push створює pack «L0». Фонові робочі процеси об’єднують pack у геометрично більші покриття, подібно до компактифікації LSM-дерева. Наразі монорепозиторій використовує покриття до L4. Покриття діють як список пропусків, тому вибір pack виконується за логарифмічний час.
Які показники отримано у промисловій експлуатації?
Усі наведені нижче показники повідомлені самою OpenAI.
- Медіанну затримку push зменшено майже на 80%.
- Майже 1 ПБ даних Git на день, використовуючи лише кілька ядер CPU.
- Понад 57 ТБ pack передано за одну годину, причому понад 99% — із локального дискового кешу.
- Клонування та fetch повністю завантажують канали зі швидкістю 10 Гбіт/с на стандартних хмарних віртуальних машинах.
OpenAI також провела симуляцію з 1 000 авторів запису проти схем трифазового коміту та журналу попереднього запису. Компанія називає ці моделі навчальними, а не бенчмарками.
Як Pando порівнюється з іншими підходами?
| OpenAI Pando | GitHub Spokes | Anthropic Scion | |
|---|---|---|---|
| Сумісність із клієнтом Git | Так | Так | Ні, власний клієнт scn |
| Координація запису | Причинно-наслідкова узгодженість для кожної гілки | Трифазовий коміт із кворумом | Коміти на сервері; refs через compare-and-swap |
| Репліки за замовчуванням | Не розкрито (сховища blob і метаданих) | 5 повних копій | Немає повністю матеріалізованої копії репозиторію |
| Шлях читання | Повторно використовувані pack через packfile-uri, кеш Express | Найближча синхронізована репліка | Багаторівневі кеші дерев і blob |
| Показник влучання в кеш | Понад 99% | Не розкрито | Понад 99% для кожного рівня |
| Головний результат | Медіанна затримка push зменшилася приблизно на 80% | Обслуговує приблизно 1 мільярд репозиторіїв | У 200 разів менше споживання CPU/пам’яті |
| Тривалість розробки | 10 тижнів, Rust | Не розкрито | 7 людей, 5 місяців |
| Доступність для інших | Ні | Так, забезпечує роботу GitHub | Ні |
Як Pando створили та розгорнули?
OpenAI написала набір тестів на відповідність Git для агентів і додала детерміноване тестування симуляціями. Агенти, що використовували GPT-6 Astra, писали специфікації Lean і TLA+, щоб знаходити помилки.
Спочатку Pando працював як проксі для читання та запису, тому трафік перемістили без простоїв. OpenAI постачає власну збірку Git на комп’ютери розробників і в настільний застосунок ChatGPT.
Що повертається до основної гілки Git?
OpenAI виправила обробку клієнтом одночасних, перерваних і відновлених завантажень pack та додала трасування packfile-uri. Її збірка додає паралельну індексацію pack і «явні haves». Деякі виправлення вже інтегровано в основну гілку. Решта міститься у публічному трекері патчів.
Які обмеження?
- Pando не є відкритим кодом; команда OpenAI заявляє, що вивчає способи поділитися цією технологією.
- Читання між гілками не має єдиного знімка стану в певний момент часу.
- Повторні або послідовні push гілок повторно надсилають усе, що не належить до trunk. Розмір p99-pack був меншим за 3 МіБ.
- Усі показники продуктивності повідомлені самою компанією, незалежного бенчмарку поки немає.
Основні висновки
- Pando зберігає Git, але перебудовує сервер для паралельного трафіку агентів.
- Причинно-наслідкова узгодженість для кожної гілки усуває конкуренцію запису на рівні всього репозиторію.
- Збережені pack, придатні для повторного використання, замінюють створення pack для кожного клієнта.
- Медіанна затримка push зменшилася майже на 80%; щоденний трафік наближається до 1 ПБ.
- Виправлення клієнта передаються до основної гілки; бекенд поки залишається внутрішнім.
Ознайомтеся з повною інженерною публікацією OpenAI, репозиторієм Git OpenAI і трекером патчів. Також підписуйтеся на нас у Twitter і не забудьте приєднатися до нашого субреддіту ML із понад 150 тисячами учасників та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? тепер ви також можете приєднатися до нас у Telegram.
Потрібно співпрацювати з нами для просування вашого репозиторію GitHub, сторінки Hugging Face, релізу продукту, вебінару тощо? Зв’яжіться з нами
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.