土法炼钢兴趣小组的算法知识备份

【开源许可与版权工程】中国开源数据库的协议选择:OceanBase、TiDB、Apache Doris、StarRocks

文章导航

分类入口
architectureopensource
标签入口
#oceanbase#tidb#doris#starrocks#iotdb#sequoiadb#mulan#apache-2.0#sspl#elastic-license#database#opensource

开源之道系列导航

按系列顺序继续阅读,而不是停在单篇。

系列目录上一篇:【开源许可与版权工程】OpenHarmony 与开放原子基金会:大厂捐赠意味着什么下一篇:【开源许可与版权工程】中国 GPL 诉讼第一案系列:数字天堂、不乱买、罗盒

目录

过去五年,中国数据库产品迎来了一波集中的开源潮——OceanBase(蚂蚁集团)、TiDB(PingCAP)、Apache Doris(百度)、StarRocks(原 DorisDB)、Apache IoTDB(清华大学)、SequoiaDB(巨杉数据库)、OpenGauss(华为)先后走上开源路线。这批产品在协议选择上呈现出鲜明的分化:

这些选择不是随机的,背后有清晰的商业逻辑、云厂商策略和出海考量。本文逐一分析,并给出企业在引入或构建数据库产品时的协议评估框架。

中国开源数据库协议选择对比

一、OceanBase:MulanPubL-2.0 的工程选择

1.1 OceanBase 开源历程

OceanBase 由蚂蚁集团(Ant Group)自 2010 年起研发,是一个面向金融级场景的分布式关系型数据库,具备强一致性、高可用和 HTAP(混合事务分析处理)能力。2021 年 6 月,蚂蚁集团宣布将 OceanBase 开源,代码托管于 GitHub(oceanbase/oceanbase),并在此后逐步完善文档和社区建设。

1.2 MulanPubL-2.0 许可证解析

OceanBase 选用木兰公共许可证(第 2 版,Mulan Public License v2,MulanPubL-2.0)。这是 Mulan 许可证家族的 Copyleft 版本,与 MulanPSL v2(宽松版)有重要差异:

特性 MulanPubL-2.0 MulanPSL v2
Copyleft :修改和分发的衍生版本须以相同协议发布 :允许闭源衍生
网络使用条款 网络提供服务是否触发 Copyleft,协议文本存在解读空间 无网络条款
专利授权 包含 包含
OSI 认证 未获 OSI 认证(截至本文写作时) 已获 OSI 认证(2021 年)
中英双语

关键工程影响:MulanPubL-2.0 的 Copyleft 条款意味着,如果企业修改 OceanBase 并对外发布(包括通过网络向用户提供服务,视具体解读),需要以相同协议公开修改后的源码。

从蚂蚁集团的视角,这一选择有清晰的逻辑:

  1. 防止竞争性改造:防止其他数据库厂商直接基于 OceanBase 代码构建竞争产品而不回馈社区;
  2. 鼓励社区贡献:Copyleft 要求贡献者将改进开放,理论上使社区代码质量持续提升;
  3. 商业支持优势:蚂蚁集团自身不受协议限制(作为版权持有者),可以向企业客户提供不同条款的商业授权。

1.3 MulanPubL-2.0 的”网络使用”模糊地带

与 AGPL(明确要求通过网络提供服务也必须开源)相比,MulanPubL-2.0 的网络使用触发条款表述相对模糊。协议第 4 条规定了”网络部署”的要求,但具体何种情形属于”修改后通过网络部署”,在没有中国法院判例的情况下存在解释空间。

工程建议:如果企业对 OceanBase 代码进行了修改并作为 SaaS/PaaS 产品向外部用户提供服务,应咨询法律顾问,评估是否需要公开修改后的源码或与蚂蚁集团洽谈商业协议。

1.4 OceanBase 的双许可模式

OceanBase 在开源之后,实际上同时存在两个可供企业选择的授权版本:

1.4.1 社区版与商业版的功能差异

根据 OceanBase 官方公开文档与产品页面,两版在功能层面的主要差异可以归纳为四类增量能力:

  1. 诊断报告与 ASH(Active Session History):商业版提供完整的 AWR/ASH 风格诊断报告,用于分析活跃会话、等待事件、SQL 执行剖面;社区版的诊断能力相对有限,需要依赖外部工具拼接;
  2. OceanBase Cloud 云服务版:商业版本以 SaaS 形式在公有云(包括阿里云、AWS 等)提供托管集群,带有自动化运维、弹性扩缩容、备份恢复等能力;社区版需要用户自行搭建和运维;
  3. 商业级技术支持 SLA:商业版提供 7×24 小时技术支持、原厂现场支持、版本补丁的长周期维护;社区版依赖公开的 Issue 渠道和社区志愿者响应;
  4. 特定高级功能:商业版包含若干企业场景下的增量特性,例如并行 DDL、高级压缩算法、细粒度的资源隔离、审计合规增强等——这些特性的具体清单以官方产品文档为准。

1.4.2 版权持有人不受 Copyleft 约束

一个关键的法律事实是:版权持有人本身不受自己发布的许可证约束。蚂蚁集团作为 OceanBase 代码的版权持有者(外部贡献者需通过 CLA 将贡献的版权授予或广泛授权给蚂蚁集团),可以在不遵守 MulanPubL-2.0 的前提下,向特定客户授予完全不同的商业授权。

这使得双许可模式在法律上成立:

1.4.3 与 MySQL 双许可模式的对比

OceanBase 的双许可模式与 MySQL 的历史模式高度相似:

维度 MySQL(Oracle) OceanBase(蚂蚁集团)
开源版协议 GPLv2 MulanPubL-2.0
商业版协议 商业授权(Oracle 合同) 商业授权(蚂蚁合同)
版权归属 Oracle Corporation 蚂蚁集团
CLA 要求 需签 Oracle Contributor Agreement 需签蚂蚁的 CLA
主要商业模式 企业订阅 + 支持 企业订阅 + OceanBase Cloud
衍生分支 MariaDB(GPL 社区分支) 暂无显著的独立分支

两者的共通点在于:

差异在于:MySQL 在 Oracle 收购后引发社区对”单一公司控制”的担忧,催生了 MariaDB 这一 GPL 分支;而 OceanBase 开源至今时间较短,尚未出现显著的第三方分支,双许可模式的长期稳定性仍有待观察。


二、中国开源数据库协议选择时间线

把中国主要开源数据库产品放在时间轴上观察,可以更清晰地看到协议选择的演化规律。

2.1 完整时间线表格

时间 数据库 协议变化 说明
2016 年 TiDB 开源 Apache 2.0 PingCAP 从第一天起就选择 Apache 2.0,服务国际化战略
2017 年 Apache Doris(原 Palo)开源 Apache 2.0 百度开源 Palo(后更名 Doris)
2018 年 Apache Doris 进入 ASF 孵化器 Apache 2.0 走基金会路线,版权逐步转移至 ASF
2019 年 Apache IoTDB 进入 ASF 孵化器 Apache 2.0 清华大学软件学院捐赠
2019 年 TiKV 捐赠 CNCF Apache 2.0 后毕业为 CNCF 顶级项目
2019 年 SequoiaDB 开源服务端代码 SSPL v1 金融场景,仿 MongoDB 策略
2020 年 OpenGauss 开源 Mulan PSL v2 华为开源,宽松协议
2020 年 Apache IoTDB 毕业 Apache 2.0 ASF 顶级项目
2020 年 TiKV 毕业 Apache 2.0 CNCF 顶级项目
2021 年 OceanBase 开源 MulanPubL-2.0 蚂蚁集团开源,Copyleft 路线
2021 年 StarRocks 从 DorisDB 更名并开源 Elastic License 2.0 ELv2 重新开源
2022 年 Apache Doris 毕业 Apache 2.0 ASF 顶级项目

观察这张表,可以提取三条规律:

  1. Apache 2.0 是主流选择:TiDB、Apache Doris、Apache IoTDB、TiKV 都选择了 Apache 2.0,这与它们的国际化或基金会路线高度相关;
  2. Copyleft 类协议集中在 2021 年前后出现:OceanBase(MulanPubL-2.0)、StarRocks(ELv2)、SequoiaDB(SSPL)的共同动机是在开放代码的同时防止云厂商或竞争对手”搭便车”;
  3. 国产 Mulan 协议家族的分化:Mulan PSL v2(宽松)适合 OpenGauss 这类希望获得最大生态覆盖的产品,而 MulanPubL-2.0(Copyleft)适合 OceanBase 这类希望通过协议约束保留商业谈判空间的产品。

2.2 为何不选 AGPL:三类风险分析

值得注意的是,在所有上述产品中,没有任何一家选择 AGPL。即便目标是”防止云厂商搭便车”,中国数据库产品也普遍绕开 AGPL,原因可以从三类风险角度解释:

2.2.1 云厂商法务审查风险

AWS、Azure、Google Cloud、阿里云、腾讯云、华为云等主要云厂商的开源合规团队,普遍将 AGPL 列为高风险协议:

2.2.2 客户采购合规风险

金融机构、政府机构、央企等大型客户的采购合同中,通常对开源软件使用条款有明确约束:

2.2.3 出海融资限制

国际 VC 和 PE 在对数据库创业公司进行技术尽调(Technical Due Diligence)时,会系统审查以下项:

AGPL 产品的 SaaS 化路径被视为”复杂”,因为云服务提供商需要仔细界定哪些代码必须开源;一些投资人会直接将 AGPL 产品的估值折扣,或要求在投资后进行协议变更。这使得以出海融资为目标的中国数据库公司倾向于从一开始就避免 AGPL。

2.3 AGPL 的实际应用场景

并不是说 AGPL 完全不可用——在以下三类场景中,AGPL 仍是一个合理选择:

  1. 初创团队希望防止云厂商搭便车:产品尚未进入大型云厂商的目标清单,但团队担心未来被”白嫖”,AGPL 可以作为一道屏障;
  2. 没有出海融资计划,专注国内私有部署市场:目标客户是国内金融/政府机构的私有化部署,这些场景下客户本身不面向公网提供服务,AGPL 的网络条款不触发;
  3. 有明确商业版和 AGPL 开源版的双轨计划:类似 MongoDB(早期)、Grafana Labs(早期)、MinIO 等,通过 AGPL 开源版倒逼商业客户购买商业授权,核心收入来自商业版。

反过来说:如果目标是云厂商集成、国际化或 VC 融资,AGPL 的”防御价值”远低于它带来的”生态损失”,这正是 OceanBase、SequoiaDB 等没有选 AGPL 的根本原因——它们要么选择 MulanPubL-2.0(Copyleft 但更温和),要么直接选 SSPL(更激进但明确针对云厂商)。


三、TiDB:Apache 2.0 的出海战略

3.1 TiDB 的协议选择历程

TiDB 由 PingCAP 于 2016 年开源,从项目初始就采用 Apache 2.0 许可证(TiKV 同样采用 Apache 2.0,后捐赠给 CNCF)。这一选择在当时的中国数据库生态中具有前瞻性。

PingCAP 明确以”成为国际化的数据库公司”为战略目标,Apache 2.0 的选择直接服务于这一目标:

  1. 云厂商集成无障碍:AWS、Google Cloud、Azure 等可以将 TiDB 作为托管服务提供,无需开源自己的服务层代码,降低了生态合作门槛;
  2. OSI 认证,法务红线低:Apache 2.0 是 OSI 认证的许可证,在大多数企业的法务审查中不存在使用限制;
  3. 专利授权条款:Apache 2.0 包含显式专利授权,贡献者自动向用户授予必要专利的无偿许可;
  4. 出海无政治负担:相比木兰许可证(中文主体),Apache 2.0 在国际合作伙伴和投资人层面更容易被接受。

3.2 PingCAP 的双轨收入模式

与许多开源数据库公司类似,PingCAP 采用”开源 + 商业支持/云服务”的双轨模式:

这一模式中,Apache 2.0 是实现”让尽可能多的团队采用 TiDB”的工具,商业版和云服务是实现收入的机制。

3.3 TiKV 进入 CNCF

TiKV(TiDB 底层的分布式键值存储)于 2019 年捐赠给 CNCF(云原生计算基金会),并于 2020 年从 CNCF 孵化器毕业成为顶级项目。这一举措使 TiKV 获得了更广泛的国际社区认可,并与 Kubernetes 生态深度绑定。

从协议角度,TiKV 在 CNCF 下仍然采用 Apache 2.0,CLA 签署由 CNCF 统一管理。这是中国公司通过国际基金会扩大技术影响力的典型路径。


四、Apache Doris 与 StarRocks:同源分叉的协议分化

4.1 Apache Doris 的基金会路线

Apache Doris(原百度 Palo)是百度于 2017 年开源的 MPP(大规模并行处理)分析型数据库,2018 年捐赠给 Apache 软件基金会,在孵化器中运行,2022 年 5 月从 Apache 孵化器正式毕业成为 Apache 顶级项目。

协议:Apache 2.0(由 ASF 统一管理)

Apache Doris 走基金会路线的工程含义:

  1. 版权归属于 Apache 软件基金会(通过 ICLA/CCLA 流程,贡献者将版权授予 ASF);
  2. ASF 持有”Apache Doris”商标;
  3. 任何公司(包括百度)不能单独主导项目的治理决策,需遵循”Apache Way”;
  4. 由于 ASF 受美国 EAR 约束,ASF 需要对出口合规进行审查(见本系列第 19 篇)。

百度选择将 Doris 捐给 ASF 而非在国内自建基金会,主要动因是 ASF 品牌的国际公信力,以及通过 ASF 生态吸引国际贡献者和用户。

4.2 StarRocks:从闭源到 ELv2

StarRocks 的历史是一段典型的”开源、闭源、再开源”的协议演化案例:

阶段一(2021 年以前):StarRocks 的前身是 DorisDB,由原百度 Doris 团队部分成员成立的商业公司(硅谷 StarTree 和上海飞轮科技)基于 Apache Doris 代码开发。初始版本以闭源商业软件形式发布。

此举在开源社区引发争议:DorisDB 是否可以基于 Apache Doris(Apache 2.0)代码开发闭源产品?从协议角度,答案是可以的——Apache 2.0 明确允许闭源衍生产品。但社区对此仍有情感层面的不满,部分 Apache Doris 贡献者认为这违背了开源精神。

阶段二(2022 年):公司将产品更名为 StarRocks,并宣布将 StarRocks 以 Elastic License 2.0(ELv2) 重新开源,代码托管于 GitHub(StarRocks/starrocks)。

阶段三(2024 年):根据公开报道,StarRocks 公司(在美国注册为 CelerData Inc.)继续推进 StarRocks 开源社区建设,并在探索是否进一步调整协议以进入 Apache 基金会等路径(具体进展以官方公告为准)。

4.3 Elastic License 2.0 的核心限制

Elastic License 2.0(ELv2)不是 OSI 认证的开源许可证。其核心限制条款是:

  1. 禁止将产品作为托管服务(Managed Service)提供给第三方:即不允许云厂商基于 StarRocks 代码向外部用户提供”数据库即服务(DBaaS)“;
  2. 禁止绕过许可证保护机制:不得修改许可证本身或移除许可证限制;
  3. 允许内部使用和学习研究:企业可以在内部部署 StarRocks 用于自身业务,不受上述限制。

ELv2 的设计初衷与 Elastic 公司(Elasticsearch)面对 AWS 提供 Amazon Elasticsearch Service 时的抉择一脉相承——通过许可证防止云厂商”搭便车”,同时保持代码的公开可见性。

工程影响:使用 ELv2 软件的企业内部 IT 团队通常不受限制,但如果是数据库服务提供商、多租户 SaaS 平台等”实质上是向第三方提供托管数据库服务”的场景,则需要获得商业许可。

4.4 StarRocks 与 Apache Doris 的 Fork 关系详解

StarRocks 与 Apache Doris 的关系是中国开源数据库生态中最具代表性的”同源分叉”案例。理解这段历史,有助于判断协议选择如何影响下游社区结构。

3.4.1 起源:DorisDB 的团队构成

DorisDB(后更名 StarRocks)由原百度 Doris 团队的部分核心成员离职创立。核心团队成员在百度任职期间是 Apache Doris 的主要贡献者,离职后选择以独立商业公司的形式继续发展 Doris 的衍生产品。

由于 Apache Doris 已经以 Apache 2.0 协议开源,DorisDB/StarRocks 基于该代码库开发衍生产品在协议层面完全合法:Apache 2.0 明确允许闭源衍生、商业化、修改后重新发布,只要保留原始版权声明和 NOTICE 文件即可。

3.4.2 社区争议的三个层面

尽管协议上合法,DorisDB 的路径在 Apache Doris 社区内引发了较大的争议,主要集中在三个层面:

  1. 协议合法性 vs 社区道德

    • 协议上:Apache 2.0 完全允许闭源衍生,这是 Apache 2.0 相对 GPL 的一大特点;
    • 社区道德层面:原 Apache Doris 贡献者认为,拿基金会项目的代码构建闭源商业竞品,在”开源精神”层面存在争议;
    • Apache Doris PMC 曾通过官方渠道对此行为的立场发表过声明,强调原社区的独立发展路径。
  2. 人才分流:核心贡献者的离职,对 Apache Doris 社区的代码产出和 PMC 多元化带来了短期冲击;Apache Doris 社区需要吸收新的工业界贡献者来弥补。

  3. 品牌混淆风险:DorisDB 早期的名字容易让用户混淆其与 Apache Doris 的关系。2021 年更名为 StarRocks 后,品牌边界变得清晰。

3.4.3 2022 年 StarRocks 选择 ELv2 的战略分析

StarRocks 在 2022 年选择 Elastic License 2.0 重新开源,是一次典型的”防守型开源”决策:

3.4.4 代码兼容性与技术分化

StarRocks 与 Apache Doris 在查询层的 SQL 方言和基础语法高度相似,很多用户可以在两者之间以较小的迁移成本切换。但随着时间推移,两者的存储引擎、执行引擎、优化器实现已经发生了较大的分化:

3.4.5 用户选择的实际影响

对于需要在两者之间选型的用户,协议差异带来的实际影响包括:

4.5 Apache Doris 在 ASF 孵化器的毕业过程

Apache Doris 从 2018 年进入 ASF 孵化器,到 2022 年 5 月毕业为 Apache 顶级项目,历时近四年。这段时间内,项目在三个方面进行了系统性调整。

3.5.1 PMC 多元化

ASF 的核心治理原则是”社区胜于代码”(Community over Code),对 PMC 构成的多元化有明确要求:

3.5.2 代码许可证清理

孵化期间,ASF IP Clearance 流程要求项目对整个代码库的许可证状况进行清理:

这一过程通常持续数个版本,是孵化器毕业评审中的关键项之一。

3.5.3 CLA 签署规范化

ASF 要求所有个人贡献者签署 ICLA(Individual Contributor License Agreement),公司贡献者签署 CCLA(Corporate Contributor License Agreement)。Apache Doris 在孵化期间建立了完整的 CLA 签署流程:

3.5.4 2022 年 5 月毕业评审要点

ASF 孵化器毕业的 board report 通常评估以下项,Apache Doris 毕业时均满足:

3.5.5 Apache Way 对 PMC 多元化的具体要求

ASF 没有硬性规定”PMC 中某一公司的比例不得超过 X%“,但在孵化器毕业评审时,Mentor 和 IPMC(Incubator PMC)会从以下角度综合判断:

对于百度这样的原始捐赠公司,典型的期望是”从主导转为深度参与”——继续投入核心开发资源,但不单方面决定项目方向。


五、Apache 基金会毕业标准与中国数据库的毕业之路

5.1 ASF 孵化器毕业标准

Apache 软件基金会的孵化器毕业流程有一套相对明确的检查项,不同项目的具体通过路径虽有差异,但核心标准可以归纳为五类:

5.1.1 PMC 多元化

5.1.2 代码清洁度

5.1.3 社区健康

5.1.4 基础设施独立性

5.1.5 LEGAL/NOTICE 文件规范

5.2 中国数据库毕业案例对比

项目 进入孵化器 毕业时间 毕业时 PMC 多元化程度 关键挑战
Apache Doris 2018 年 2022 年 5 月 已有非百度背景的 PMC 成员,覆盖多家互联网公司 PMC 多元化、代码许可证清理、第三方依赖替换
Apache IoTDB 2019 年 2020 年 清华为主,逐步吸纳工业界成员 毕业相对较快,学术背景贡献者稳定
TiKV(CNCF 路线) 2019 年 2020 年(CNCF 毕业) 有 PingCAP 之外的企业贡献者 CNCF 毕业标准不同于 ASF,更看重云原生集成和生产部署案例

三个项目的对比揭示了几点:

5.3 SequoiaDB SSPL 路线的教训

与走 ASF/CNCF 路线的项目不同,SequoiaDB 选择了 SSPL 开源路线。几年过去,这条路线在市场层面暴露出若干问题,可以作为反向教材。

5.3.1 SSPL 在云厂商法务层面的实际拦截效果

SSPL 对云厂商的设计目的是”如果你想把这个软件作为 SaaS 卖出去,你必须公开你的整个服务层代码”。在实践中:

5.3.2 国内云厂商对 SSPL 产品的态度

5.3.3 SequoiaDB 的市场局限

SequoiaDB 的实际市场分布呈现出明显的聚集特征:

这和金融行业本身的”私有化优先”采购习惯有关,但同时也说明 SSPL 在面向公有云场景时的确构成明显的市场壁垒。

5.3.4 对比教训

对比 OceanBase 与 SequoiaDB:

结果:OceanBase 在蚂蚁自身的云服务(OceanBase Cloud)之外,也获得了其他云厂商的合作机会;SequoiaDB 则主要依赖自身渠道和金融行业定制项目。

5.4 Apache IoTDB 走 ASF 路线的特殊性

在中国数据库项目中,Apache IoTDB 是少有的由高校学术团队主导进入 ASF 的项目,其路径选择有若干特殊性。

5.4.1 学术机构的治理契合

5.4.2 商业公司独立运营

天谋科技(TimechoDB)是基于 Apache IoTDB 提供商业版本和企业支持的独立公司,其与 ASF 项目的关系类似于 Cloudera/Hortonworks 与 Apache Hadoop:

5.4.3 国际学术引用价值

Apache 顶级项目的身份对学术论文合作有明显价值:


六、双许可模式(Dual Licensing)工程分析

双许可模式是中国开源数据库生态中被广泛使用但常被简化理解的商业模式。本节系统地分析其法律基础与工程实践。

6.1 双许可模式的法律基础

6.1.1 版权持有人的权利

6.1.2 对版权归属的要求

双许可模式要求版权归属于单一实体(或统一授权的多个实体),否则发布商业版时会陷入法律困境:

6.1.3 CLA 的作用

贡献者许可协议(Contributor License Agreement,CLA)有两种常见形态:

对于 GPL+商业版这类双许可项目,CLA 是法律上的必要条件——没有 CLA,项目所有方无法获得”以不同协议重新发布贡献代码”的权利。

6.2 OceanBase 双许可实践

OceanBase 的双许可实践是中国数据库中的典型范例。

6.2.1 授权结构

6.2.2 版权归属

6.2.3 商业版授权流程

典型的商业授权流程包括:

  1. 客户提出商业授权需求(通常是希望闭源二次开发,或希望规避 MulanPubL-2.0 的网络部署条款);
  2. 蚂蚁团队评估客户场景(部署规模、使用方式、是否涉及网络服务);
  3. 签订商业授权合同(包含授权范围、技术支持级别、合规条款);
  4. 客户获得非 MulanPubL-2.0 的授权凭证,可以按合同条款自由闭源使用。

6.3 PingCAP TiDB 的”开源 + 云服务”模式

PingCAP 的商业模式与 OceanBase 的双许可不同——它是开放核心(Open Core)模式的一种变体。

6.3.1 模式差异

6.3.2 盈利路径

6.3.3 相对双许可的优势

6.3.4 相对双许可的挑战

6.4 MySQL 双许可模式的历史参照

MySQL 是双许可模式在数据库领域最经典的案例,其历史对理解中国数据库的选择有参考价值。

6.4.1 历史阶段

6.4.2 MariaDB 对 MySQL 的意义

6.4.3 与 OceanBase 的对比

6.5 选择双许可的工程建议

对于正在考虑采用双许可模式的数据库或中间件项目,以下工程建议来自公开实践经验:

6.5.1 CLA 设计

6.5.2 贡献者体验

6.5.3 律所参与


七、Apache IoTDB:清华大学的学术开源路线

7.1 项目背景

Apache IoTDB(物联网数据库)起源于清华大学软件学院的研究项目,针对时序数据的存储与查询进行了专项优化(列式存储、时间序列压缩算法、SQL-like 查询接口)。项目于 2019 年进入 Apache 孵化器,2020 年正式毕业为 Apache 顶级项目。

协议:Apache 2.0

商业化:天谋科技(TimechoDB 公司)基于 Apache IoTDB 提供商业版本和企业支持服务,与 Apache IoTDB 的关系类似于 Cloudera/HortonWorks 与 Apache Hadoop。

7.2 学术项目走基金会路线的特点

清华大学选择 Apache 基金会路线(而非国内基金会)具有多重考量:

  1. 国际学术认可:Apache 顶级项目的身份在国际学术界具有较高认可度,有助于吸引国际合作者和论文引用;
  2. 中立治理:ASF 的中立身份避免了单一企业主导的形象,有利于多家工业界合作伙伴参与;
  3. 商业公司的独立性:商业公司(天谋科技)独立于 ASF 项目之外运营,专注于企业特性和技术支持,符合 ASF 的治理要求。

7.3 学术项目开源的一般性建议

基于 Apache IoTDB 的经验,学术机构发起的数据库项目走开源路线时可以参考以下几点:


八、SequoiaDB:SSPL 策略与云市场局限

8.1 SequoiaDB 的 SSPL 选择

SequoiaDB(巨杉数据库)是广州巨杉软件开发有限公司开发的 NoSQL/NewSQL 数据库,面向金融行业的分布式事务场景。2019 年,SequoiaDB 将服务端代码以 SSPL v1(Server Side Public License) 开源。

SSPL 由 MongoDB Inc. 设计,是 AGPLv3 的加强版,核心条款是:

如果你修改了 SSPL 软件并将其作为服务提供,你必须以 SSPL 许可证开放为提供该服务所使用的所有代码,包括管理、监控、部署、配置等相关服务层代码。

这一条款比 AGPL 更激进:AGPL 要求开放”通过网络交互”的软件本身,SSPL 则要求开放整个”运营该软件所需的服务层代码”。

8.2 SSPL 对云厂商的影响

SSPL 的实践效果和 MongoDB 的经验一致:

8.3 SequoiaDB 在云市场的局限

受 SSPL 的限制,SequoiaDB 在主流国际云市场的集成度明显低于 Apache 2.0 竞品:

SequoiaDB 的策略选择与其目标市场(金融行业定制部署)有一定匹配性——金融机构通常倾向于私有化部署,对云市场的依赖程度较低;但对于希望进入广泛云生态的产品,SSPL 是一个明显的市场障碍。


九、为什么国内数据库偏爱 Apache 2.0

9.1 商用友好,云厂商积极集成

Apache 2.0 是目前对商业应用最友好的开源许可证之一,允许任何形式的使用、修改和分发(包括闭源商业产品和云服务)。对于希望进入云市场的数据库产品,Apache 2.0 可以显著降低云厂商集成的法务障碍。

从生态效应看,一旦被主流云厂商(AWS、Azure、GCP、阿里云、腾讯云、华为云)集成为托管服务,产品的用户获取成本大幅降低,同时市场知名度快速提升。

9.2 基金会治理的公信力

对于需要出海或与国际合作伙伴合作的项目,加入 Apache 软件基金会或 CNCF 可以显著提升项目的国际公信力:

9.3 避免 AGPL/SSPL 的法务审查红线

国内数据库产品通常将”进入云市场”和”与国际投资人合作”列为重要目标,这两个场景对协议有明显的隐性要求:

这一”避免 AGPL/SSPL”的倾向不是中国独有的,而是全球范围内商业化开源数据库项目的普遍策略(参见 CockroachDB 从 BSL 变更为 Apache 2.0 的讨论、HashiCorp 因改为 BSL 而引发社区分裂的案例)。

此外值得一提的是,即便是 Elastic 和 Redis 这类国际知名项目,在选择 SSPL/RSAL 后也都引发了社区 Fork(OpenSearch、Valkey),最终迫使协议选择回到更宽松的方向。这对中国数据库项目的启示是:Copyleft 激进协议在现实市场中的”防御价值”往往被高估,而它带来的生态损失相对容易被低估。

9.4 出海无障碍

Apache 2.0 作为 OSI 认证的标准开源许可证,在全球绝大多数法律体系和商业环境中均被广泛接受。对于以”出海”为战略目标的数据库产品,Apache 2.0 规避了以下潜在障碍:


十、协议选择的决策框架

10.1 场景判断矩阵

对于正在考虑开源或更换许可证的数据库产品团队,以下矩阵提供了初步参考:

主要目标 推荐协议 不推荐协议
进入国际云市场(AWS/Azure/GCP) Apache 2.0 SSPL、AGPL、MulanPubL-2.0
防止云厂商”搭便车” SSPL / AGPL / ELv2 / BSL Apache 2.0
国内政企信创合规 Apache 2.0 / MulanPSL v2
国际基金会治理 Apache 2.0(ASF/CNCF) SSPL、MulanPubL
商业双轨(开源+商业版) Apache 2.0 / BSL SSPL(用户接受度差)
鼓励社区贡献回流 AGPL / MulanPubL-2.0 / GPL Apache 2.0(无强制回流)

10.2 引用第三方数据库产品的合规注意事项

企业在技术栈中引入第三方数据库时,协议层面的关注点包括:

协议 内部使用 闭源商业产品集成 作为 SaaS 提供
Apache 2.0 ✅ 无限制 ✅ 无限制 ✅ 无限制
MulanPSL v2 ✅ 无限制 ✅ 无限制 ✅ 无限制
MulanPubL-2.0 ✅ 内部无限制 ⚠️ 修改后分发需开源 ⚠️ 修改后网络提供服务,需评估
AGPL v3 ✅ 内部无限制 ⚠️ 静态链接可能触发 ⚠️ 修改后需开源服务端代码
SSPL v1 ✅ 内部无限制 ⚠️ 作为服务层一部分分发需评估 ❌ 实质托管服务需开源整个服务层
Elastic License 2.0 ✅ 内部无限制 ✅(非竞争性托管服务) ❌ 禁止作为托管服务向第三方提供

10.3 自研数据库开源时的协议选择路径图

对于正在考虑将自研数据库开源的团队,下面的决策路径可以作为协议选择的参考。

10.3.1 第一步:主要市场定位

询问:产品的主要市场是国内还是国际?

10.3.2 第二步:基金会归属

询问:是否希望加入国际基金会?

10.3.3 第三步:云厂商集成策略

询问:产品是否有云厂商集成需求?

10.3.4 综合决策矩阵

把三步综合起来,可以得到如下典型组合:

国内/国际 基金会 云集成 推荐协议 对应案例
国际为主 ASF/CNCF Apache 2.0 TiDB、Apache Doris、TiKV
国际为主 自主运营 Apache 2.0 + 商业服务 PingCAP Cloud 模式
两者兼顾 自主运营 Apache 2.0 + 商业版双轨 Open Core 模式
国内为主 开放原子 Mulan PSL v2 OpenGauss
国内为主 自主运营 MulanPubL-2.0 + 商业版 OceanBase
防云厂商为主 自主运营 ELv2 或 SSPL StarRocks(ELv2)、SequoiaDB(SSPL)

十一、工程坑点

11.1 MulanPubL-2.0 与 GPL 的兼容性问题

MulanPubL-2.0 是 Copyleft 协议,但与 GPLv2/GPLv3 的兼容性尚未得到广泛验证。如果系统中同时存在 MulanPubL-2.0 组件和 GPL 组件,理论上存在许可证兼容性问题(两者都要求衍生作品以相同协议发布,可能产生冲突)。

在实践中,工程团队应避免将 MulanPubL-2.0 组件与 GPL 组件在同一可执行文件或动态库中混用,或在使用前进行专项法务评估。

典型的冲突场景:

11.2 “Apache Way”的贡献门槛

将项目捐赠给 ASF 后,项目必须遵循”Apache Way”的治理规范,包括:

这对于习惯于公司内部快速决策的团队是一个显著的流程约束。Apache Doris 在毕业过程中也经历了多轮 PMC 多元化的调整。

实践中常见的 Apache Way 适应难点:

11.3 ELv2 的”托管服务”边界

ELv2 中”提供托管服务(Hosted Service)“的边界在实践中并不总是清晰的。以下场景存在灰色地带:

11.4 CLA 签署流程对外部贡献者的影响

无论是走 ASF 路线还是走双许可模式,CLA 的实施都可能对外部贡献意愿产生可观察的负面影响:

缓解措施:

11.5 协议变更的工程影响

一些项目在成长过程中会考虑变更许可证(如 CockroachDB 从 Apache 2.0 改为 BSL,HashiCorp 从 MPL 改为 BSL),协议变更的工程成本不可忽视:


十二、选型建议

12.1 企业内部使用

建议在引入新的开源数据库时建立以下最小合规检查清单:

  1. 确认协议类型(Apache 2.0 / MulanPSL / MulanPubL / SSPL / ELv2 / AGPL);
  2. 检查项目是否来自基金会(ASF / CNCF / 开放原子),若是则合规成本较低;
  3. 确认是否存在修改需求,若有,评估是否触发 Copyleft;
  4. 评估未来 12-24 个月内该数据库是否可能暴露为对外服务;
  5. 在公司 SBOM(软件物料清单)中记录该组件的协议信息。

12.2 构建对外产品或服务

对外产品形态与协议选择的对应关系:

对外产品形态 推荐协议组合 需规避的协议
本地软件销售 任意开源协议(含 Copyleft)
云 SaaS 产品 Apache 2.0 / MIT / BSD SSPL、AGPL
混合部署(公有云 + 私有化) Apache 2.0 优先 SSPL
企业定制解决方案(MSP) Apache 2.0 / MulanPSL ELv2(除非商业授权)

12.3 数据库产品开发商的协议选择

从长期演化角度看,数据库协议选择的几个额外建议:

  1. 协议可变,代码难变:优先选择可以向更宽松方向变更的协议(例如从 Apache 2.0 变 BSL 可行,从 GPL 变 Apache 2.0 几乎不可行),给未来留出空间;
  2. CLA 从第一天建立:即便一开始选择纯 Apache 2.0,也建议通过 CLA 集中版权,这为未来可能的协议调整保留灵活性;
  3. 不要假设协议能阻止竞争:协议只是”合规层面的门槛”,真正的竞争壁垒来自产品的工程质量、生态建设和商业运营能力;
  4. 避免”既要又要”:SSPL/AGPL 既想获得开源生态又想阻止云厂商,实际效果是两头都不讨好——要么选 Apache 2.0 拥抱生态,要么直接闭源(Source Available),混合方案通常效果不佳。

12.4 协议迁移的决策时机

如果项目已经开源,但希望在未来变更协议,以下时机判断值得参考:

因此最佳实践是:在项目早期就慎重选择协议,而不是依赖后期调整。

12.5 小结

协议选择是一项兼具法律属性与商业属性的工程决策。本文所讨论的几类典型中国数据库产品——OceanBase、TiDB、Apache Doris、StarRocks、Apache IoTDB、SequoiaDB——在协议选择上呈现的分化,实际上对应着它们各自不同的市场定位、商业模式与治理目标:

对后来者的启示是:协议不是目的,而是服务于战略的工具。在决策前清晰回答”我的市场在哪里、我靠什么赚钱、我希望谁参与社区”,协议选择就会变得自然。


本文为工程参考,不构成法律意见。涉及具体法律风险请咨询专业法律顾问。本文所述事件均来自公开报道与公开判决书,如有偏差以官方渠道为准。

参考资料

  1. OceanBase GitHub 及许可证:github.com/oceanbase/oceanbase;MulanPubL-2.0 文本:license.coscl.org.cn/MulanPubL-2.0
  2. OceanBase 开源公告(蚂蚁集团官方博客,2021 年 6 月):OceanBase 宣布开源,代码托管于 GitHub,采用 MulanPubL-2.0 协议
  3. TiDB GitHub(Apache 2.0):github.com/pingcap/tidb
  4. TiDB GitHub Release 历史:github.com/pingcap/tidb/releases(v1.0 GA 公告发布于 2017 年)
  5. Apache Doris 官网:doris.apache.org
  6. Apache Doris 毕业公告(ASF 官网,2022 年 5 月):blogs.apache.org/foundation(The Apache Software Foundation Announces Apache Doris™ as a Top-Level Project)
  7. StarRocks GitHub 及 ELv2 说明:github.com/StarRocks/starrocks
  8. StarRocks ELv2 开源声明(GitHub 仓库 LICENSE 文件与公司官方博客,2022 年)
  9. Apache IoTDB 官网:iotdb.apache.org
  10. SequoiaDB 官网及 SSPL 说明:sequoiadb.com
  11. Elastic License 2.0 文本:elastic.co/licensing/elastic-license
  12. SSPL v1 文本(MongoDB):mongodb.com/licensing/server-side-public-license
  13. OSI 对 SSPL 的评估说明:opensource.org/node/1099
  14. OpenGauss 官网及 MulanPSL v2:opengauss.org
  15. TiKV 加入 CNCF 公告:cncf.io/announcements/2019/05/21/tikv-accepted-as-a-cncf-incubating-project
  16. TiKV 毕业为 CNCF 顶级项目:cncf.io/announcements(2020 年 TiKV Graduation 公告)
  17. Apache 软件基金会孵化器流程:incubator.apache.org
  18. ASF 孵化器毕业指南:incubator.apache.org/guides/graduation.html
  19. Apache ICLA/CCLA 文本:apache.org/licenses/contributor-agreements.html
  20. MongoDB SSPL 发布说明与 AWS 对应回应(公开新闻,2018-2019 年)
  21. CockroachDB 协议变更公开说明:CockroachDB 从早期的 Apache 2.0 切换至 BSL(2019 年),后续路线以官方公告为准:cockroachlabs.com/blog
  22. HashiCorp 协议变更(Apache 2.0 → BSL,2023 年)及 OpenTofu 分支事件:hashicorp.com/blog
  23. MariaDB 基金会关于 MySQL 分支的背景说明:mariadb.org
  24. Elastic 从 Apache 2.0 切换至 SSPL/ELv2 的官方声明(Elastic Blog,2021 年):elastic.co/blog
  25. OpenSearch(AWS Fork 自 Elasticsearch)公告:opensearch.org
  26. Redis 协议变更至 RSAL/SSPL 双许可及 Valkey 分支事件(Linux Foundation,2024 年):linuxfoundation.org
  27. 木兰开源社区(OpenAtom)关于 Mulan 协议家族的官方说明:license.coscl.org.cn

上一篇OpenHarmony 与开放原子基金会:大厂捐赠意味着什么

下一篇中国 GPL 诉讼第一案系列:数字天堂、不乱买、罗盒

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-22 · architecture / opensource

开源许可与版权工程

面向中国工程团队的开源许可、版权与合规系列。从 GPL、AGPL、Apache、木兰协议到中国真实案例、SCA/SBOM 工具链与出海合规,讲清楚开源在工程落地中的坑与方法。


By .