GitLab: С выходом версии 12.1 мы прекращаем поддержку MySQL
- четверг, 11 июля 2019 г. в 00:21:56
В июле 2017 GitLab предупредил, что прекратит поддержку MySQL. Так вот, с выпуском 12.1 период подготовки к этому завершится, и больше мы MySQL поддерживать не будем. Решение непростое, и мы хотели бы поделиться доводами.
Есть немало удачных внедрений MySQL, однако в нашем случае он не совсем подходил. По сравнению с PostgreSQL MySQL имеет ряд ограничений, что приводило к проблемам с PostgreSQL при попытках приспособить MySQL. Вот небольшой список ограничений:
TEXT
, если не задать параметр lengthДля обхода "больных" мест мы написали специфичный код для MySQL, что по факту вылилось в поддержание еще одной подсистемы баз данных, а по факту — удвоенная сложность при слияниях кодовой базы. Поддержка такого кода также приводила к накладным расходам, что в результате привело к замедлению скорости выпусков.
Отдельно стоит упомянуть нашу систему CI, которая прогоняла тесты дважды, таким образом прекратив поддержку MySQL мы сократим время тестирования и расходы на инфраструктуру. Расходы, надо сказать, значительные, не окупаются малым числом пользователей на MySQL.
Поддерживая обе серверные части (PostgreSQL и MySQL), мы не могли в полной мере воспользоваться ни одной из них. Там где хотелось бы использовать особенности производительности и надежности какой-либо из них, приходилось сводить все к наименьшему общему знаменателю. Пример (не единственный): мы хотели использовать LATERAL JOIN
PostgreSQL для оптимизации событий на панели управления, но у нас не получилось потому, что мы использовали MySQL.
Ориентируясь на данные Usage Ping, мы четко увидели, что подавляющее большинство клиентов уже перешли на PostgreSQL. Тренд достаточно устойчивый, к примеру в последнее время на 1200 установок с MySQL было порядка 110000 установок на PostgreSQL.
Мы уверены, что наши пользователи, которые применяют MySQL, могут достаточно просто сменить базу данных, переходя на PostgreSQL при обновлении до gitlab 12.1 и новее.
К слову, сами мы не работаем с MySQL, а это значит, что мы не сталкивались с проблемами ДО наших пользователей.
Если вы из числа таких пользователей, то для руководства по переходу с MySQL на PostgreSQL ознакомьтесь, пожалуйста, с документами по миграции.