锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

从“卡脖子”到“主导”,国产数据库 40 年的演变!

时间:2023-01-09 17:00:00 m1x3018ic集成电路

c36a9b7ba25d2a9db3cc393d523a50d4.gif

【CSDN 编者按】2020 年,阿里云数据库在数据库领域 PolarDB 入选 Gartner 领导象限;华为 GaussDB 革命性功能全密发布;TDEngine 多次霸榜 GitHub;PingCAP 完成 D 轮融资...

回顾过去一年,我们国内数据库的发展如何?我们不妨通过这篇文章来了解一下。

作者 | 马超

责编 | 屠敏

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

六代繁华,春去也没有消息。空虚的希望,山川的胜利,已经不是过去了。王谢堂前双燕子,乌衣巷口曾相识。 ——元词作家萨都刺满江红·六代繁华》

说到国内数据库的创始人,不是人民大学的萨师轩教授,而萨师轩是元代文学家萨都刺的后代。萨师轩和他的弟子王珊总结了数据库系统,这仍然是中国数据库领域的经典教科书。

早在 1978 年,萨师轩教授开始为中国人民大学的学生普及数据库知识。当时高考刚恢复,数据库的概念还是很时髦的名词,但正是在萨老师的带领和指导下,国产数据库 40 多年来,从默默无闻到真正的爆发;从单节点到蚂蚁分布式数据库速度之王 OceanBase;从单一功能 TP、AP 库到混合式 HTAP 数据库天云的 Hubble;从数据仓库、数据湖到仓湖的分离 MaxCompute;从 SQL、NoSQL 再到 NewSQL 的 TiDB;从传统数据库到专业物联网时序数据库 TDEngine;更何况刚入选 Gartner 阿里云数据库最新一代领导象限 PolarDB。

2010 年 7 月 11 日萨师轩教授在北京与世长辞,当时就像 PolarDB、TiDB、TDEngine 这些国内数据库的模型还没有诞生。一瞬间,可以说是国内数据库的收获年 2020从蚂蚁开始,倒计时已经进入 OceanBase 再破 TPC 速度记录,到阿里云 PorlarDB 首进 Gartner 数据库领域的领导者象限;华为 GaussDB 革命性功能全密发布,国产数据库精彩纷呈。今天,读到这六代人的繁荣,回顾过去,真的很感人,在这里,我想向数据库的前任致敬,但也希望给数据库的从业者带来一些思考!

起源——国际巨头的傲慢和偏见

数据库的起源可以追溯到上个世纪 60 年代。当时 CPU 刚刚进入集成电路时代,计算机计算能力和内存比以前的晶体管时代有了很大的提高,许多企业也开始使用计算机进行数据管理。但当时的计算机系统缺乏有效的范式来描述复杂的数据关系,因此,当时库管系统仍处于非常简单的雏形状态。

直到 1970年,关系数据库之父,IBM 研究员 E.F.Codd 在《Communications of ACM》杂志上发表了一篇题为A Relational Modelof Data for Large Shared Data Banks论文也成为数据库历史的奠基之作。后来 A C M 在 1 9 8 3 每年都把这篇论文列为创刊 25 年中最具里程碑意义的里程碑 25 其中一篇论文首次提出了关系模型的概念。

关系是数学中的一个基本概念,由集合中的任何元素组成的几个有序的偶然表达,以反映客观事物之间的某种关系。如数字之间的大小关系、人之间的亲属关系、商品流通中的购销关系等。用关系的概念建立数据模型来描述、设计和操作数据库,E.F.Codd 是第一人。

然而,尽管关系数据库的理论是 1970 年就问世了,但市场上却没有关系数据库的商业产品。主要原因是 IBM 虽然率先提出了关系数据库理论,但当时蓝巨人的反应太慢,他们在 1973 年才启动 System R 该项目研究了关系数据库的实际可行性,但也受到当时的限制 IMS 层次数据库销售火爆,所以 IBM 对于 System R 项目关系数据库不太感兴趣。

1977 年 6 月,Larry Ellison 他的甲骨文抓住了关系数据库的巨大商机,并引入了它 SQL 语言、原子事务等关键特性,在数据库领域迅速站稳了脚跟,并在 1989 年正式进入中国。

当时,中国的数据库市场就像 FoxBASE、dBase 这样的产品远没有 Oracle 因此,甲骨文入华不到五年,恰逢中国推进九七工程(1997 年,全国电信企业全面实现市话业务计算机综合管理),由于电话资费大幅下降,普通家庭都能负担得起电话,这也使甲骨文 Oracle 我国数据库销售呈爆炸式增长,但单向技术依赖使我们处于被动地位。

一举打破 Oracle 支付宝核心垄断 OceanBase

随着移动互联网浪潮的到来,中国 IT 巨头应用创新几乎是世界第一,无论是否 O2O、我们在自行车共享和移动支付方面做得很好,但主要科技企业的核心数据库 C 位却一直被 Oracle 与 MySQL 等待国外产品牢牢控制。

然而,外国制造商最强大的神话终于在了 2019 国庆节成功打破。 Oceanbase 数据库成功登顶世界上最权威的数据库评估机构 TPC(国际事务处理性能委员会)排名第一。

在今年 5 月,OceanBase 再次提升了之前创造的记录。 11 倍,甲骨文,IBM 等一众老牌数据库巨头甩在身后,正式宣告国产数据库落后于国际先进水平的时代已成过往云烟,自研数据库产品自此站起来了。

但回顾过去,当时 OceanBase 出生纯属意外。OceanBase 杨振坤的创始人绝对是天才中的天才 1984 年考入北京大学数学系,3 年修完本科,不到 2 年硕士毕业。师从王选院士并获得博士学位后,32 杨振坤已成为北京大学首批长江学者奖励计划的特聘教授之一。如果你继续沿着这条路走,我相信杨振坤会成为萨教授的学术领袖。然而,象牙塔的生活对杨先生来说仍然太无聊了。受导师王选院士的影响,杨先生决心创作一部历史悠久的作品。

2010 年,45 杨老师加入阿里,组建了一个自主研究数据库的团队。

2012 年,时任蚂蚁金服 CTO 程立决定支付宝 1% 交易库存数据在 OceanBase 试运行并不重要,OceanBase 不负众望,超额完成任务成功运行 10% 这也让数据 OceanBase 一战在阿里内部成名。

有关 OceanBase 相关技术解读可参考作者 CSDN 阿里,200行代码解读国内数据库OceanBase速度之源 OceanBase 二次刷榜 TPC-C,7 亿 tpmC!》这里就不赘述了。

混合型 HTAP——天云 Hubble 数据库

传统关系型 TP 在数据库的范式中,数据类似于随时加工改造的零件,而数据库是零件的加工厂。举例说明,使用 ATM 取款时,取款人的账户余额和 ATM 钞箱余额是在数据库加工下随时变化的零件,因此 TP 数据库一般用于在线交易,关键是响应速度快。而在 AP 数据仓库将数据视为加工过的成型货物,没有实时修改的需要,但需要进行大量的相关计算来挖掘数据价值。 AP 大多数数据仓库用于客户肖像和营销策略分析。

而 TP 与 AP 相对独立业务的需要,银行实时风险控制系统、电子商务实时推荐营销系统等相对独立发展推荐营销系统等。 TP 与 AP 因此,特征场景 HTAP 的概念在 2014 年被 Gartner 正式提出。

HTAP(HybridTransactional/Analytical Processing)在保留原有在线交易功能的同时,强调数据库本地计算分析的能力。支持混合负载的数据库可以避免传统架构中在线和离线数据库之间的大量数据交互,并对最新的业务数据进行实时统计分析。

天云数据的 Hubble 是一种整合 TP 与 AP 混合特性 HTAP 数据库。值得一提的是,Hubble 国内原创数据库在全国首届信创产业生态创新大赛中获得一等奖。

在同一数据库实例下,支持高并发低延迟 OLTP 事务和海量密集计算 OLAP 分析作业,这不是一个简单的任务,而 Hubble 该方案是引入损失函数的动态评估 SQL 执行逻辑计划的成本,CBO 成本优化分析,Sharding 不同计算负载的切片线程级物理资源匹配TP 和 AP 双引擎调度执行,随机和序列化 IO 同时支持存储访问,依靠数据副本机制 KV 键值存储和列存存储交出了完美的答案。这意味着一个表可以同时支持存储和存储,真正集成存储结构,避免每晚在交易和分析数据库之间 ETL 繁琐的数据移动操作和维护工作以及数据冗余。

天云 Hubble 借助优化数据库方便 SQL 服务替代 ES HBase 方案,省钱 Hadoop 开发成本高并发实时升级,完成 Flink 金融反欺诈和复杂权益服务无法处理更多事实表; 多表关联 AP 计算方面,Hubbl 的性能是 Impala 的 231%,在开放的大数据生态中,Hubble 完全可以作为计算组件与开源组件协同工作,嵌入并服务主流数据中台环境。

NewSQL 的典范——TiDB

2005 年,谷歌首次提出了大数据的概念。对于大数据(Big Data),Gartner 给出了这样的定义:

“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。

也就是说大数据是指传统的 SQL 数据库无法处理的大量数据,这也就是我们目前常说的 NoSQL 型数据库,这是一种基于 Key-Value 寻址的数据库,这种数据库专门为海量数据存储服务,不过 NoSQL 要求数据之间的关联计算不能太多,比如字节、快手这样的视频社交 APP,数据虽然是天量级的,但是用户每条动态之间所需要的关联计算不多,这样的场景下使用 NoSQL 数据库就比较合适了。

而我们前文提到的 TP、AP 数据库,都要进行数据之间的关联计算,比如电商平台上客户的一笔交易既要更新商家的库存又要更新买家的帐户余额,或者基于用户画像时要将客户的各项理财变动情况进行整体建模计算,这种关联计算的场景就是 SQL 数据库的天下了。

原本 SQL 与 NoSQL 的应用场景两不重叠,井水不犯河水。不过,从最新的如直播带货需求来看,要求数据库既提供海量数据存储服务又提供高性能关联计算服务,这就是 NewSQL 的领域。

而打通 NoSQL 与 SQL 任督二脉,打造 NewSQL 数据库的明星产品中典范当属 PingCAP 的 TiDB 了。PingCAP 的联合创始人黄东旭出身于微软,不过黄东旭在程序员中绝对堪称异类,他不止是位编程高手,绘画和摇滚水平之高甚至还远在代码能力之上,是 IT 业内闻名的文艺青年,其创建的 TiDB(https://github.com/pingcap/tidb)数据库代码优雅,结构清晰,颇有艺术气息,用他的话来说 TiDB 的目标是尝试让用户像使用和操作 Oracle、MySQL 传统数据库那样顺手,与此同时,还能拥有弹性伸缩的高扩展、高可用性架构。

PingCAP 今年有两个大动作,一是在数据库顶会 VLDB 上发表论文《TiDB: A Raftbased HTAP Database》;二是继续将云原生进行到底,其把 TiDB 与和 Kubernetes 紧密结合,使得 TiDB 用户可以快速对集群进行扩缩容,滚动升级,这也反应了 PingCAP 在技术方面有非常深入的分析和思考。TiDB 的设计架构定位就是坚定地朝着云原生 NewSQL 的方向发展。这也是 PingCAP 站上风口,在 D 轮融资 2.7 亿美元的主要原因。

金融级核心——GoldenDB

笔者作为一名长期从事金融科技的程序员,对于数据库技术对外依赖感触是相当深刻的,因为我国银行业的绝对核心——支付系统(CNAPS),直到 2013 年底,我们才用自研二代支付系统将国外方案取代。

一直以来,一致性问题是金融级数据库的重要讨论话题。分布式数据库的语境下一致性就是指各个数据库分片的数据是否一致,何时一致。如果更新过的数据能被后续的访问都能看到,这是强一致性;如果能容忍后续的部分或者全部访问不到,则是弱一致性;如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。金融级的数据库必须要保证强一致性,也就是只要数据更新,就必须被后续的访问所看到。

在金融数据库方面,中信银行与中兴通讯联合研发的 GoldenDB 在今年 5 月份成功上线。GoldenDB 成功取代了在中信银行核心系统服役了几十年的 IBM AS400 据库。为解决一致性问题,中信银行的数据库专家们创造性的提出在 GoldenDB 数据库引入全局事务协调器 GTM,实现基于中间件的强一致性事务控制,完成分布式事务的全生命周期管理。保证异常场景下的数据一致性,解决分布式数据库可能的脏读问题,在数据备份/恢复过程中,保证各全局事务组的操作统一执行或回滚。

分布式事务中最重要的是原子性和隔离性。所谓原子性就是指事务像原子一样不可分割,比如用户在支付宝上还信用卡,那么支付宝的余额和信用卡的还款记录就需要同时成功或者失败,不能出现一边成功而另一边失败的情况,一般来讲原子性可通过已提交事务的回滚来实现。

真正的难点在于隔离性,隔离性主要是处理读写冲突和写写冲突。分布式事务提交时可能出现部分节点成功,而另外一部分失败的情况,此时中信银行的数据库天团又提出在这种情况发生时,将已经成功提交的节点上进行回滚。根据全局事务 GTID 在 Binlog 中查找已提交事务信息,生成反向 SQL 语句并执行以实现数据回滚。通过以上的机制,就保证分布式数据库可以用于银行的动帐类业务,防止错账的发生。最终,银行核心系统完全实现了分布式数据库的分布式迁移,并随之完成国产化替代。

传统数据库的终结者——PolarDB

2010 年前后,中国的互联网企业普遍迎来了一波流量爆发。其中,继 2003 年推出支付宝以后,淘宝在 2005 年到 2012 年的交易迅速增长,交易额从 80 亿元、200 亿元到 1000 亿,直到破万亿。不过这种爆炸式增长,也成为了阿里人甜蜜的负担,因为阿里电联用户的增长速度已经渐渐超出系统处理能力的提升速度,而原有一直沿用的 IOE(IBM 的小型机、Oracle 的数据库和 EMC 的存储)中心化系统与这种高用户并发的场景几乎格格不入,且暂不论达到如此性能的 IOE 系统成本会有多惊人,问题的关键在于即使是当时最强大的科技公司,也没有经历过上亿用户同时在线的业务场景,使用国外的产品方案有如南辕北辙,无法真正解决问题。

正因此,王坚院士率先提出去 IOE 的目标,通过打造阿里自己的技术来解决用户爆发工资长的问题。

在 IOE 架构的系统中提升算力的思路是让服务器越来越强,云计算的分布式思路是只需要增加服务器节点的数量,就能处理更多的并发服务请求,而分布式系统的业务连续性,并不是靠高可用性来保证,而是靠整个服务体系的容错能力造就的。在不断探索的过程中,我们也诞生了新的分布式架构,通过发挥云计算的威力,使得看似普通的虚拟机集群,能够碾压一体机,能够为亿万用户同时提供优质的服务。

欲戴皇冠,必承其重,很多公司都会要管理远超自身运维能力的大规模数据库集群,DBA 团队维护对于很多企业尤其是初创企业来说成本不低,因此DBaaS(Database as a Service)逐渐兴起。用王坚院士的话来说,「未来使用数据库服务就像使用自来水和电一样简单」,业界一般认为将传统业务上云成本可以降低一半,而将数据库业务上云成本可以降低三分之二,因此很多研究机构都认为云数据库才代表着数据库的未来走向,比如 Gartner 就预计到 2023 年全球 75% 的数据库都会跑在云上,可以说云数据库未来很可能会终结掉传统数据库的存在,因此谁能在云数据库方面依靠,谁就可以在云计算与数据库两个方面都取得优势。

根据 Gartner 上周发布的 2020 年度全球数据库魔力象限评估结果,阿里云凭借 PolarDB 的强大性能首次挺进全球云数据库供应商的第一阵营,进入领导者(LEADERS)象限,而腾讯和华为也都入选了特定领域者象限,这是有史以来中国数据库首次有三家厂商同时入选 Garner 的魔力象限。

Gartner 在报告中指出“阿里云拥有丰富的数据库种类覆盖度和完善的产品布局,为用户提供了多种关系型和非关系型数据库产品,还提供了混合云环境部署,同时集成了备份、数据迁移与同步等能力。”这样的评价也充分体现了阿里云 PolarDB 的不俗实力,同时也预示着像阿里云、华为这样的中国云厂商未来不可限量。

PolarDB 的创始人李飞飞与阳振坤一样同样是少年天才,在初中毕业后,李飞飞直接进入了国家教委理科实验班,并被保送进入清华学习。博士毕业后他在犹他大学计算机系任教,从助理教授一路做到正教授, 后来在时任阿里集团 CTO 行癫的支持下,李飞飞加入阿里创立了 PolarDB。

图片来源:阿里云技术公众号,已获作者授权

PorlarDB 除了在索引结构、机制等传统数据库组件进行优化以外,还特别针对云服务特有的全球跨域数据同步与容灾需求,进行了重点设计,我们知道很多云服务客户的业务遍及世界各个大洲,因此对于云数据库的跨域数据同步也会有非常高的要求。PolarDB 全球数据库(PolarDB Global Database Network,PolarDB-GDN)采用了数据库物理日志异步复制的方案。PolarDB-GDN 通过高并发流水线技术将同步速度提升 7 倍,将数据跨大洲同步延迟控制在 2 秒内。全局读写分离技术结合多级别的一致性能力,让业务不用做任何的改造的前提下降低整体的访问延迟,全面满足了云用户的需求。

最后

今年是国产数据库的丰收年,除了上述数据库外,国产时序数据库 TDengine  背后的涛思数据在 2020 年 4 月完成 A 轮 2000 万美元融资,8 月将集群版开源,连续 6 天在 GitHub 全球趋势排行榜上位居第一;OceanBase 在工行的理财核心系统得到应用与验证;PolarDB-X 应用于中国邮政核心系统中,帮助邮政成功渡过 1 亿件的交易峰值;中国联通基于 PolarDB-X 等技术重构了其核心 IT 架构,实现对 3.6 亿用户的无缝“广覆盖”,成为全球最大的云上 BSS 系统。相信国产数据库的未来可期,也愿今日国产数据库之世如众人所愿!

 
     
 
     
更多精彩推荐
 
     
 
     
 
     
 
     
 
     
 
     
 
     
 
     
 
     
☞美团回应“大数据杀熟”;Docker开发者预览版支持M1芯片;GTK 4.0发布|极客头条

☞HarmonyOS 手机应用开发者 Beta 版到来,对开发者意味着什么

☞国内数据中心变革的见证者,揭秘阿里巴巴数据中心技术积淀

☞微软收购 GitHub 两年后,大咖共论开源新生态

☞红帽 与 CentOS 之间的恩怨情仇

☞清华硕士分享思维导图:机器学习所需的数学基础
点分享点点赞点在看
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章