前几年一个朋友要自研数据库产品,和我探讨基于MYSQL还是基于POSTGRESQL。我问他自研数据库的目的是卖数据库产品还是自己用?他觉得很诧异,自用和当商业数据库去卖和选MYSQL/PG有啥关系?实际上这个关系就大了,因为这两个数据库所代表的正是两个完全不同的开源许可协议体系。开源许可协议是十分严肃的lgpl开源协议,具有极强法律约束力的协议。一旦选错了开源许可协议,有可能你的数据库商业化道路从一开始就走上了死路。前阵子华为高斯100停止商业销售,改为云上服务的事情,据说就和开源许可协议有关,如果真的是这样,就太可惜了。华为在高斯100上的投入从产品上就可以感受到,高斯100 1.0.2是我在近些年里看到的最好的国产商用通用数据库引擎之一。今年六月份华为发布的高斯100 opengauss,从技术水平,功能,性能等方面与gaussdb 100 1.0.2还是有很大的差距的。

首先我们用一张思维导图来看看数据库常用的开源许可协议有哪些?

lgpl与gpl协议主要区别_openstack 开源协议_lgpl开源协议

实际上开源与商业化是两条道上的马车,开源社区的目标是为了鼓励更多的人为开源社区做出贡献,把代码贡献给开源社区。所以最广泛应用的开源协议是GPL协议。最初的开源协议会尽可能的避免代码的使用者将开源代码用于纯商业,因此对于新修改代码是否允许闭源是区分两大派开源协议的最主要的分歧点。GPL为代表的最大限度发展开源社区的开源许可不允许新修改代码闭源,并且对新修改代码要求必须也使用GPL开源许可,这种十分强硬的开源社区第一的标准让很多带有商业目的的团体感到十分不适。于是在这个分支中出现了mozilla和宽松GPL许可LGPL,这两种开源许可允许新修改的代码采用不同于原有代码的开源许可,为商业公司留出了足够的余地。

另外一派开源许可是以BSD为代表的,包括BSD/MIT/APACHE这三大类,另外也包含了被认为是更为宽松的APACHE许可的国产木兰开源许可。这些开源许可均允许对开源代码进行修改后闭源。这类许可实际上和开源精神是有些违背的,不过这类许可更容易让一些企业攫取开源社区的资源,变成企业的私有财产,因此这类许可协议受到很多大企业的青睐。

再回过头来看看开篇的那个问题。如果你的产品自己用lgpl开源协议,那么选择采用GPL许可的MYSQL是没有任何问题的。不过如果你做的产品要当一个自研的数据库去卖,那么如果你选择GPL许可,你的所有修改必须开源,那么你的数据库产品就没那么好卖了。如果你选择BSD协议的POSTGRESQL,那么你就可以对你的产品进行闭源,这对你的商业化销售就是一个很好的保障。

这些年我们国产数据库发展很快,这个很快不见得是一件好事情。大多数国产数据库产品都只是在开源基础上做一些外围工作,包装一下就上市销售了。甚至很多国产数据库使用了大量的GPL开源的代码,违反开源许可闭源销售。当你的规模还很小的时候,可能没人管你,但是当你的公司做大的时候,这些都是巨大的坑。华为停产GAUSSDB 100,如果真的是因为这个原因,老白还是要为之叫好的,亡羊补牢,未为晚也。有了这次涅槃,我想华为高斯还是前途无量的。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410