基于开源数据库开发国产商用数据库产品的一些理解

 

  最近同学群里谈论国产基础软件比较多,网上“从华为数据库到阿里数据库世界第一,亩产一万斤的浮夸何时休”这篇文章也多有转发。我在数据库方面熟悉一些,最近8年主要参与分析型数据库GBase 8a MPP的相关研发,将一些内容整理后分享给大家。

1、基于开源数据库开发商用数据库产品有无法律上的障碍?

  首先来在百度百科https://baike.baidu.com/item/开源协议的图片。

 

图 1 常见的开源协议

  显而易见,软件公司只要遵循相应的开源协议,就符合法律和相应的道义。对于国内软件厂商,肯定不想将商用产品的代码开源,所以引用BSD、MIT、Apache协议的居多,都是可以进行闭源的二次开发和发布的,如果是基于GPL/LGPL/Mozilla的开源协议,他们常常有对应的商用协议,只要给对应公司适当的费用也可以用于商用。

  至于强行修改协议,冒名顶替的,在基础软件不太常见,从开发工程师本身来说,一般乐得遵循对应的协议。

  顺便说一句,在数据库领域,Mysql、Mariadb系列都是GPL协议(GPL协议的传染性),Postgresql系列是BSD协议,其中GreenPlum是Apache协议。所以国产数据库的基础以Postgresql系列软件为主,分布式数据库以其中GreenPlum为主。

  回答为什么国产数据库常常基于开源数据库开发的原因,最主要的自然是成本,能站在巨人肩膀上,还非得从零开始的话,对于要盈利的公司是不现实的。另外最近10年中,数据库本身可以说没有革命性/颠覆性的新理论、新算法的出现,(Stonebraker创建Vertica是2005年)按我以前同事孟祥斌的说法,最近一次革命性的变化还是OLAP(分析型)数据仓库业务中粗糙集索引技术在列存数据库的应用,从而诞生了Sybase IQ、Vertica等一系列OLAP产品。

  我个人认为从2000年以后,是客户应用驱动了数据库的发展,无论是列存数据库、图数据库、全文数据库、KV数据库还是Hadoop生态的诸多产品,除了Oracle在事务数据库上一骑绝尘,其他产品都是因为某些特性满足了某些业务应用,从而在细分市场上得以发展,无论是阿里还是南大通用,数据库厂商都是拿Oracle“砸挂”,一说就是比Oracle快XXX倍,其实就是Oracle本来就不适合那个业务场景。

  如在一个几十亿行的数据表上增加、删除一列,Oracle也许要好几天,而列存数据库连1秒都不用,这种对比就没有太大意义,但是实际业务中却又很常见,而根本原因是该业务场景压根儿不应该用Oracle,如Stonebraker所说的单一模式不能包打天下。

  与之相对应的,“集成”,“混搭”,“融合”倒是有技术可行性,将各个数据库融合打通,方便开发、运维,降低整体运行成本的方案和产品在近年多有出彩之处。

2、类似的问题,基于开源数据库开发商用数据库有无道德上的障碍呢?

  日常中,让大家感到恶心的是国内基于开源软件开发的OS、数据库软件都是用着开源代码,打着“完全自主知识产权”的名义非法占用国家经费以及过度市场宣传的案例。

  “非法占用国家经费”是那些负责审批的领导和专家关注的范围,自然由法律来惩罚,“过度市场宣传”确实欺骗了我们大众的感情,可这是那些低级客户的问题,就像有人非买“脑白金”一样,但是不怕,低级客户选择错了,肯定由其上级或者最终用户惩罚,关键基础软件尤其是数据库软件这种比例还是很低的,原因下面再补充。

  我们可以谈谈 “完全自主知识产权”这个口号。我个人认为这是某位大领导/大专家一起兴起,想到的一个词,他完全没有法律和道义上的含义,就象“欢春节”。实际上哪怕你在Linux上写一个“Hello World!”,

#include <stdio.h>
int main(void)
{
  printf("Hello World!\n");
  return 0 ;
}

都要用到如下链接库

 

  图 2 Hello World的依赖库

  那么理论上,我们在版权声明中应该声明,此软件用到了诸如glibc等GPL协议的软件库。在Windows平台上也是如此,即使能把所有库静态链接,本质不会发生什么变化。

  相信国家也理解了“完全自主知识产权”是个伪命题,现在这种说法官方说的少了,而是开始宣传“自主可控”,“安全可信”,即最近金额高达几千亿规模AK(安可)项目,后来国家发现类似阿里的合资或者上市公司无法参与,后又有“实际控制人”的说法。

3、案例解析

  案例:南大通用在2015年经工信部(中华人民共和国工业和信息化部)撮合从IBM花巨资购买了Informix数据库的源代码(IBM在中国共卖了3份源码),当时我们崔总(崔维力)与工信部某领导确认,经Informix源代码改后的GBase 8t关系型数据库(后来改名GBase 8s)算不算国家的“自主可控”、“安全可信”产品,该领导明确表示“算”,在后来我们用此产品参加国家安全、军事等领域的项目,证明确实算作AK软件。

  推而广之,基于开源代码并号称能完全掌握:可修改bug、增强安全(符合国密XXX),可以优化,可提供技术支持和定制开发,也符合法律条文(没有违背开源协议、软件著作权登记和软件专利)的数据库软件,都可以申请为AK数据库。

4、关于数据库方面的软文

  软文常出现在一些IT新闻网站、自媒体,乃至软件公司的官方网站上,它是市场推广的一种模式,就像马季相声《吹牛》,有正着吹的,反着吹的,有贬低别人吹的,有贬低自己吹的,大家就看一个热闹就好了。

  核心是我们软件工程的定义,软件的核心是为客户/用户带来价值,现在国内基础软件非常难,完全是买方市场,在项目中POC测试(Proof of Concept,用户场景验证测试)阶段非常长,我们常常做一个项目需要一两年才能部署,就是客户/用户会将它们所有的APP都跑很长时间,一直到所有的功能和性能满足需求,并且还会提出大量的定制需求,然后几个产品都测一轮或者几轮,才会开始招标,如果运气好中标了,给你签协议,部署,再运行很长时间后才会给你钱(没有暴富的机会,这就是资本市场抛弃数据库等基础软件的重要原因之一),分布式数据库项目常常会出现A公司在一个项目中辛辛苦苦两三年,将所有的移植、优化POC都做完,然后被B公司抢单的现象。

  所以至少是目前,真实客户不会为这些软文打动的,当然这也是国内基础软件竞争惨烈的一个表现。我们和美国不同,DOD一直花大笔钱培养和管理软件市场,我们是大量三产公司左手倒右手,去年参与一个XX系统项目,是涉及几十家公司的大项目,只有南大通用一家非XX三产,所以国家在IT投入很大,实际效果还需要时间来验证。包括这次国家大笔投入的AK,因为鼓励各省市的本地公司,所以这两年出现了几十家新的数据库公司(估计其他子领域新成立的针对AK的软件公司也很多吧),AK的最终结果,我们只能说拭目以待。

  基础软件厂商的软文常常不是给大众看的,是给自己公司的同事看的,自己鼓励一下自己,最近南大通用也在规划软文呢,欢迎同学们扔砖。

5、关于数据库评测

  无论是工信部的测试还是类似这次阿里参加TPCC的测试都是营销手段,随着国内软件市场招投标的推动,各家企业都在不断推高入围的门槛。近年来国家有很多这样的机构,南大通用数据库参加的中国信息通信研究院(简称信通院)测试最多。至于质量如何,大家参考软件著作权申请时的测试就可以了,认认真真走流程已经是表现最好的了。

  国外的TPC系列测试(TPC-C针对事务性数据库,TPC-H,TPC-DS针对分析型数据库,还有针对Hadoop平台的测试),他们的特点是公开性比较好,标准中包含了数据生成、评估工具,其中选择的场景比较典型,还能不断演进,如TPC-H逐渐不具有代表性后,就推出更高级的TPC-DS。其实前两年星环科技也大力宣传在TPC-DS第一的测试结果,可能大家不太注意罢了。参考资料:央视三大频道权威栏目集中报道,星环科技全球首个通过TPC-DS测试

  其次就是各种排名了,国内赛迪、信通院为代表,只能说排名相对公平,最近几年为了多收钱,将数据处理行业添加了很多维度,导致划分的足够细,进入排行榜的企业很多,给人的感觉含金量下降了。

  国外从大来说是Gartner的权威性要好一些,它本身针对技术趋势的研究也多一些,下图是2018年和2019年Gartner发布的数据管理方向的魔力象限(注:进入Gartner和进入Gartner魔力象限是两件事呀,发现巨杉还一直宣传自己入选Gartner呢,实际上是入选Gartner列表,确实也很了不起)。国内进入的就是南大通用、华为、阿里(其中华为和阿里在云方面加分比较多)。在2018年之前发布的报告,国内数据库厂商有过星环数据库、巨杉数据库,这两年没有了。这种评选产品实力很重要,但评选本身也是非常耗钱和精力,小的或者不太专业的数据库公司是没办法参与的。

 

图 3 Gartner2018年初发布的报告

  在2018年的报告中,阿里(Alibaba Cloud)和华为(Huawei)的体量比南大通用(GBase)大,技术先进性不如GBase。在2019年的报告中,华为就超过了南大通用。原因之一就是崔维力先生意外辞世,在2018年南大通用公司和产品都没有稳定发展。

  另外这两年的图形中,大家都可以看到Oracle遥遥领先,国产数据库还都没有进入领导者象限的,大家还需要努力呀。

 

图 4 Gartner2019年初发布的报告

  其次数据库排名还有https://db-engines.com,权威性差一些,谨供参考吧。

小结

1、 使用开源数据库或者以开源数据库为基础开发自己的数据库,只要按协议办事,就合规合法,也没有什么可丢人的。

2、 骗国家经费的难逃法网,骗大家感情的数据库软件还算是比较少的。

3、 数据库软件是买方市场,POC测试是重要成本,客户一般不会因为厂商的市场宣传就减免测试。

4、 网络软文就是给大家一乐,不要太认真。

5、 国家大力推动AK软件,具体效果需要时间来证明。

6、 国内评测和排名的质量一般,国外Gartner质量好一些,门槛也较高,但这些的直接效益就在招投标的供客户参考罢了。

7、 "不积跬步,无以至千里;不积小流,无以成江海",阿里的这次进步是国产基础软件的一次扎扎实实的进步,如果说其有些自吹自擂,那就让这些值的自吹自擂的进步来的多一些吧。

 

下一篇文章再讲解南大通用分析型数据库GBase 8a MPP的演进之路,以及我们和开源软件的一些纠结。感谢大家花时间看这篇短文。

posted @ 2019-10-29 11:00  范振勇  阅读(2974)  评论(0编辑  收藏  举报