Доклад

История на миллион коммитов: как мы работаем с графом истории в Arc VCS

Подробнее о докладе

Дата 30 ноября, 17:00
Зал Зал «Сан-Паулу»
Формат Доклад, 50 минут
Уровень Средняя сложность

Спикеры

Юрий Чернышов

Yandex Infrastructure

Кому полезно

- разработчики и инженеры, активно работающие с репозиториями и trunk‑based development  - SRE и инфраструктурные инженеры, которым интересны вопросы производительности VCS, оптимизации алгоритмов и работы с огромными объёмами истории коммитов - архитекторы и техлиды, которые проектируют процессы разработки и выбирают инструменты - исследователи и энтузиасты алгоритмов  — аудитория, которая ценит реальные кейсы, «боль» на больших объёмах данных и практические выводы из опыта крупной компании.

О чём доклад

В Яндексе активно используют монорепозитории и trunk‑based development — это ускоряет разработку: ежедневно в trunk вливают до 10 000 коммитов, а общая длина ветки превысила 21 миллион коммитов.

Масштабы выявили ограничения классических алгоритмов (в том числе из git) — пришлось адаптировать и оптимизировать подходы. В докладе расскажу, как мы ускорили работу с историей в Arc VCS на трёх уровнях: 1) лог коммитов: отказ от классического BFS и его оптимизация; 2) история файла: три реализации индекса и сравнение с решениями из svn и git; 3) blame: создание индекса для отображения авторства каждой строки.

Вы узнаете, как устроены привычные инструменты, где упираются в ограничения по производительности и как их можно ускорить. Покажу одну из самых старых строк в кодовой базе Яндекса — пример кода, который живёт без изменений уже 20 лет.

Видео