向蟑螂生命力致敬的CockroachDB更改受权,从CockroachDB 19.2开始,将以宽松的商业原始码受权(Business Source License,BSL)取代本来的Apache 2.0(Apache License version 2),使用者仍然能够继续免费的使用CockroachDB,可是云端服务供货商往后便不能在没有购买许可受权的状况,以CockroachDB提供商业服务。很多云端供货商利用成功的开源项目,经从新包装后使其成为能获取暴利的专有服务商品,这样违反开源软件理念的例子一再发生,很多开源项目纷纷修改受权,以保护项目利益不受滥用。Redis Labs在去年的时候,修改成Redis开发的多个模块受权,开始采用以Commons Clause修改的Apache 2.0受权许可,限制现有云端服务供货商,不能再以单纯提供Redis Labs模块的Redis托管服务收费。数据库
而Cockroach Labs修改受权的缘由,就是要防止AWS分叉Elasticsearch项目事件重演。在今年3月的时候,Elasticsearch原厂批评AWS分叉Elasticsearch项目,以开放的名义推出自有版本,但其实全为私利。AWS指控原厂在开源的Elasticsearch项目中混杂私有程序代码,会形成贡献者混乱,而原厂则表示,他们一直以来就以可插拔和干净的实做方式建构项目,AWS是由于项目发展不如预期,才自行分叉Elasticsearch。Cockroach Labs提到,因为许多供货商,利用其特殊的地位,提供开源产品即服务,而为了维持开源和获利的平衡,他们决定将CockroachDB核心的受权从Apache 2.0更换成BSL。CockroachDB用户仍然能够在任意数量的节点扩展CockroachDB,或是在应用程序中嵌入CockroachDB,将应用程序交付给客户或是做为服务运做均可以,惟一禁止的就是提供数据库即服务(DBaaS)的商业版本。不过,也为了能继续建构CockroachDB的开源核心,BSL受权有时间限制,在每一个版本发布后三年,受权许可会从BSL转换为标准的Apache 2.0,云端服务供货商此时就可以利用CockroachDB,建立商业数据库即服务,并保证其核心产品为单纯的开源状态。blog
Cockroach Labs解释,BSL是参数化的受权许可,项目能够依照需求加入不一样的附加使用赞成条件,CockroachDB的附加使用赞成条件就是,只要不提供商业数据库即服务,要在多少节点使用CockroachDB都不要紧,而发布版本三年以后即解除此限制,原始码恢复彻底开源,且可用于任何目的。预计在2019年10月发布的CockroachDB 19.2,是第一个应用BSL受权的版本,而在这个受权之下,根据OSI的开源定义,尽管原始码仍然对外开发,但CockroachDB 19.2就已经不是开放原始码的项目,要一直到三年后2022年10月,CockroachDB 19.2包括其间的修补程序代码,才都会转为Apache 2.0。旧版本的CockroachDB不受新受权政策影响,19.1的其余小版本更新以及将来的修补程序,都仍为Apache 2.0受权。事件