Версионирование YDB

Релизы YDB именуются версией, представляющей собой строку, состоящую из нескольких компонентов. В зависимости от контекста часть находящихся справа компонентов может быть опущена. Упорядоченный список компонентов:

  1. Две последние цифры года выпуска;
  2. Номер мажорной версии внутри года;
  3. Номер минорной версии внутри мажорной;
  4. Номер патча внутри минорной;
  5. Тип релиза.

Таким образом, мажорные релизы обычно идентифицируются двумя компонентами, например, 24.3 — третий мажорный релиз в 2024 году. Минорные релизы идентифицируются тремя компонентами, например, 24.3.14 — четырнадцатый релиз в рамках третьей мажорной версии в 2024 году.

Список доступных версий можно получить на странице загрузки. Релизная политика YDB описана более детально в статье Управление релизами в разделе документации для разработчиков YDB.

Совместимость версий

Примечание

Раньше версия сервера YDB состояла из 3 чисел (например, v24.3.3), начиная с мажорной версии 25.1, добавлена четвертое число, которое обозначает номер патча (например, v25.1.1.3). Подробнее про изменения в именовании версий тут.

Совместимыми для обновления являются все минорные версии в рамках одной мажорной версии. Мажорные версии совместимы последовательно. Для обновления на следующую мажорную версию предварительно следует обновиться до последнего доступного минорного релиза текущей мажорной версии. Например:

  • X.Y.* → X.Y.* — обновление возможно, все минорные версии в рамках одной мажорной совместимы.
  • X.Y.Z (последняя доступная в X.Y.*) → X.Y+1.* - обновление возможно, мажорные версии последовательны.
  • X.Y.*X.Y+2.* — обновление невозможно, мажорные версии непоследовательны.
  • X.Y.* → X.Y-2.* — обновление невозможно, мажорные версии непоследовательны.

Важно

Также в любом случае нельзя откатываться более чем на 2 мажорные версии назад относительно хотя бы раз установленной версии, так как настолько старая версия может не знать, как работать с данными на дисках, записанными текущей.

Примеры совместимости версий

  • v.25.1.3.2 -> v.25.1.5.5 - обновление возможно
  • v.25.1.5.5 -> v.25.2.3.1 - обновление возможно (где v25.1.5.* последняя доступная минорная версия в v.25.1)
  • v.25.1.4.1 -> v.25.2.3.1 - обновление невозможно, необходимо сначала обновиться до последней минорной версии (v.25.1.5.*)
  • v.25.1.5.5 -> v.25.3.5.3 - обновление невозможно, необходимо сначала обновиться до следующей мажорной версии (v.25.2.*.*).

Формальное описание возможных версий

<valid-version> ::= <version-core> "-" <version-type>

<version-core> ::= <year> "." <major> "." <minor> "." <patch>

<version-type> ::= "testing" | "stable" | "lts"

<year> ::= <positive digit> <digit>

<major> ::= <positive digit>

<minor> ::= <digits>

<patch> ::= <digits>

<digit> ::= "0" | <positive digit>

<positive digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

<digits> ::= <digit> | <digit> <digits>

Примеры полных версий

  • Тестовая версия: 24.3.13.6-testing
  • Стабильная версия: 24.3.14.2-stable
  • LTS версия: 24.3.14.2-lts