GitLab добился значительного сокращения времени создания резервных копий крупных репозиториев — с...
GitLab добился значительного сокращения времени создания резервных копий крупных репозиториев — с 48 часов до 41 минуты. Подробности оптимизации описаны в официальном блоге компании
Как выяснилось, проблема заключалась в функции Git, созданной ещё в 2009 году. Из-за высокой алгоритмической сложности при обработке большого количества ссылок эта функция:
— замедляла процесс создания бэкапов
— потребляла до 80% времени на удаление дубликатов
Решение пришло с заменой устаревшего механизма на современный подход с использованием map (ассоциативного массива). Новый метод автоматически предотвращает дублирование ссылок и требует минимальных временных затрат
В результате оптимизации время создания резервной копии самого большого репозитория GitLab сократилось с двух суток до 41 минуты.
Как выяснилось, проблема заключалась в функции Git, созданной ещё в 2009 году. Из-за высокой алгоритмической сложности при обработке большого количества ссылок эта функция:
— замедляла процесс создания бэкапов
— потребляла до 80% времени на удаление дубликатов
Решение пришло с заменой устаревшего механизма на современный подход с использованием map (ассоциативного массива). Новый метод автоматически предотвращает дублирование ссылок и требует минимальных временных затрат
В результате оптимизации время создания резервной копии самого большого репозитория GitLab сократилось с двух суток до 41 минуты.


