CockroachDB 是一个开源的分布式数据库,最近改变了代码授权,放弃了 Apache 许可证。

许多开源数据库这一两年都改变了授权,比如 Confluent、Elastic 、MongoDB、Redis Labs、TimescaleDB。本文分析这种现象。

一、CockroachDB 的许可证变更

CockroachDB 以前的许可证是 Apache,代码托管在 GitHub,任何人都可以访问。

现在的许可证改成了”商业源码许可证”(Business Source License,缩写 BSL)。

这段文字的意思是,三年以后的2022年10月1日,这些代码将变为 Apache 许可证,在此之前都属于商业源码许可证。多少人想用三年前的代码?因此,它实际上用 BSL 许可证取代了 Apache 许可证。


二、商业源码许可证的特点

BSL 许可证是 MariaDB 发明的,最大的特点有两个。

一是非商业性使用没有限制,商业性使用有限制。

二是许可证是模块化的,可以附加自己的条件(Additional Use Grant)。

比如,MariaDB 附加的条件是,一个项目最多只能使用两个数据库服务器实例,超过就要付费。

CockroachDB 附加的条件是,对外提供商业性的数据库服务需要付费。

简单说,商业源码许可证就是一种限制了云服务的开源许可证。


三、问题的由来

目前,许多开源数据库对云服务都有限制。这完全是由 Amazon 的 aws 云服务引起的。

aws 一直提供数据库服务,2009年推出 RDS MySQL 服务,2013年推出 PostgreSQL 服务,2015年推出 Amazon Elasticsearch 服务。大量企业购买这些服务,使得收入都向 Amazon 集中,它的 Elasticsearch 一个服务的收入已经高于原始开发商 Elastic 的所有收入。

这就相当于,开源开发者在为 Amazon 免费打工,为它创造利润。Elastic 当然很不爽,推出了付费版本。结果,Amazon 一不做二不休,把开源分支分叉了,自己把 Elastic 的所有收费功能写出来了。也就是说,Amazon 不仅拿走了利润,还创造出了一个竞争性产品。类似的情况还有,Azure 提供 MongoDB 兼容的 CosmosDB 服务。

其他开源数据库看到这种局面,都感到了云服务商的威胁,所以纷纷改变授权模式。

这里的根本问题是,云服务的出现改变了开源软件的生态。以前,开源软件有众多的使用者,会形成一个社区,从社区得到反馈和支持。现在,企业级开源软件很可能都有云服务,导致企业客户都流向了云服务商,软件自身形成不了社区,云服务商反过来会对软件产生巨大影响,许可证的变更只是抵抗云服务商的一种策略。

四、对策

目前,有三种变更许可证的策略。

第一种是采用 AGPL 许可证,任何对软件的修改(包括提供服务)都必须开源。这种策略的好处是防止云服务商对软件进行内部修改,坏处是不够灵活,可能打击企业采用该软件的积极性。

第二种是产品分层策略,同时提供免费的社区版和收费的企业版。这种策略可以保证收入,但是问题是,有些高级功能只在企业版提供,不利于软件的开源。

第三种就是 CockroachDB 的策略,软件依然开源,但是提供服务必须付费。我觉得,目前来看这种策略在开源和收费之间达到平衡,比较理想。

参考:

Cockroach and the Source Available Future, Stephen O’Grady

Why We’re Relicensing CockroachDB, Peter Mattis

Everything You Need to Know About the OSS Licensing War, Raj Dutt

修改软件许可证使用时间_阮一峰:为什么开源数据库改变许可证?相关推荐

  1. python 阮一峰_阮一峰:前端框架 React 及 CSS in JS

    作者: 阮一峰 1. 以前,网页开发有一个原则,叫做"关注点分离"(separation of concerns). 它的意思是,各种技术只负责自己的领域,不要混合在一起,形成耦合 ...

  2. 许可证密钥_如何激活和停用NVivo的许可证

    NVivo是一款支持定性研究方法和混合研究方法的软件.它可以帮助您收集.整理和分析访谈.焦点小组讨论.问卷调查.音频等内容.全新的NVivo12更可协助您处理社交媒体和网页内容.NVivo强大的搜索. ...

  3. 开源实时数据库_实时应用程序的开源数据库

    开源实时数据库 数据库世界对开源并不陌生. 实际上,许多世界顶级公司,项目和网站都在幕后运行各种开源数据库. 因为数据库的选择对可伸缩性,性能以及如何查询数据本身具有巨大的影响,所以有很多选择可以满足 ...

  4. 软件加入使用时间_【安卓】换了这么多影视软件,还是这个老牌站点最靠谱

    注LEAD意 由于公众号限制,软件狂后台自动回复数量已达上限,无法继续添加.因此,以后的软件下载地址,会放到备用号[软件狂]每天的推文中,可能是首条,也肯能是次条,还望老铁们知悉. 声明 公众号推送的 ...

  5. 软件加入使用时间_嘘......请悄悄收好这个超nice的小工具 Permute 3 | Mac软件天堂...

    小伙伴们,感谢关注「Mac软件天堂」,遇到"XX已损坏"."XX意外退出"."无法确认开发者"等问题记得点击菜单栏的「帮助」解决哦  !同时 ...

  6. 软件加入使用时间_有了抢口罩软件,电商也进行了升级,我们又有了新软件

    超神office 新鲜一手办公.软件教程 你有了抢口罩软件,电商也进行了升级,我们又有了新软件 " 有没有发现,当你用上了抢口罩的软件之后,依然还是没有抢到? 不是被盾,就是不能加入购物车, ...

  7. 软件加入使用时间_你有了抢口罩软件,电商也进行了升级,我们又有了新软件(3月2日更新)...

    超神office 新鲜一手办公.软件教程 你有了抢口罩软件,电商也进行了升级,我们又有了新软件(3月2日更新) " 昨天的软件,作者又迎来了更新,功能增加,具体表现还需要各位评测. 01 新 ...

  8. 软件加入使用时间_信考宝典 中考软件简介

    主要功能:全部题库:模拟考试,自动评分: 保定市信息技术中考,满分20分,计入中考总成绩.考试时间为每年5月底,考试形式为题库抽题,正式考试时间为20分钟,时间非常紧,所以,提前把题库做几遍是考满分的 ...

  9. 软件加入使用时间_新人如何才能玩转时间机器字幕制作软件?时间机器字幕制作软件使用测评...

    新手用户想要熟练的运用时间机器字幕制作软件,首先自然是要对这款软件进行下载了,这款软件只有几M的大小,不会占用用户过多的系统内存,用户在对免安装版本的时间机器字幕制作软件进行解压操作之后,点击exe执 ...

最新文章

  1. [TJOI2016][HEOI2016]排序
  2. 全面了解Nginx主要应用场景【转】
  3. java netfox_SpringFox集成原理
  4. python模拟手写_python-自己手写的贴吧爬虫
  5. 鸿蒙系统第一次出现,华为鸿蒙系统第三“用户”出现?没想到是它
  6. Java自动拆箱陷阱。 谨防!
  7. 牛客网--单词倒排(Java)
  8. Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
  9. c语言程序不能运行,C语言编程,我写了一个程序,但不能运行.
  10. ef 连接localdb_如何连接和使用Microsoft SQL Server Express LocalDB
  11. oracle procedure可以执行非常复杂的语句吗,oracle-存储过程(procedure)
  12. ASP.NET Core Web多语言项目
  13. oauth2-server-php-docs 存储
  14. 使用命令卸载mysql
  15. GridView样式设置
  16. 华为太极magisk安装教程_教程:如何升级太极内部的应用
  17. 20140925百度校园招聘一面
  18. 链表_两两交换链表中的节点
  19. docker监控方案
  20. 关于PWA的各种问题

热门文章

  1. LeetCode 144. 二叉树的前序遍历(前序遍历)
  2. 二级vb笔试题库__全国计算机等级考试,2012年9月全国计算机二级VB笔试标准预测试卷试题六...
  3. 中文验证码 php_还在苦恼验证码怎么实现?看看这个验证码组件合集,你想要的都有...
  4. blob数据类型_MySQL的数据类型
  5. Transformer太深不行?NUS字节发现注意力坍缩,提出重注意机制!
  6. 别让数据坑了你!用置信学习找出错误标注(附开源实现)
  7. Springboot 2.0选择HikariCP作为默认数据库连接池的五大理由
  8. SQL解析在美团的应用
  9. 论文浅尝 | 基于迭代的概率规则约束的知识图谱分布式表示
  10. 连接MySql出现异常解决:java.sql.SQLException: The server time zone value is unrecognized or represents。