Telegram

GitLab добился значительного сокращения времени создания резервных копий крупных репозиториев — с...

GitLab добился значительного сокращения времени создания резервных копий крупных репозиториев — с 48 часов до 41 минуты. Подробности оптимизации описаны в официальном блоге компании

Как выяснилось, проблема заключалась в функции Git, созданной ещё в 2009 году. Из-за высокой алгоритмической сложности при обработке большого количества ссылок эта функция:
— замедляла процесс создания бэкапов
— потребляла до 80% времени на удаление дубликатов

Решение пришло с заменой устаревшего механизма на современный подход с использованием map (ассоциативного массива). Новый метод автоматически предотвращает дублирование ссылок и требует минимальных временных затрат

В результате оптимизации время создания резервной копии самого большого репозитория GitLab сократилось с двух суток до 41 минуты.