InfoQ 研究中心诚意出品,一份报告带你走进中国 2000 万开发者 了解详情
写点什么

不再是开源产品,分布式数据库 CockroachDB 修改代码授权协议

  • 2019-06-06
  • 本文字数:2133 字

    阅读完需:约 7 分钟

不再是开源产品,分布式数据库CockroachDB修改代码授权协议

2019 年 6 月 4 日,CockroachDB 官方博客更新了一篇名为《Why We’re Relicensing CockroachDB》的文章,文中指出:CockroachDB 核心代码的授权协议将从 Apache License version 2 (APL)变更为 Business Source License(BSL)。


CockroachDB 是一款分布式数据库,其思路源自 Google 的全球性分布式数据库 Spanner。CockroachDB 既具有 NoSQL 对海量数据的存储管理能力,又保持了传统数据库支持的 ACID 和 SQL 等,还支持跨地域、去中心、高并发、多副本强一致和高可用等特性。支持 OLTP 场景,同时支持轻量级 OLAP 场景。


CockroachDB 修改开源协议

据 CockroachDB 官方博客称,CockroachDB 的核心代码授权协议将采用 BSL,用户可以将 CockroachDB 扩展到任意数量的节点,可以随意使用 CockroachDB,也可以将其嵌入到应用程序中(无论是将这些应用程序发送给客户,还是将其作为服务运行),甚至可以在内部将 CockroachDB 作为服务运行。唯一不能做的事情是,在没有购买许可证的情况下,提供商业版 CockroachDB 作为服务。


但好消息是该限制并不是无限期的,而是有失效性的:CockroachDB 每个版本在发布三年之后,许可证将转换为 APL。CockroachDB 官方表示,之所以会设置时间限制的再许可,主要有两个目的,一是想要创建一个具有竞争力的数据库即服务(DBaaS),二是为了保证核心产品是纯粹的开源产品。


更改协议的原因

从首次出现在 GitHub 上,CockroachDB 一直走的是比较典型的开源路线,即核心代码保存在 Apache 2.0 许可证之下,启动了托管服务,并根据企业许可证为已建立的公司提供一些功能。为什么突然就转变路线,想要变更协议呢?


变更协议的主要原因是 CockroachDB 团队对于开源商业模式有了重新的认识,之前他们认为公司可以基于强大的开源产品来建立业务,并不需要其它更大的技术平台,提供相同的产品即服务。现在,他们发现现行法律允许竞争对手提供其它公司的 OSS 产品即服务,而这一举动伤害到了原本的开源产品。


前段时间,AWS 推出的 Elasticsearch 开源发行版就是一个典型案例,该 Elasticsearch 发行版不仅可以作为免费软件来使用,同时还将提供 Elastic 只向付费客户提供的高级功能,例如传输加密、用户身份验证、详细审计、基于角色的细粒度访问控制、事件监控和警报、深度性能分析和 SQL 支持等。


在博客中,CockroachDB 团队表示这次软件许可条款的更改就是为了回应这一类竞争对手。事实上,开源软件和云厂商的矛盾早已存在,之前 Redis Labs、Confluent 和 MongoDB 等公司先后修改了开源协议,并明确表示修改的原因是阻止像 AWS 这样的大型云服务提供商将其开源软件作为一项服务来接受和销售。


在这场交锋中,双方都在朝着更加“利己”的方向改变策略,例如越来越多的开源产品转向更强势的许可方式,而云厂商针对新的许可方式也有自己的应对方法,例如自研兼容开源产品的相关产品、推出相应的增强开源发行版等等。


关于 BSL 协议

CockroachDB 更改为的 BSL 协议到底是什么?BSL 全称是 Business Source License,它不是一个开源协议,用户虽然可以拿到源代码,但是使用时会受限。使用 BSL 协议的软件在发布的最多 4 年之后(开发者可在协议中自定义开源时间)会将协议变更为开源协议,也就是说,使用 BSL 协议的软件,最终都会变成开源软件。


BSL 协议是在经历了 MySQL 被收购之后,MariaDB 公司新定义的一种协议,是开源软件与商业公司对抗的一次新的探索。它介于开源和闭源之间,在非生产环境中,BSL 协议的软件可以不受限制的使用,如果用于商业目的,那么会有所限制。


协议变更后的 CockroachDB

BSL 许可证应用于 CockroachDB 的核心版本(即目前在 Apache 2.0 许可证下的代码),这意味着 CockroachDB 核心不再开源,但完整的源码仍然可用,除了构建 DBaaS 之外,也允许用于其它商业用途。对于绝大多数用户来说,CockroachDB 仍然可被自由使用,而且三年之后就又变成无任何附加条件的开源产品。


CockroachDB 数据库从 19.2 版本开始重新授权,企业功能继续沿用 Cockroach Community License (CCL),使用企业功能需要与 Cockroach Labs 签订许可协议,并且此许可证在三年之后不会转换为开源。而之前的版本不受此许可证更改的影响,即 CockroacheDB 19.1 仍使用 APL,19.1.x 系列中当前和将来的所有补丁版本也将使用 APL。


具体来说,CockroachDB 19.2(暂定 2019 年 10 月)是使用新许可方案的第一个版本,它包括在 BSL 和 CCL 许可下的代码。2022 年 10 月(发布三年后),CockroachDB 19.2 中 BSL 下的部分代码将转换为 APL,补丁版本也会随之转变为 APL。其它版本的协议转换时间以此类推,例如 CockroachDB 20.1 计划在 2020 年 4 月发布,于 2023 年 4 月成为开源软件。



开源和商业的关系绝不是简单的对立:没有开源的基础技术是没有生命力,很难被广泛应用;而商业体现了开源项目的价值,也反向推动了开源项目的发展和生态的建立。所以,开源项目如何在开源和商业找到一个平衡点,是很多开源团队在思考的问题,希望 CockroachDB 团队的尝试能够给大家更多启发。


相关文章:


敲山震虎?继 MongoDB 之后,AWS 又对 Elasticsearch 下手了


玩大了,开源协议修改引发 MongoDB“大动荡”?


Kafka 团队修改 KSQL 开源许可,怒怼云厂商


AWS 回击了:推出兼容 MongoDB 的 DocumentDB


2019-06-06 07:008952
用户头像

发布了 497 篇内容, 共 273.2 次阅读, 收获喜欢 1815 次。

关注

评论

发布
暂无评论
发现更多内容

物联网数据分析(上篇)——业务系统架构类

阿里云AIoT

阿里云 数据分析 物联网 业务架构 数据存储

以开发之名|线上家装新美学——梦想之家,由你来定

HMS Core

AR HMS Core

前端工程师leetcode算法面试必备-二分搜索算法(上)

js2030code

JavaScript LeetCode

云渲染是CG的最后一道工序,四个特性让你的渲染更高效

Finovy Cloud

云渲染 云渲染农场

JavaScript刷LeetCode拿offer-双指针技巧Medium篇

Geek_07a724

JavaScript LeetCode

MongoDB源码学习:mongod如何处理请求

云里有只猫

mongodb 源码学习

软件测试面试真题 | 讲讲 OSI 七层模型,每层模型具体干嘛的?

测试人

Java重点 | IO流介绍

几分醉意.

Java 编程 11月月更

一文读懂加密资产板块的盈利潜力与投资机会

石头财经

如何写成高性能的代码(三):巧用稀疏矩阵节省内存占用

葡萄城技术团队

前端 稀疏矩阵

Nginx配置中root和alias分不清?本文3分钟帮你解惑!

wljslmz

nginx 服务器 root 11月月更 alias

Baklib知识分享|企业知识管理难,该如何解决?

Baklib

鱼骨图还能做需求优先级分析?

产品海豚湾

产品经理 产品设计 产品开发 需求分析 11月月更

数据的分组与计算

向阳逐梦

Python pandas 11月月更

云原生生态 我们选择了哪些

Rayzh

Docker Kubernetes, 云原生, eBPF

透过关键基础设施安全事件谈SBOM

安势信息

Gartner SCA 软件物料清单 SBOM 清源CleanSource SCA

基于 Grafana LGTM 可观测性平台的快速构建

Grafana 爱好者

可观测性 Observability

真正的高效能RPC框架Focus

dinstone

json RPC 高性能 protobuf 跨语言

EDAS 流量入口网关最佳实践

阿里巴巴云原生

阿里云 分布式 云原生 网关

Spring Boot「21」JPA 中的 Entity

Samson

Java hibernate Spring Boot 学习笔记 11月月更

FFmpeg-ffplay播放器分析(1).md

Changing Lin

音视频 ffmpeg 安卓

Baklib经验分享 | 一些搭建帮助中心的攻略

Baklib

帮助中心

官宣 | 袋鼠云获过亿元 C + 轮融资,深耕国产自研数字化技术与服务

数栈DTinsight

前端工程师leetcode算法面试必备-二分搜索算法(下)

js2030code

JavaScript LeetCode

SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,Cordova API 检测等逻辑

Jerry Wang

前端开发 Fiori SAP UI5 ui5 11月月更

SAP UI5 和 Angular 的函数防抖(Debounce)和函数节流(Throttle)实现原理介绍

Jerry Wang

前端开发 angular Fiori ui5 11月月更

前端工程师leetcode算法面试必备-二分搜索算法(中)

js2030code

JavaScript LeetCode

TOGAF企业架构框架4-内容框架

Marvin Ma

架构 TOGAF 企业架构框架 内容框架

安全左中右·2022 XDR 网络安全运营新理念峰会圆满落幕

未来智安XDR SEC

网络安全 XDR扩展威胁检测响应

TOGAF企业架构框架5-企业连续统一体

Marvin Ma

TOGAF 企业架构框架 架构分区 企业连续统一体 架构存储库

融云钜惠来袭,新客尝鲜首月 2.7 折起,超值套餐 6 折起

融云 RongCloud

产品

不再是开源产品,分布式数据库CockroachDB修改代码授权协议_语言 & 开发_田晓旭_InfoQ精选文章