Новая модель релизов MySQL-сервера

В статье "The New MySQL Server Release Model" автор раскрывает структуру разработки новой модели MySQL. Автор: Robin Schumacher

Когда я вернулся в MySQL в июне 2005, одной из первых “Истин MySQL”, которую я узнал и часто повторял, когда обсуждал MySQL с другими, была следующей: “выпускай раньше, выпускай часто”. Если Вы использовали MySQL хотя бы какое-то время, то знаете, что означает это выражение - оно означает, что MySQL предназначался: (1) для получения новых функций и улучшений в руках его сообщества для подтверждения качества ПО; (2) для того, чтобы как можно раньше получить  отдачу от этих функций, так, чтобы как можно быстрее включить его в продукт, чтобы каждый мог воспользоваться этим; (3) для выпуска очень частых релизов ПО чтобы новые полезные функции и/или сторонние разработки, которые были готовы к действию, могли быть быстро введены в практику, а не пылились бы на полке. И если Вы пользуетесь ПО с открытым исходником, то Вы знаете, что это атмосфера, в которой работает большинство поставщиков данного рода ПО.

Когда в октябре 2005 вышел MySQL 5.0, он содержал много новых функций, которые были большими и сложными по своему характеру - улучшения, подобно сохраненным процедурам, триггерам, курсорам, представлениям, и т. д. В то время как новые функции приветствовались многими, кто ими пользовался в другом RDBMS, оглядываясь назад, многие в MySQL согласятся, что в целом качество, предоставляемое релизом 5.0 не соответствовало стандарту предшествующих версий сервера. И почти сразу же после версии 5.0 вышел релиз 5.1, который также содержал множество новых усовершенствований, таких как: разбиение таблица/индекс, репликация на основе ряда, встроенный планировщик задач, и т. д.

Сотрудники Инженерно-технической поддержки были вынуждены заниматься релизом GA с многочисленными проблемами, которые должны были быть исправлены наряду с наступающей версией, которая также нуждалась во внимании. В конечном результате релиз MySQL 5.1 сильно задержали и сообщество, и клиентов, которых оставили ломать себе голову,  задаваясь вопросом, утратил ли MySQL свое обязательство часто предоставлять новые релизы своего ПО, или нет.

Хорошая новость заключается в том, что MySQL еще не потеряла свою приверженность часто и быстро выпускать новые релизы, и недавно создал новую модель релиза, который сейчас находится в стадии разработки, и который разработан для защиты от проблем, которые возникали в прошлом, и для более частых выпусков Сервера MySQL, гарантируя очень высокое качество для тех, кто использует MySQL для управления данными. Давайте теперь кратко рассмотрим как эта новая модель работает и как распространяет эти преимущества. Если Вы хотите получить более технический взгляд на то, как эта модель работает, смотри следующий документ на MySQL Forge .

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

  1. Выпускать более частые релизы сервера с лучшей предсказуемостью в плане даты релиза;
  2. Быстрее делать доступными новые функции и улучшения;
  3. Предоставлять модель, которая воодушевит и вознаградит вклад сообщества в MySQL Сервер.

Для достижения этих целей, инженеры из MySQL разработали модель нового "промежуточного" релиза, которая отличается от предшествующей используемой методологии для прежних версий MySQL Сервера. Короче говоря, цель промежуточной модели состоит в том, чтобы выпускать релизы сервера каждые три - шесть месяцев, - релизы, которые будут, вероятно, содержать новые функции в каждом новом промежуточном варианте, с качеством каждого как минимум РК (Релиз - Кандидат). Из этих промежуточных релизов, будет разработана в конечном итоге новая GA-версия MySQL Сервера (обратите внимание, что не все промежуточные версии в результате войдут в GA-релиз), со сроками между новыми GA-релизами 12-18 месяцев.

В промежутках между каждым  выпуском промежуточной версии будет интеграция «windows», которая позволит ввести новые бета-функции для следующих промежуточных релизов. Важно понять, в связи с этими функциями, что выпущенная модель требует "отката" - если какая-либо из функций, которые были введены в ходе интеграции, не соответствует  требуемой  дате выпуска, то они удаляются, и вносятся в следующий промежуточный релиз. По этому же принципу новый промежуточный релиз (и последующие GA-релизы, полученные от майлстоун-релизов) не ждет когда какая-либо функция будет готова, а наоборот, в релиз допускаются только те функции, которые считаются достаточно зрелыми чтобы быть включеными в новый промежуточный релиз из корня основного ПО, а также любая функция, которая не отвечает установленным внутренним критериям просто становится потенциальным кандидатом на удаление из следующего промежуточного релиза.

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

Визуальное представление модели, может выглядеть следующим образом:

Промежуточные релизы и MySQL 6.0

Перед внедрением новой промежуточной модели, следующей запланированной GA-версией MySQL Сервера была версия 6.0. Однако, как уже было в случае с MySQL 5.1, версия 6.0 содержала функции, которые сильно опережали другие, поэтому в соответствии с новой моделью промежуточного релиза, более зрелые функции вошли в предстоящие релизы 2009 года, а другие (такие, как транзакционный движок Falcon, и новая online backup утилита) вероятнее всего не появятся в будущем промежуточном релизе до 2010.

На момент написания статьи, ключевые новые функции, намеченные войти в промежуточную версию "Azalea", включают оптимизацию подзапросов, и новый алгоритм соединения (batched key access). В Azalea также должны войти возможность  SIGNAL/RESIGNAL для хранимых процедур и различные улучшения репликации (semi-sync репликация и т. д.), а также несколько других улучшений. Планируется выпустить промежуточный релиз Azalea в сентябре 2009, совместно со следующим GA-релизом MySQL Сервера, запланированного на декабрь 2009.

Falcon и новая утилита MySQL backup планируется появиться в последующих промежуточных версиях (например, утилита backup запланирована войти в промежуточную версию Betony и появиться в январе 2010) с большим количеством запланированных функций, как, например, иностранные ключи для всех движков и другие основные функции, которые впоследствии войдут в него.

Заключение

Модель нового промежуточного релиза MySQL Сервера была разработана для предоставления множества преимуществ, а также чтобы вернуть MySQL к его принципу “выпускай раньше, выпускай часто”. Основные преимущества включают повышение качества основного ПО, которое раньше производил MySQL, способность предоставлять функции и разработки участников сообществу и клиентам быстрее, чем в предшествующих релизах, лучшая возможность прогнозирования GA-релизов для новых версий сервера.

Если у Вас есть комментарии по поводу новой модели релиза, то, пожалуйста, не стесняйтесь, высказывайте. И как всегда спасибо за вашу поддержку MySQL и Sun!

Оригинал статьи на dev.mysql.com

Перевод ООО «Комтет» komtet.ru