Проблема классических Git-серверов и решение Aspen
Классические Git-серверы (например, GitLab или GitHub) часто становятся узким местом при работе с AI-агентами, которые делают пуши каждые несколько минут. Традиционные системы очереди обрабатывают все пуши к одному репозиторию последовательно, а каждый fetch требует сборки новой упаковки (pack). Это приводит к линейному росту нагрузки сервера в зависимости от числа клиентов.
Aspen решает эту проблему, отказываясь от двух ключевых принципов классических Git-серверов:
- Compare-and-swap на уровне ветки: Каждая ветка хранится как цепочка версий в одной строке PostgreSQL. Пуши в разные ветки не блокируют друг друга. Если два пуша конкурируют за одну ветку, один побеждает, а другой получает стандартную ошибку «fetch first».
- Хранение готовых pack-файлов: Aspen не распаковывает пуши. Он проверяет pack, дополняет недостающие базы и сохраняет его в неизменном виде в объектное хранилище (S3). При fetch клиенты получают уже готовые пакеты, что исключает повторную компрессию.
Производительность и метрики
Разработчики провели тестирование на сервере с 8 ядрами, S3 Standard и PostgreSQL (4 ядра). В качестве тестового репозитория использовался клон git.git (~4 500 файлов, 75 000 коммитов). Результаты показали высокую пропускную способность при параллельных записях:
| Метрика | Значение | Примечание |
|---|---|---|
| Пропускная способность (push) | 567 push/сек | Среднее за 5 минут, разные ветки |
| Медианная задержка (push) | 208 мс | От получения до подтверждения |
| Задержка p99 (push) | 314 мс | 99-й перцентиль |
| Пропускная способность (main) | ~4 push/сек | Конкуренция за одну ветку |
| Объем данных (fetch) | 1.029x | Отношение к stock git upload-pack |
Для сравнения, коммерческая платформа Cursor Origin показывает около 120 push/сек на S3 Standard и более 300 push/сек на S3 Express One Zone. Aspen позиционируется как независимая open-source реализация дизайна Pando от OpenAI.
Архитектура и развертывание
Aspen написан на Rust и состоит из одного бинарного файла. Архитектура разделяет хранение метаданных и данных:
- Ветки (Branches): Хранятся в PostgreSQL или SQLite.
- Pack-файлы: Хранятся в S3-совместимом объектном хранилище.
Проект поддерживает режим зеркалирования (mirror mode) для GitHub или GitLab, что позволяет тестировать Aspen без миграции инфраструктуры. Развертывание возможно через Docker Compose (для локальной разработки с SQLite и MinIO), Helm-чарты или Terraform (AWS, GCP, Azure, Hetzner).
Статус проекта и ограничения
На данный момент Aspen находится в стадии pre-alpha. У проекта нет релизов, веб-интерфейса и официального API. Также отмечается, что система не полностью соответствует 24-часовому порогу долговечности (durability gate), заявленному в оригинальной спецификации Pando. Тем не менее, проект уже позволяет AI-агентам работать с Git через стандартные протоколы HTTPS и SSH без изменения клиентского кода.
Источник: MarkTechPost ↗
