发布包及版本选择说明

自 DolphinDB 3.00.6 起,Server 的 JIT 交付方式、Linux ARM64 的 C++ ABI 类型及 Windows JIT 支持范围发生调整。本文以 3.00.6 为版本边界,说明旧版本环境升级到 3.00.6 或后续版本时,如何选择 Server 版本和插件安装包,并给出新部署环境的版本建议。

适用范围:本文所称“3.00.6 及后续版本”,是指采用第 1 节所述发布包组合与 JIT、ABI 规则的版本。如目标版本的发布说明另有调整,请以目标版本的下载页面和兼容性说明为准。

插件升级原则:DolphinDB 官方插件支持当前发布的 Server 版本。每次升级 Server,都必须将插件更新为与目标 Server 匹配的版本;新旧版本跨越 3.00.6 时,插件安装包类型还可能发生变化。

1. 3.00.6 版本边界及主要变化

版本类型或能力 3.00.6 之前 自 3.00.6 起
Linux x86_64 普通版(ABI=0) 提供 提供
Linux x86_64 ABI 版 提供 提供
Linux x86_64 JIT 版 提供 不提供。需要使用 JIT 时,应选择 Linux x86_64 ABI 版;该版本默认启用 JIT。
Linux ARM64 版 提供,使用 ABI=0。 提供,使用 ABI=1。
Windows x86_64 普通版 提供 提供
Windows x86_64 JIT 版 提供 不提供。Windows 不再支持 JIT。

JIT 与插件交付变化:3.00.6 之前,Linux x86_64 JIT Server 发布包随包提供除行情类插件外的全部官方插件,这些随包插件采用 ABI=0。自 3.00.6 起,提供 JIT 的 Linux x86_64 ABI Server 发布包默认不附带插件,与其匹配的插件采用 ABI=1,需按第 3.1 节单独获取。

ABI=0 和 ABI=1 表示 Linux C++ 标准库采用的不同二进制接口。Server 与其加载的 C++ 二进制组件需要保持 ABI 兼容。

2. 升级与新部署版本选择

2.1 旧版本升级到 3.00.6 及后续版本

本节所称“旧版本”是指 3.00.6 之前的版本。从旧版本升级到 3.00.6 或采用相同发布规则的后续版本时,请根据旧环境的操作系统、CPU 架构、ABI 和 JIT 类型选择目标 Server。

每次升级均应按开篇的插件升级原则更新插件;下表中的插件类型主要用于指导离线安装,具体安装和更新方式见第 3.1 节。ABI 变化及跨平台时的通用处理见第 3.2 节;使用 amdQuote 的环境还应在升级前参见第 3.3 节。

升级前的旧版本类型 目标版本类型 升级时的选择与处理
Linux x86_64 普通版(ABI=0)
  • 继续使用 ABI=0:Linux x86_64 普通版(ABI=0)
  • 切换 ABI:Linux x86_64 ABI 版
  • 需要继续兼容使用 ABI=0 编译的用户自行开发的插件或其他 C++ 二进制组件时,继续使用普通版并选择 Linux x86_64 普通版插件;
  • 切换到 ABI 版时,选择 Linux x86_64 ABI 插件,并按第 3.2 节处理 ABI 兼容性。
Linux x86_64 ABI 版 Linux x86_64 ABI 版 选择目标版本的 Linux x86_64 ABI 插件。
Linux x86_64 JIT 版 Linux x86_64 ABI 版 将旧 JIT Server 发布包中随附的 ABI=0 插件替换为目标版本的 Linux x86_64 ABI 插件,并按第 3.2 节处理 ABI 兼容性。
Linux ARM64 版(ABI=0) Linux ARM64 ABI 版 将插件安装包类型改为 Linux ARM64 ABI,并按第 3.2 节处理 ABI 兼容性。
Windows x86_64 普通版 Windows x86_64 普通版 选择目标版本的 Windows 插件。
Windows x86_64 JIT 版
  • 不再使用 JIT:Windows x86_64 普通版
  • 仍需使用 JIT:Linux x86_64 ABI 版
  • 不再使用 JIT 时,选择目标版本的 Windows 插件;
  • 仍需使用 JIT 时,迁移至 Linux x86_64 ABI 版,选择目标版本的 Linux x86_64 ABI 插件,并按第 3.2 节处理跨平台及 ABI 兼容性。

升级到沿用相同规则的后续版本时,仍应按上表确定目标版本类型,并从目标版本的发布包中选择对应的平台、架构和 ABI 类型。

2.2 3.00.6 及后续版本之间升级

当前环境已经使用 3.00.6 或后续版本时,若升级前后操作系统、CPU 架构和 ABI 类型均不变,通常无需再次进行 JIT 或 ABI 类型转换。插件仍须按开篇的插件升级原则更新为与目标 Server 匹配的版本。

2.3 新部署环境

以下建议适用于新部署 3.00.6 或后续版本。安装其他版本时,请以相应版本的发布说明为准。

  • 新建 Linux x86_64 环境:

    • 默认推荐选择 ABI 版;
    • 如需兼容 ABI=0 的用户自行开发的插件或其他 C++ 二进制组件,可以选择普通版;
    • 需要使用 JIT 时,应选择 ABI 版。
  • 新建 Linux ARM64 环境,选择 ARM64 ABI 版。
  • Windows 环境选择 Windows x86_64 普通版。

3. 插件准备、安装与安装包选择

3.1 官方插件安装与更新

所需官方插件可通过以下两种方式单独安装或下载:

  • 在线环境:在目标节点通过插件市场在线安装或更新插件,获取与目标 Server 匹配的最新插件版本,无需手动选择安装包类型。

  • 离线环境:插件市场按目标 Server 的版本、操作系统、CPU 架构和 ABI 下载对应的离线插件包。完整命名规则、各字段含义以及插件与 Server 安装包对应关系请参见《插件管理》“离线安装”;不得继续使用与升级前 Server 版本匹配的离线插件包。

3.2 ABI 变化及跨平台时的组件处理

Server 的操作系统、CPU 架构或 ABI 类型发生变化时,应分别处理以下组件:

  • DolphinDB 官方插件:安装或更新为与目标 Server 匹配的版本,用户无需自行重新编译。
  • 用户自行开发的插件或其他 C++ 二进制组件:面向目标 Server 的操作系统、CPU 架构和 ABI 重新编译。
  • 第三方预编译库或厂商 SDK:更换为与目标 Server 的操作系统、CPU 架构和 ABI 兼容的版本。

3.3 amdQuote 升级前准备

目前,插件市场尚未提供 amdQuote 的 ABI 安装包。如目标 Server 使用 ABI=1 且业务依赖 amdQuote,请在升级前联系 DolphinDB 技术支持,并提供所使用版本的 AMD SDK,以便提前评估并准备适配插件。

3.4 3.00.6 离线安装包示例

下表列出目标 Server 版本为 3.00.6 时常见的插件安装包版本。为便于比较,表中仅展示安装包版本标识,并非完整文件名。

Server 版本 对应的插件安装包版本
Linux x86_64 3.00.6(ABI=0) Linux-X86-3.00.6.0
Linux x86_64 3.00.6 ABI Linux-X86-3.00.6.0-ABI
Linux ARM64 3.00.6 ABI Linux-ARM64-3.00.6.0-ABI
Windows x86_64 3.00.6 Windows-X86-3.00.6.0

4. 升级实施与验证

实际升级前,应参见DolphinDB 3.00.6 版本兼容性说明,完成配置、License、数据和相关元数据的备份,并按照单节点部署与升级单服务器集群部署与升级文档执行。集群及其他部署方式请参见相应的部署与升级文档。

升级后,应先在测试环境中完成以下验证:

  • 旧 Linux JIT 环境或旧 Windows JIT 环境迁移至 Linux 后,调用 isJIT();返回 true 表示 JIT 已成功加载。随后回归原有 JIT 函数及依赖 JIT 的业务流程。
  • 涉及操作系统、CPU 架构或 ABI 变化时,按第 3.2 节完成组件处理后,验证插件加载及相关业务功能。
  • 旧 Windows JIT 环境如继续使用 Windows,应确认业务已不再依赖 JIT。