GitLab: С выходом версии 12.1 мы прекращаем поддержку MySQL

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Сейчас мы расскажем, почему, начиная с версии 12.1, GitLab перестанет поддерживать MySQL.


В июле 2017 GitLab предупредил, что прекратит поддержку MySQL. Так вот, с выпуском 12.1 период подготовки к этому завершится, и больше мы MySQL поддерживать не будем. Решение непростое, и мы хотели бы поделиться доводами.


MYSQL не очень подходил для нашего сценария использования


Есть немало удачных внедрений MySQL, однако в нашем случае он не совсем подходил. По сравнению с PostgreSQL MySQL имеет ряд ограничений, что приводило к проблемам с postgresql при попытках приспособить MySQL. Вот небольшой список ограничений:


  • С MySQL не получалось эффективно поддерживать вложенные группы
  • Также есть ограничения по полям, которые мы обходим с помощью различных ухищрений, а в результате mysql может просто не сохранить данные
  • MySQL не добавит тип столбца TEXT, если не задать параметр length
  • MySQL не поддерживает частичные индексы
  • Уже этот набор ограничений создал несколько моментов (включая Geo), по которым мы и так не поддерживали MySQL

Он замедлял нас


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


Отдельно стоит упомянуть нашу систему CI, которая прогоняла тесты дважды, таким образом прекратив поддержку MySQL мы сократим время тестирования и расходы на инфраструктуру. Расходы, надо сказать, значительные, не окупаются малым числом пользователей на MySQL.


Мы теряли преимущества обеих серверных частей


Поддерживая обе серверные части (PostgreSQL и MySQL), мы не могли в полной мере воспользоваться ни одной из них. Там где хотелось бы использовать особенности производительности и надежности какой-либо из них, приходилось сводить все к наименьшему общему знаменателю. Пример (не единственный): мы хотели использовать LATERAL JOIN PostgreSQL для оптимизации событий на панели управления, но у нас не получилось потому, что мы использовали MySQL.


Почти все наши клиенты на PostgreSQL


Ориентируясь на данные Usage Ping, мы четко увидели, что подавляющее большинство клиентов уже перешли на PostgreSQL. Тренд достаточно устойчивый, к примеру в последнее время на 1200 установок с mysql было порядка 110000 установок на PostgerSQL.


Мы уверены, что наши пользователи, которые применяют MySQL, могут достаточно просто сменить базу данных переходя на PostgreSQL при обновлении до gitlab 12.1 и новее.


К слову, сами мы не работаем с MySQL, а это значит, что мы не сталкивались с проблемами ДО наших пользователей.


Нужна помощь с миграцией?


Если вы из числа таких пользователей, то для руководства по переходу с MySQL на PostgreSQL ознакомьтесь, пожалуйста, с документами по миграции.

Источник: https://habr.com/ru/company/southbridge/blog/459182/


Интересные статьи

Интересные статьи

Статья о том, как упорядочить найм1. Информируем о вакансии2. Ведём до найма3. Автоматизируем скучное4. Оформляем и выводим на работу5. Отчитываемся по итогам6. Помогаем с адаптацией...
Ещё не успела отшуметь уязвимость BlueKeep (CVE-2019-0708) для старых версий ОС Windows, нацеленная на реализацию протокола RDP, как снова пора ставить патчи. Теперь в зону поражения попали всё н...
Здравствуйте. Я уже давно не пишу на php, но то и дело натыкаюсь на интернет-магазины на системе управления сайтами Битрикс. И я вспоминаю о своих исследованиях. Битрикс не любят примерно так,...
Сегодня можно найти стримы на любой вкус от уроков программирования, до мейкапа, готовки и многочасовых разговоров блоггеров «за жизнь». Стриминг — это полноценная индустрия с многомиллионной...
Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с табл...