瀚高软件的数据库国产化之路


prtyaa
prtyaa 2024-01-12 14:41:18 50980 赞同 0 反对 0
分类: 资源 标签: 国产数据库
瀚高软件的数据库国产化之路

这是2018年的文章,瀚高软件十多年来在数据库领域的发展基本遵循的是这样思路:拥抱开源、自主创新、服务市场。

我们在“为什么要发展国产数据库?”一文中阐述了中国作为一个信息化大国,拥有自主可控的关系型数据库产品的必要性。在这个领域不能完全依赖国外的商业化产品,并且在当今及未来的发展形势下,这个需求更为迫切。

与此同时,我们在“国产数据库的发展现状”一文中分析了20多年来我国国产数据库软件的发展状况。从目前国产数据库发展主要的途径分类中我们发现:

1、 完全自主开发的产品至今还有不少未能进入市场与研发的良性循环,在应用生态上更是有待突破。

2、 源代码引进:2015年间引进Informix源代码的道路如今亦已被证明是不成功的。

3、 云计算数据库平台:互联网、云计算公司推出的数据库产品在云平台上提供服务,与传统的产品交付存在较大区别,还不能替代传统的商业数据库软件装机。

 

那么,国产数据库到底应该怎样发展呢?我们的数据库国产化之路到底该怎么走呢?要回答这个问题,我们需要从市场上的客户对国产数据库到底存在哪些疑虑说起。通过调研,我们看到,国内的客户对于国产数据库存在的担心和疑虑主要来自这几个方面:

1、 技术先进性 – 总感觉到国产的数据库还不够先进;

2、 产品稳定性 – 产品的稳定性需要广泛的应用与磨炼。这是个鸡与蛋的问题,不是短时间内能解决的;

3、 市场案例 – 对于自研产品来说,同样是死结;

4、 支持服务保障 – 这一点是唯一有可能做的;

5、 未来发展持续性 – 这需要公司实力来支撑,而且要有强大的科研力量,但归根结底需要落到产品的销售上;

 

如何能够在短时间内消除客户上述的疑虑,是国产数据库得以发展的关键。为此,我们把目光投向了开源软件:

 

一、借助开源  国产数据库发展的可行之路

今天,开源软件已经得到非常广泛的应用。这其中也包括了开源的数据库软件。

图片

 

1、 在技术的先进性上,开源数据库软件虽然比起商业产品存在一定的差距,但这个差距已经不妨碍开源软件在市场上的接受度以及应用的领域。并且,在开源软件的基础上做一定的工作,基本可以弥补甚至赶超相应的商业软件。

2、 产品稳定性:与小规模商业软件不同,开源软件业已得到市场的广泛应用,其产品的稳定性是得到市场应用的磨炼的。

3、 开源软件的应用案例甚至多过大部分商业软件,在案例方面只多不少。

4、 服务完全取决于对产品的掌握和服务的体系和意识,这是一个企业事在人为的部分。

5、 发展的持续性:开源软件来源于开源社区,一个排名头部的开源社区,其生命力甚至强过很多商业企业,在技术发展的持续性方面是不用担心的。

 

因此,我们也可以看到,在今天的市场上,开源的数据库软件其市场的接受度、应用的广泛性实际上是远大于传统的那几家国产数据库的。那么,国产数据库的发展为什么不借助开源的数据库产品呢?至少在发展的初期和市场拓展阶段。

借助开源产品可以直接获得源代码,免去重复发明轮子的工作,把有限的时间、精力、资金用在最需要解决的问题上。

从2009年开始,瀚高基础软件有限公司(瀚高股份 833644)就组织力量开始研究PostgreSQL的源代码,力图为国内的数据库客户提供一个基于开源数据库软件的新选择。有关山东瀚高软件公司的概况,我们另行介绍。在此,我们先讨论为什么会采用PostgreSQL作为国产数据库的基础:

 

二、选择哪个开源平台?

市场上知名的开源数据库有好几个,但哪一个最适合作为国产数据库发展的基础呢?

 

1、影响力与普及度

今天,有一个网站叫DB-Engines(https://db-engines.com/en/ranking),它通过收集互联网上的信息,对各个数据库产品的普及度和“人气”进行排名,每个月更新:

 图片

 

我们可以看到,2019年6月的最新排名,前四位是:Oracle,MySQL,Microsoft SQL Server,以及PostgreSQL。第五位是文档数据库MongoDB,而著名的IBM DB2排在第6位。

我们注意到,瀚高软件在2009年选择的PostgreSQL如今排在第四位(这不仅仅是幸运与巧合,这是基于技术和市场分析的远见)。而前三位中,只有MySQL属于开源数据库,剩下的就是如雷贯耳的Oracle和MS SQL Server了。也就是说,我们采用今天全球排名第四,开源数据库中排名第二的PostgreSQL的源代码为基础,发展中国自主可控的国产数据库!

PostgreSQL的排名其实说明了它拥有大量的用户与案例。除了北美,PostgreSQL在日本和俄罗斯拥有非常广泛的应用。这一点从社区的活跃度上都能看得出来。详细的情况可以在网上搜寻。

尽管如此,我们在此还是要解释一下我们当初为什么没有采用MySQL的源代码作为国产数据库的起点。简单来讲,主要有两个原因:第一,MySQL虽然是目前应用最广泛、普及度最高的开源数据库,但MySQL的技术架构和产品功能与PostgreSQL相比实际上是存在差距的。PostgreSQL相对而言是一个全功能的专业数据库产品。而且MySQL社区如今已被Oracle掌控,它的发展多少会受到Oracle的影响,MySQL与Oracle商业产品之间会永远保持一个明显的差别。这样,以MySQL源代码为基础发展国产数据库产品是无法承担起取代Oracle数据库的使命的。第二,MySQL虽然是开源产品,但MySQL的开源协议是GPLv2。这不是一个“活雷锋”的协议,它要求在该源代码基础上开发的产品也必须开源。因此,在MySQL源代码上发展国产数据库,在知识产权法律条款上是行不通的。

所以,今天看来,我们选择了市场普及度第一的,适合作为国产数据库基础的开源数据库平台 – PostgreSQL。这其实并非偶然,PostgreSQL实际上是一个具有优良血统的、技术先进的数据库软件:

 

2、产品的血统与开源政策

谈到PostgreSQL,就不能不提加州大学伯克利分校。加州大学伯克利分校是当今数据库领域产品技术与人才的摇篮。早在上世纪80年代末、90年代初,加州大学伯克利的服务器(当时还是ftp服务器或者是BBS)上就放满了各种数据库相关的软件,很多都是研究生们的习作(它们有些直接提供源代码,有些则不提供源代码,但可以自由使用,称之为share ware),其中的一些技术和想法后来都出现在著名的商业数据库软件中。

PostgreSQL是数据库大师、加州大学伯克利的Michael Stonebraker教授(因其对数据库领域做出的杰出贡献,在2014年荣获图灵奖)带领他的研究生们从1986年开始研发的关系型数据库项目。后来,因为出售了之前的Ingres数据库产品,他们把学校里的这个数据库项目在1995年前后命名为PostgreSQL,其含义是Ingres的后来者。

Michael Stonebraker在数据库业界有非常大额影响力:著名的Sybase数据库代码就出自他的学生Robert Epstein博士。Sybase于1984年成立,1988年他们与微软合作,将Sybase SQL Server代码提供给了微软。直到今天微软SQL Server在业界依然名列前茅。

90年代初,Michael Stonebraker提出了对象-关系数据库理论,率先将面向对象的概念融入到传统的关系数据库中,为此他成立了一家公司叫Illustra。1995年,Illustra被Informix收购,Michael Stonebraker由此担任Informix CTO,从此开创了通用数据库(Universal Database)的时代。除了Informix UDB 9.0,IBM的DB2在1995年也进行了重大的改写,并改名为DB2 UDB,同样在扩展性上吸取了Michael Stonebraker的对象关系数据库理论。

PostgreSQL是Michael Stonebraker教授与他的研发团队在传统关系数据库时代的理想化身。他们把他们认为的关系数据库所应有的系统架构、访问方法、优化策略、功能与理念、通用性和扩展能力都在PostgreSQL的代码中加以实现,整个产品具有相当高的技术水准。可以说,PostgreSQL代码本身,就是一部关系数据库的教科书。

关于PostgreSQL的技术、社区、代码,可以访问他们的官方网址:www.postgresql.org

如果想了解PostgreSQL的发展历史和其它详细的信息,可以在百度或Wiki中搜寻“PostgreSQL”。

 

图片

 

除了PostgreSQL是一个拥有纯正技术血统的平台,更重要的是,它是目前几乎唯一的一个BSD协议的开源产品。当年,Michael Stonebraker的团队将PostgreSQL作为开源提供的时候,就是基于一种技术分享的理念。它不限制任何人直接采用这些源代码去做工作,也不限制人们直接采用它去进行商业的活动。

正因为如此,20多年来有很多成功的商业化产品,它们是基于PostgreSQL源代码发展起来的:

- Netezza,2001年,在PostgreSQL基础上,采用了FPGA辅助数据的扫描过滤,推出一款数据仓库一体机。2010年被IBM收购,成为今天IBM数据分析的重要平台。

- Greenplum,2003年,基于PostgreSQL发展起来,开发出MPP架构的数据仓库平台。今天成为数据仓库领域中重要的一款产品。

- ParAccel公司同样采用PostgreSQL构建了MPP架构,在2013年加入了AWS。如今,它就是AWS数据仓库云服务的后台 – RedShift。

 

3、功能与技术特性

PostgreSQL是一个功能全面的数据库产品。在分布式关系数据库发展的历史中,所有重要的功能,PostgreSQL不可能没有,因为很多功能和想法原本就出自加州大学伯克利。各类数据库的功能对比,可以参看网站:

https://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

从中可以发现,PostgreSQL的功能是非常全的(与Oracle比肩,超过绝大部分同类产品)。如果参与今天国内的各类数据库产品招标的话,在常规功能的对标中,PostgreSQL是不会吃亏的。

PostgreSQL的代码和设计,具有典型的加州大学伯克利风格,也就是任何功能都力图通用化。很少会写死某个功能,而是尽量留给用户自行定义和扩展的机会。例如:在PostgreSQL中,各种外部的数据源都可以通过FDW接口方便地成为PostgreSQL的数据引擎;任何一种树形结构的索引机制,都可以通过GiST构造成PostgreSQL的索引,并能够被其基于代价的优化器识别并利用。因此,在PostgreSQL上进行扩展和创新远比其它的平台更为便捷与可靠。

 

三、我们做了哪些工作?

瀚高软件从PostgreSQL的社区中获得产品的源代码,我们的目标是以这个宝贵的资源和技术为基础发展一个属于中国的、自主可控的数据库产品与技术体系,为中国市场提供服务,帮助我们的用户摆脱对单一Oracle数据库的依赖。

因此,我们绝不是简单拿到一个开源的代码,编译一下就直接包装挣钱。我们要成为真正拥有产品技术的厂商。

我们是这样思考数据库市场的:客户为什么愿意花钱给Oracle?首先是Oracle能够承担客户的应用。其次,Oracle公司开发了Oracle数据库,他们拥有源代码,掌握着技术。因此,任何有关Oracle的技术问题,Oracle公司最终都能有解决的办法 – 这就是使用商业软件的逻辑。

客户使用开源软件会有什么样的顾虑?客户会担心得不到支持与服务。一旦遇到问题,即便有源代码,客户也不太可能去读源代码找到问题的解决办法。因此,它与使用商业软件仍存在明显区别。

因此,我们的策略是首先是分析、掌握源代码,把自身塑造成国产数据库的厂商。

 

图片

 

其中的一些工作包括:

1、 分析数据库的软件结构,不同的功能模块由不同的团队负责。每个都代表了数据库技术的一个领域;

2、 建立自己的软件配置管理系统,对源代码进行自己的标注。同时,对于复杂的、重要的设计给出文档,甚至于论文。并为未来的功能扩展和技术进步做好准备。

3、 构建技术支持服务体系,收集各类产品问题,形成自己的知识库。

4、 制定自身研发计划,填补开源软件与商业软件之间的“空隙”。

5、 关注开源社区的各类讨论、动向,及时掌握产品未来技术发展方向。

图片

 

除了对开源代码的掌握,另一个重要的工作就是需要将开源的产品打造成符合企业级应用的产品。在此,瀚高在PostgreSQL的基础上提供了自己的HGDB(HighGo Database)版本,在PostgreSQL的基础上,做了以下方面的增强:

- 高可用性

- 读写分离

- 共享磁盘

- Oracle兼容性

- 性能提升

- 中文全文检索的扩展

- 数据库内容加密

- 管理监控工具

- 日志处理工具

- 多节点分布式扩展

 

这一系列的“自研”计划,都是经过仔细设计。它们既不偏离PostgreSQL发展的主线,同时又恰好满足了企业级客户对数据库产品的需求。

 

四、持续发展、弯道超车

国产数据库的发展必然经历引进、吸收、掌握、创新的过程。我们目前正处于吸收和掌握阶段。但是,我们看到创新的机会就在不远的将来。

今天的数据库软件要面对的系统环境与前些年相比已经有了很大的变化。今天,系统的主流是:x86架构的PC服务器 + Linux操作系统 + 虚拟化 + 云服务。在系统架构层,基本实现了国产化。数据库软件要面对的系统是:多路、多核CPU + 大内存;存储是:NVRAM + 闪存 + 软件定义存储;通信环境是:Infiniband与IPoIB + RDMA。

这样,在多服务器的群集系统设计,数据库基础访问方法等方面会有新的实现思路。

在这里,NVRAM的发展将更加引人注目。这是一种介于内存与闪存之间的新型半导体存储介质,能够在断电时保持存储的信息,但访问速度又高于闪存一个数量级。在NVRAM价格普及的那一天,将对传统的数据库软件产生巨大的影响。

从数据库的发展历史到今天,数据库软件中大量的代码和运行时间是在与磁盘I/O作斗争:大量的数据预读到内存作为缓冲,查询优化器拼命找寻能够使用索引或者减少磁盘访问的策略。闪存和SSD的推出,大幅度提升了随机I/O的速度,但还没能动摇数据库软件的整体架构。但是,一旦NVRAM普及,很多事情就有可能改变。大量的数据扫描,甚至可以直接在基础数据存储上进行,而不必要另行缓冲。这样的改变,即便是Oracle,都需要重新改写代码、调整结构。这对于大家都是一个改变。这就是我们所说的“弯道超车”的机会。

这种机会,很可能在未来的一两年就发生。作为国产数据库,我们做好准备了吗?要做这样的准备,就需要在今天充分掌握基础代码。对于各个技术创新点,进行各种探索与试验。

为了保持业界的先进水平,瀚高专门做了一系列基础性的工作:

1、 公司在美国西雅图和硅谷(硅谷的研发中心与济南高新区、浪潮在硅谷设立的技术中心在一起)设立了研发中心。该研发中心主要的任务是与PostgreSQL的社区保持密切的联系。目前,全球PostgreSQL核心人员有30多人,大部分在北美,他们会定期举办会议,讨论产品技术及未来发展。瀚高软件在这个领域中积极参与,密切掌握新技术发展的动态,同时提升自己在社区的影响力。

2、 瀚高软件在2017年在中国开源软件协会下开设了PostgreSQL分会并担任秘书长单位。除了在PostgreSQL基础上发展国产数据库,同时也帮助推进开源数据库PostgreSQL在市场上的普及与应用。

 

对开源社区技术发展的洞察与把握是非常重要的,它能够保证我们的数据库国产化道路不会偏离业界技术发展的主流,避免出现技术二次落后的风险。我们国内有一个大型的企业,前几年也决定采用PostgreSQL。他们内部的技术实力很强,也打算在源代码层面上做一些创新的工作。他们发现PostgreSQL在查询并行处理上存在不足,便投入了大量人力、物力自研一套并行查询处理的模块。当这个模块还没做好的时候,他们发现社区中的新版本已经拥有了更为强大的并行处理能力,而他们自己的设计相比之下就显得粗糙。这样,之前的投入都白费了。瀚高在北美设立研发中心,与社区的密切联络,基本就避免了此类事情的发生。瀚高数据库的所有自研部分,都是着眼于市场企业级客户的实际需求的,而且取得了良好的效果。

 

五、数据库市场分析

今天,国内的数据库市场,企业级商业软件市场Oracle一家独大,整体态势是这样的:

 

图片

 

瀚高国产数据库的客户来源有三个方面:

1、 现有的Oracle用户:这些用户中,如果有希望能够摆脱对于Oracle独家依赖的(原因可能来自多个方面,从成本、服务、版权、安全,等等),瀚高数据库就是一个很好的选择。这也是瀚高数据库最主要的任务和使命。

2、 目前使用盗版Oracle的用户:这些用户中的绝大部分,他们并非愿意盗版,而仅仅是因为成本的关系。这样的话,瀚高数据库同样是他们最好的选择之一。我们将给出合理的,有竞争力的价格,让客户用上高效、可靠的数据库产品。

3、 使用开源数据库的用户:对于这些客户来说,瀚高数据库可以作为是开源软件的一个升级。我们将在产品的企业级应用功能上、高可用性、性能、安全性、可管理性等方面提供商业软件才有的功能与服务。

 

因此,我们的竞争对手不是MySQL,同样也不是现有的各类国产数据库。如果说我们要有一个竞争对手的话,这个竞争对手就是Oracle。其实,对于Oracle,我们不是简单地竞争。我们的目的与使命是提供给广大中国数据库用户一个新的出路:一个可以摆脱Oracle的出路,一个既能摆脱Oracle同时又不需要在技术先进性、产品可靠性上做出让步的出路,甚至是一个能够在各方面获得超越的出路。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
prtyaaL2
粉丝 1 资源 1949 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  117
银河麒麟桌面操作系统安装佳能打印机驱动方法  109
银河麒麟桌面操作系统 V10-SP1用户密码修改  102
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!