1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dolphindb-release

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
DolphinDB_compatibility_levels_EN.md 24 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 03:18 0a04dde

Уровни совместимости DolphinDB

1. Введение

В этом руководстве в основном объясняется совместимость серверов, SDK и плагинов DolphinDB. Вы можете обратиться к требованиям каждого уровня совместимости, чтобы быстро узнать о потенциальных рисках обновлений. Для обновления безопасности последние стабильные версии сервера DolphinDB обеспечивают обратную совместимость.

Начиная с версий 1.30.17 и 2.00.5, DolphinDB будет указывать уровень совместимости каждой версии в примечаниях к выпуску. Будут указаны несовместимости и предоставлены соответствующие решения. Кандидаты на выпуск и стабильные версии сервера DolphinDB гарантируют как минимум обратную совместимость.

2. Термины и определения

Обратная совместимость относится к способности более новой версии программного обеспечения принимать конфигурации, данные и программы, которые работали в старой версии.

Прямая совместимость относится к способности старой версии программного обеспечения принимать конфигурации, данные и программы новой версии.

Откат — это операция, которая откатывается к старой версии, когда после обновления обнаруживаются риски. Его можно разделить на три случая в зависимости от того, были ли обновлены файлы базы данных.

(1) Безусловный откат. Если новая версия не обновляет формат файлов данных, файлов журналов и метаданных, вы всегда можете вернуться к старой версии независимо от того, была ли запись данных после обновления.

(2) Откат после резервного копирования метаданных. Формат файла данных остаётся прежним, а формат метаданных был обновлён. Во время процесса перезапуска после обновления система выполнит контрольную точку в журнале редактирования для создания новых метаданных. Однако после возврата к старой версии файл метаданных в новом формате не будет читаемым. Мы можем сделать резервную копию метаданных перед обновлением на случай такой ситуации.

(3) Откат после корректного завершения работы. Был обновлён формат файла данных. Даже если пользователь не записывает данные после перезапуска, возможно, что данные будут записаны в файл базы данных журналом повтора. Таким образом, данные нельзя будет прочитать после возврата к старой версии. Чтобы решить эту проблему, DolphinDB поддерживает корректное завершение работы начиная с версий 1.30.17 и 2.00.5, чтобы гарантировать, что все данные в журнале повторов записываются в файл базы данных перед завершением работы узла.

Постепенное обновление: Традиционный способ обновления кластера обычно заключается в том, чтобы выключить все узлы и затем обновить их до новой версии перед перезапуском. Обновление таким образом, однако, вызовет прерывание обслуживания. Постепенное обновление означает, что обновления могут выполняться по узлам без прерывания обслуживания. После того как узел обновлён и работает нормально, обновляется другой узел и так далее, пока все узлы не будут обновлены.

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

Во время постепенного обновления система остаётся в сети. Это требует, чтобы новая версия имела высокий уровень совместимости, и кластер должен быть развёрнут для обеспечения высокой доступности.

Совместимость плагинов и SDK: Совместимость плагинов и SDK включает двоичную совместимость и совместимость исходного кода.

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

Что касается SDK (Python, C++, Java, C# и т. д.), бинарная совместимость означает, что старая версия SDK (обычно в виде динамических библиотек) совместима с новой версией сервера. Исходная совместимость означает, что интерфейсы SDK совместимы с существующими клиентскими кодами.

3. Уровень совместимости

В DolphinDB существует 5 уровней совместимости. Более высокий уровень совместимости имеет более строгие требования. Если версия удовлетворяет определённому уровню совместимости, все более низкие уровни совместимости также удовлетворяются.

3.1 Уровень совместимости 1

Уровень совместимости 1 обычно гарантирует обратную совместимость для сервера DolphinDB, чтобы данные и коды старой версии можно было использовать в новой версии со следующими исключениями:

(1) Некоторые встроенные функции, объявленные устаревшими более 1 года, могут быть удалены. (2) Исходная совместимость плагинов может не поддерживаться, что означает, что файлы двоичных библиотек могут потребовать обновления, а скрипт, вызывающий функцию плагина, может потребовать модификации. (3) Бинарная совместимость SDK может не поддерживаться, то есть динамическая библиотека SDK должна быть обновлена, тогда как совместимость кода может быть гарантирована.

Требования к уровню совместимости плагинов и API различаются, поскольку плагины выполняются в том же процессе, что и сервер DolphinDB, и заголовочные файлы плагинов часто меняются по мере изменения сервера, в то время как SDK должны быть совместимы только с протоколом связи сервера.

  • Требования:

    • Совместимость с конфигурациями старой версии. Имена параметров конфигурации и значения по умолчанию не могут быть изменены.
    • Совместимость с функциями и кодами старой версии. Имена функций не могут быть изменены. Параметры функции могут быть только добавлены, и новые параметры должны иметь значения по умолчанию. Использование скриптов не может быть изменено. Некоторые функции, объявленные как устаревшие более 1 года, могут не поддерживаться.
    • Совместимость с данными старой версии, включая таблицы DFS, сохранённые таблицы потоков, запланированные задачи, представления функций и контроль доступа пользователей.
    • Поддерживается исходная совместимость SDK. Клиентские программы, написанные с использованием SDK, могут продолжать работать после перекомпиляции и компоновки.
  • Руководство по обновлению:

    • Уровень 1 не поддерживает исходную совместимость плагинов и бинарную совместимость API. При обновлении сервера двоичные файлы библиотек плагинов и API должны быть обновлены. Клиенту API необходимо перекомпилировать, а скрипты плагинов могут потребовать модификации.
    • Формат файла базы данных мог измениться. Чтобы обеспечить безопасность отката, перед обновлением должно быть полностью выполнено корректное завершение работы, чтобы гарантировать сбор всех журналов повторов.

3.2 Уровень совместимости 2

Уровень совместимости 2 обеспечивает полную обратную совместимость. В дополнение ко всем требованиям уровня 1 уровень 2 требует, чтобы сервер DolphinDB был совместим со всеми функциями и кодами старой версии. Поддерживается исходная совместимость плагинов и SDK. После обновления двоичных файлов плагинов коды, написанные с помощью плагинов, могут продолжить работу.

  • Требования:

    • Совместимость с конфигурациями старой версии.
    • Совместимость с функциями и кодами старой версии.
    • Совместимость с данными старой версии, включая таблицы DFS, сохранённые таблицы потоков, запланированные задачи, представления функций и контроль доступа пользователей.
    • Поддерживается исходная совместимость плагинов, то есть двоичные файлы должны быть обновлены, но коды, вызывающие плагины, не требуют модификации.
    • Поддерживается исходная совместимость SDK. Коды клиента могут подключаться к новой версии сервера, если они скомпилированы и связаны с новым SDK.
  • Руководство по обновлению:

    • При обновлении двоичные файлы библиотеки плагинов могут потребоваться обновить.
    • Формат файла базы данных мог измениться. Для обеспечения безопасности отката перед обновлением должно быть выполнено полное корректное завершение работы. Прежде чем выполнить обновление, убедитесь, что все журналы повторов были собраны сборщиком мусора.

3.3 Уровень совместимости 3

Уровень совместимости 3 основан на уровне совместимости 2 и поддерживает двоичную совместимость плагинов и SDK.

Требования:

  1. Совместимость с конфигурациями старой версии.
  2. Совместимость с функциями и кодами старой версии.
  3. Совместимость со старыми данными, включая таблицы DFS, таблицу сохранённых потоков, запланированные задачи, представления функций и контроль доступа пользователей.
  4. Поддерживается двоичная совместимость плагинов и SDK, то есть плагины и SDK могут работать без обновления.

Руководство по обновлению:

Сделайте резервную копию метаданных контроллера и узлов данных перед обновлением. После отката вам нужно сначала восстановить резервные копии старой версии.

3.4 Уровень совместимости 4

Уровень совместимости 4 основан на уровне совместимости 3 и требует, чтобы новую версию можно было условно откатить к старой версии и поддерживал поэтапное обновление, что означает, что кластеры DolphinDB можно обновлять по узлам. Когда один узел обновляется и работает стабильно, обновляется другой узел. Во время процесса обновления, если возникает исключение, вы можете быстро вернуться к старой версии, что значительно снижает риски обновления.

Кроме того, следует отметить, что для поддержки поэтапного обновления требуется, чтобы формат данных и протоколы передачи в памяти были полностью совместимы.

Требования:

  1. Совместимость с конфигурациями старой версии.
  2. Совместимость с функциями и кодами старой версии.
  3. Совместимость со старыми данными, включая таблицы DFS, таблицу сохранённых потоков, запланированные задачи, представления функций и контроль доступа пользователей.
  4. Поддерживается двоичная совместимость плагинов и SDK, то есть плагины и SDK могут работать без обновления.
  5. Поддержка условного отката. Вы можете откатить новую версию к старой версии для продолжения работы при условии, что данные не были записаны.
  6. Совместимость со старыми данными в памяти, включая таблицы в памяти, матрицы, векторы и протоколы передачи и т. д., для поддержки поэтапных обновлений для каждого узла кластера.

3.5 Уровень совместимости 5

Уровень совместимости 5 — это самый высокий уровень сервера DolphinDB, который поддерживает поэтапные обновления и безусловный откат.

Требования:

  1. Совместимость с конфигурациями старой версии.
  2. Совместимость с функциями и кодами старой версии.
  3. Совместимость со старыми данными, включая таблицы DFS, таблицу сохранённых потоков, запланированные задачи, представления функций и контроль доступа пользователей.
  4. Поддерживается двоичная совместимость плагинов и SDK, то есть плагины и SDK могут работать без обновления.
  5. Совместимость со старыми данными в памяти, включая данные таблиц в памяти, переменные, такие как матрицы и векторы, и протокол передачи и т.д., для поддержки поэтапных обновлений для каждого узла кластера.
  6. Поддержка безусловного отката. После обновления даже если данные были записаны в базу данных новой версии, система может продолжать работать после отката к старой версии.

3.6 Обзор уровней совместимости

Требования для разных уровней совместимости показаны в таблице ниже:

Конфигурация Функции и скрипты Сохранённые данные Плагины SDK Поэтапное обновление Откат
Уровень 1 Совместимость Встроенные функции, объявленные устаревшими более 1 года, могут быть удалены. Обратная совместимость Исходный код потенциально несовместим Исходный код совместим Возможно неподдерживаемый Откат после корректного завершения работы
Уровень 2 Совместимость Совместимо Обратная совместимость Исходный код совместим Исходный код совместим Возможно неподдерживаемый Откат после корректного завершения работы

Существует три типа основных версий DolphinDB: стабильные релизы, релиз-кандидаты и бета-релизы.

Обновление основной версии сервера DolphinDB, например с 1.20 до 1.30 или с 1.30 до 2.00, обычно соответствует стандартам Уровня 1, а иногда — Уровню 2. Уровень 1 может не поддерживать совместимость исходного кода плагинов или двоичную совместимость SDK. При обновлении DolphinDB может потребоваться обновить бинарные файлы библиотек плагинов и SDK, перекомпилировать API-клиентов и обновить скрипты, вызывающие функции плагинов. Пожалуйста, обратитесь к примечаниям к выпуску для получения подробной информации. Обратите внимание, что откат поддерживается на Уровнях совместимости 1 и 2, но требуется сделать резервную копию метаданных контроллера и узлов данных и корректно завершить работу перед обновлением.

Обновление версии патча сервера DolphinDB, например, с 1.30.17 до 1.30.18, обычно соответствует Уровням 4 или 5, а иногда только Уровню 3. Однако обновление минорной версии бета-релизов DolphinDB может иметь значительные модификации и соответствовать только стандартам Уровней совместимости 1 или 2.

Если при обновлении пропускаются версии, стандарты совместимости принимают минимальное значение уровней совместимости между соседними версиями. Например, уровень совместимости равен 4 при обновлении с 1.30.16 до 1.30.17 и 3 при обновлении с 1.30.17 до 1.30.18. Тогда обновление с 1.30.16 до 1.30.18 соответствует стандартам Уровня 3. Чтобы выполнить обновление с пропуском нескольких версий, вы можете обратиться в службу технической поддержки DolphinDB для оценки рисков.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dolphindb-release.git
git@api.gitlife.ru:oschina-mirror/dolphindb-release.git
oschina-mirror
dolphindb-release
dolphindb-release
master