Перейти к содержанию
Promtime

Оформление

Оформление

Anthropic

Anthropic ушла с git, чтобы выдержать 30 000 слияний в день

6 мин чтения

Если бы каждая из примерно 25 миллионов ежедневных CI-выгрузок кода в Anthropic наивно тянула репозиторий из git, набегало бы больше 600 петабайт трафика в сутки. Поэтому, как рассказывает инженерный блог Anthropic, компания написала собственную систему контроля версий Scion и за пять месяцев перевела на неё весь монорепозиторий.

Коротко

  • Команда из семи человек построила в Anthropic систему контроля версий Scion и инструмент ревью Antique и полностью ушла с git, пока объём ежедневных слияний вырос в 10 раз.
  • Клиенты Scion всегда онлайн: историю, blame и слияния считает сервер, файлы отдают кэши с долей попаданий выше 99% на каждом уровне, а инфраструктура в 200 раз скромнее зеркал git по CPU и памяти.
  • Отдавать Scion наружу Anthropic не берётся: система слишком далеко ушла от git, требует собственных ревью, поиска кода и CI и имеет смысл только для огромных монорепозиториев.

Если вы не следили: git устроен децентрализованно, каждый клон хранит полную историю и умеет считать diff и blame офлайн. Anthropic перепробовала все стандартные обходные пути для больших монорепозиториев, от shallow clone и sparse checkout до promisor remotes и снапшотов-«семян» в blob-хранилище, а на пике держала несколько сотен внутренних зеркал git. С ростом числа слияний семена всё дальше отставали от main, а зеркала становилось всё труднее обслуживать.

С мая по сентябрь 2026 года число слияний в день выросло с 2 500 до более чем 30 000

В Anthropic пишут, что написание кода перестало быть узким местом: Claude сам гоняет исследовательские циклы, оптимизирует сложные программы и строит сервисы с нуля. Упираться всё стало в инфраструктуру, рассчитанную на людей: контроль версий, сборки и CI. В мае 2026 года в монорепозиторий вливали в среднем около 2 500 изменений в день, в сентябре уже больше 30 000.

Замедления авторы не ждут: по их словам, скрытый спрос на слияния практически бесконечен, и каждое снятое узкое место сразу добавляет кода. Сам репозиторий тоже распух. История одной только ветки main весит почти 100 ГБ, сжатая рабочая копия больше 25 ГБ, а CI делает порядка 25 миллионов выгрузок кода в день, не считая сред разработчиков, песочниц агентов и исследовательских задач.

Помимо Scion, за те же пять месяцев сделали Antique для ревью, поиск по коду, развитую систему прав доступа и инструменты для приземления больших объёмов проверенного кода. Всем этим занималась команда из семи человек.

Инфраструктура Scion в 200 раз меньше прежних зеркал git по CPU и памяти

Каждый уровень кэша держит долю попаданий выше 99% и не хранит долгоживущего состояния, так что его легко нарастить. По CPU и памяти инфраструктура Scion в 200 раз меньше прежней системы зеркал git. CI и исследовательские задачи выгружают код на два порядка быстрее, за секунды вместо минут, и один только CI получил выигрыш в 25% мощности CPU.

По словам авторов, Scion входит в число самых протестированных кодовых баз, с которыми они работали. Даже в сжатые сроки команда построила герметичные симуляции всех нетривиальных взаимодействий с инфраструктурой и контролем версий, фаззинг и ограничение частоты запросов, а Claude походя нашёл оптимизацию запросов о предках коммитов, которые промахивались мимо индекса.

Claude Mythos Preview переписал конвейер миграции: в 20 раз меньше памяти и в 4 раза быстрее

Строить Scion начали примерно тогда, когда внутри Anthropic появились Claude Mythos Preview и Claude Tag. Прототип конвейера переноса из git в Scion команда написала в основном руками, а ранний внутренний снапшот Mythos Preview без дополнительных инструкций переписал его: в 20 раз меньше памяти, в 4 раза быстрее, все неявные инварианты порядка загрузки сохранены.

По словам авторов, все инженеры проекта теперь считают, что Claude пишет код лучше них, но понимание связей между системами и проектных компромиссов осталось за людьми. Часто их роль сводилась к слову «нет»: во время миграции несколько систем пытались узнать момент слияния в main, линейно читая лог коммитов, вместо того чтобы спросить инструмент ревью.

Состязательное ревью тоже бывает близоруким: одно из них не доверяло другому внутреннему сервису, и Claude обложил код лишними проверками. Люди по-прежнему смотрят каждое изменение, но оценивают его замысел и построчно код уже не читают.

Сервер Scion считает историю, blame и слияния, клиент держит только кэш

Scion спроектирован с оглядкой на Piper в Google и Sapling в Meta, но исходит из того, что клиент всегда онлайн. Клиент держит ограниченный кэш объектов, раскладывает файлы рабочей копии и следит за изменениями на диске. Историю файлов, blame, коммиты, слияния и rebase делает сервер, и те же запросы открыты через API, поэтому многим задачам CI локальный репозиторий не нужен вовсе.

Единица работы называется changeset, запись в write-ahead log. Где коммит git указывает на дерево файлов, changeset хранит список файлов, изменившихся относительно первого родителя, и адресованные по содержимому ссылки на сжатые данные в blob-хранилище. Похоже на бухгалтерскую проводку: записано только движение, остатки считают отдельно.

Без packfiles, блокировок и согласования между серверами changesets принимаются очень быстро, и стоимость коммита растёт с размером изменения, а не всего репозитория. Ветки, кроме main и релизных, не поощряются, а сдвиг ссылки сводится к compare-and-swap в одной строке Spanner. Для blame, истории путей и графа коммитов строятся производные данные, каждый тип рекурсивно через родителей, сразу или отложенно, и клиент их устройства не видит.

Клиент Scion сам запрашивает недостающие объекты, начиная с корневого дерева

При выгрузке клиент Scion не рассказывает серверу, что у него уже лежит. Он начинает с корневого дерева, проверяет локальное хранилище и рекурсивно запрашивает недостающие деревья, затем так же blob-ы. Каждый запрос касается конкретного неизменяемого объекта, поэтому ответить может любой кэш, а без многогигабайтного packfile процесс легко возобновить. Sparse и виртуальные выгрузки получаются сами: ненужные деревья клиент просто не просит.

На машинах флота клиент общается через сокет с scion-daemon, который хранит объекты для всего узла и стартует с периодически обновляемого снапшота. Демон ходит только в региональные scion-cache, а те отдают объекты прямо из памяти в дисковом формате демона, без вычисления разницы и дельта-сжатия. Промахи кэша уходят к основным scion-server, которые читают Spanner или облачное хранилище.

Все три уровня отвечают на одинаковые RPC, так что клиенту не нужно знать топологию кэшей. Теоретически любой уровень мог бы говорить с любым, но иерархию соблюдают строго: в Anthropic не хотят, чтобы сбой регионального scion-cache завалил запросами scion-server и положил всю систему.

Авторы сами сужают применимость: Scion имеет смысл только для гигантских монорепозиториев, а Anthropic, по их словам, может тратить токены на внутренние нужды больше, чем захотел бы любой другой бизнес. Странно, что при обилии цифр о скорости в тексте нет ни одной о деньгах: сколько стоило построить и держать Scion, не раскрывается. Как отмечает Crypto Briefing, уход из экосистемы git несёт риски, а долгосрочные расходы на поддержку предсказать труднее, чем стартовые бенчмарки.

Что Anthropic предлагает владельцам git

Anthropic ожидает, что похожие проблемы станут обычными в ближайшие 6–12 месяцев, и вместо выпуска Scion предлагает перенести удачные идеи в git: развитые серверные RPC, возможно стандартизированные между платформами, новый протокол согласования и sparse- и shallow-функции, которые хорошо сочетаются друг с другом. Партнёрами компания называет GitHub, GitLab и open source-сообщество, но конкретных сроков или совместных проектов пока не названо.

Google

Gemini 4 Argon делит миллион токенов между вводом и ответом, Видео

Лимит Gemini 4 Argon в 1 миллион токенов Google теперь называет «общим на вход и выход», а 30 сентября это был потолок вывода. Загрузите 800 000 токенов кода, и на ответ останется 200 000. Бывало, что длинный промпт съедал у модели место на ответ?

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите, чтобы оставить комментарий. Он появится после модерации.