向蟑螂生命力致敬的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受權。事件