数据库简史:多主数据库架构的由来和华为参天引擎的机遇

注:本文发表后,收到了很多后台反馈,其中关于大型机的早期成就不容省略。微调重发本文,纯属个人观点,错谬之处,仍然期待指正。

2023年10月13日,在北京举办的“2023金融业数据库技术大会"上,有一个非常重要的计划低调地发起了。这就是"北京金融信息化研究所"联合了华为、阿里巴巴、达梦、云和恩墨等企业共同启动的“金融多主数据库应用行动计划”。

d9b8b444e24bbb66bd9890ecf2d5c809.png

“多主数据库”这么拗口的一个词,粗暴的翻译过来就是Oracle RAC集群,其典型特征是以多个计算节点、并发读写位于共享存储的集中式数据库。

这个计划,隐秘地将集中式和分布式数据库之争再次提上议题。

这个问题还有争议吗?是的,还有。而且由来已久,从未改变。

让我们简要的回顾一下数据库的历史。

【历史回眸】

话说天下大势,分久必合,合久必分,分分合合本是常态。在计算机领域、数据库领域,分分合合也自然而然。

大型机是合,小型机是分,集中式是合,分布式是分。在早期的计算机市场上,IBM的大型机(mainframe)占据主导地位,自其20世纪60年代发明后,凭借超强的计算和I/O处理能力,以及在稳定性和安全性方面的卓越表现,引领了计算机行业以及商业计算领域的发展。

由于大型机具备极高的可靠性和可用性、超强的计算能力,早期的IT系统进入了集中式处理阶段。应用系统、中间件、数据库等资源往往集中在一台服务器上。

可是大型机的昂贵价格让大多数用户望而却步,所以小型机和PC机开始次第出现。DEC是这一时期的明星企业,它快速发展成为当时仅次于IBM的计算机制造商。

当小型机和微型机出现时,单机的处理能力就显得不足起来,如何扩展数据库的能力也就成为了非常早期的挑战。

解决方案也毫不意外,就是两个方向,一个是分布式,一个是共享存储集群,一个是Scale-Out,一个是Scale-Up,和我们今天讨论的毫无二致。

1979年,美国计算机公司就在DEC计算机上就实现了世界上第一个分布式数据库系统SDD-1。随后,IBM在System R的基础上研制了分布式数据库R* ,加州大学伯克利分校开发了“分布式Ingres”等。分布式数据库从来不是一个时髦的新词汇,在数据库历史上的探索是非常早的。

但是分布式数据库的问题也非常突出,这个我们后面再讲。

另外一个方向,就是共享存储集群。在这个领域,早期操作系统起了关键作用。DEC 最早在操作系统层提供了集群解决方案,其在1983年发布的VAXcluster提供了卓越的系统级集群解决方案,这一技术通过操作系统来解决并发锁竞争等分布式系统核心问题。后来DEC推出的Rdb在集群方面也具备极大的领先性,当然后来DEC经营不善,于1994年将Rdb卖给了Oracle公司。

VAXcluster 集群在当时要依赖DEC生产的硬件,包括专用电缆和星形耦合器。下图是从历史文档中截取出来的,集群中的每个节点和存储设备都通过一对或两对CI电缆连接到中央的Star Coupler。每对电缆的传输速率为70 Mb/s,这在当时是很高的速度。VAXcluster是第一个取得商业成功的集群系统。当时对这套架构的一个负面声音是,需要专用硬件,架构复杂

可是我们用今天的视角来看,如果将其中的Star Coupler换成一个InfiniBand 交换机,这不就是一套数据库一体机吗?

当时DEC的RDB运行在VAXcluster上,就是一套完美的架构组合,和后来的Oracle RAC集群几乎一模一样。

da76f0d4e936c68f4a6914caeccbf381.png

其实,在分布式这条路上,图灵奖获得者 Jim Gray 是一个全程参与者,他从IBM到天腾,就曾经实现了非常著名的Non-Stop SQL分布式架构,因其线性扩展能力而著称。那早在1987年。后来,Jim Gray 去了DEC,从DEC辗转到了微软,参与了SQL Server的重构。

【Oracle的抉择】

好了,问题开始摆在了Oracle创始人Larry Ellision的面前,时间已经来到了1998年,这时候Oracle 8i已经发布。并且在此之前,Oracle已经探索了一项共享存储集群技术,那时候称为并行服务器(Oracle Parallel Server,OPS)技术。这一架构能够在 DEC 的集群之上工作,但是在OLTP场景下性能并不理想。

是坚持没有先例的共享存储集群技术,还是跟随当时热门的Shared Nothing 分布式架构,2b or not 2b,这是一个问题。

事有不决问老板。Larry Ellision 开始拍脑袋。他认为,虽然看起来分布式架构是一个安全的方向、热点、大家都在跟风,但是事实证明,除了数据仓库工作负载外,无共享数据库集群从未在成熟的应用套件上成功运行过,SAP R3 和Oracle EBS等应用都无法适应新的架构,让用户从头来过无法被接受。埃里森拍板继续搞集群。这一版本在2001年Oracle版本9i中发布,埃里森将其命名为 "真正应用集群"(Real Application Cluster - RAC),意思是众人皆假,唯我独真

当然,这一决策也不是凭空拍脑袋,当时Oracle的一个技术专家罗杰•班福德已经提出了一个突破性的设计方案- "高速缓存融合"(Cache Fusion)技术(关于这些历史故事,我在新书《数据库简史》中做了详细的介绍)。最后的事实证明,这一次开创性的冒险,Oracle是赌对了。

1cb677dec7f53fa9d07622cf074ee442.png

同志们,大家可以看一下,20多年的问题和今天是否有差别?我认为是没有的。让应用适应数据库,还是数据库适应应用?每个人心中自有答案。当然我们必须致敬华为,Meta ERP 以一己之力、行业协同,彻底解开自身在特定历史时期所面临的这一难题

那么 Oracle 是怎么彻底解开这一 RAC 集群路线上的难题的?

那就是将 VAXcluster 写到数据库里去。卧榻之侧,岂容他人鼾睡。

大家都知道,Oracle从 8 就开始做 DLM(分布式锁管理器),而这一技术的鼻祖是DEC。Distributed Lock Manager 最早就是 OpenVMS 集群软件中负责管理节点访问共享资源的组件。1982 年,在 VAX/VMS V3.0 中就出现了第一个用于单机系统的锁管理器,它为驻留在单个处理器上的多个进程提供同步服务,并能消除死锁。分布式锁管理器由 Steve Beckhardt 设计,于 1984 年随 VAX/VMS V4.0 一起发布。

Oracle RAC管理员非常熟悉的 Resource Manager、Lock Remastering 等都是 VAX 集群里首创的术语。以下这段VaxCluster手册中的描述放到今天的数据库手册中也毫无问题:

锁管理器的实现是为了将锁管理的开销分散到整个集群中,同时还能将执行锁服务所需的节点间流量最小化。因此,内部数据库分为两部分:资源锁描述和资源锁目录系统,这两部分都是分布式的。

每个资源都有一个主节点,负责授予该资源的锁;主节点维护一个已授予锁的列表和一个该资源的等待请求队列。对一棵树的所有操作而言,主节点就是对根节点提出锁请求的节点。当主节点维护其资源树的锁数据时,任何对另一个节点掌握的资源持有锁的节点都会维护自己的资源和锁描述副本。

资源目录系统将资源名称映射为该资源的主节点名称。目录数据库分布在愿意分担这一开销的节点之间。给定一个资源名称,节点就可以根据名称字符串和目录节点数量的函数,轻松计算出所负责的目录。

当然除了 DEC 之外,早期的 Veritas 也通过集群软件和 Oracle RAC 紧密连接,而且售价相当可观,几乎和数据库相当。

但是,当Oracle将Cluster“写入数据库”之后,这些软件和数据库的连接都被切断了,也再未对数据库产生如早期般的深远影响

由于在数据库领域,几乎只有Oracle在坚定的走向共享存储集群的路线,第三方集群件在数据库领域从此声名不显。

说完了Oracle和DEC的故事,再来看看IBM。IBM是蓝色巨人,在所有技术栈上几乎都有多套解决方案。在集群这一方向上,IBM的大型机也形成了深厚的技术积累。

IBM 最早于1990年提出Systems Complex(也即SysPlex)概念,1994年提出Parallel Sysplex概念,并行系统耦合体是大型机最具代表性的集群技术。可以将一台或多台机器组成Sysplex,用于跨系统的通信联络,最多支持32个LPAR资源共享的读/写。同时提出的还有CF,即Coupling Facility - 耦合装置,CF是一种支持共享对象的技术。在DB2集群中,CF提供了一个集中化设备来管理锁,并且还充当脏页(dirty page)的全局共享缓冲池,从而有助于实现可伸缩性和可恢复性操作。

b6dc53366c754df2ac924315e2ebc42b.png

C.Mohan 等人在1997年发表的论文中,详细的介绍了IBM基于共享数据的集群设计,以及Coupling Facility在其中所发挥的关键作用。

832d5a4638bf9db9c527b39dbd9703bc.png

这些技术后来被下放到小型机中,2009年,DB2推出了基于小型机的pureScale集群,但是没有取得像Oracle RAC那样的成功。

在pureScale的架构下,因为CF(被重新释意为Caching Facility)的存在,在集群成员节点故障时,不需要进行资源目录的冻结,这是优势;但是CF存在单点,也需要进行高可用保护,客观上也增加了集群的复杂性。

ea3e9a681aeda699780c07224445db2a.png

【上下求索】

前面的数据库历程,我们见证了系统软件的集群时代,数据库一体化的时代,最后,Oracle RAC集群占据了主流,并囊括了集群件的全部能力。

可是历史总在轮回,数据库的问题,不一定都要在数据库中解决。在中国数据库,尤其是分布式蓬勃发展的过程中,我们注意到,在数据库外部,有两大解决方案体系逐渐形成。

一者,是在数据库上部,通过数据库中间件解决分布式问题,二者,在数据库底层,通过共享存储集群件,提供数据库共享存储集群能力。

分布式中间件领域,Sharding-Sphere 和 MyCat 都是不同时期典型的代表。例如 MogDB 结合 Sharding-Sphere也能打造数千万 tpmC的分布式架构。以下这个架构被称为 MogDB Clowder。

7b14d228b38268aa754570a5543953de.png

可是中国数据库行业呈现出的另外一个趋势是:将“Sharding-Sphere"写到数据库里。历史再次重演了,当分库分表、路由、中间件等能力,被数据库一体化集成进去,这些产品将在企业级应用消失了,开源领域还会在,但是商业价值的探索将更加困难。

我们再来看看多主数据库的核心 - 共享存储集群件。在这个领域,中国此前没有探索者。一个是因为技术难度较大,一个是因为数据库领域没有需求。中国数据库厂商将注意力聚焦在分布式架构上。

然而峰回路转,涛声依旧。在“金融业数据库技术大会”上成立的“金融多主数据库应用行动计划”证明,金融客户对多主集群仍然存在强烈的需求。

那么答案在哪里呢?

华为公司近期开源了一个产品:Cantian引擎。取义要扎根深远,长成参天大树之意。

参天起到的作用就是将过去中国数据库领域缺少的一环补齐,通过系统级的集群能力,可以帮助以单机性能见长的数据库,形成共享集群解决方案,同时将可靠性和性能久经验证的企业级存储产品 OceanStor Dorado 引入作为共享存储。

可以一举解决金融行业数据库国产化替代难的症结。当前,云和恩墨 MogDB 和 openGauss 都在加速适配参天存储引擎,这次过程数据库厂商参与建立的同盟,就是在这一方向上共识的体现。

690e73cf97a98385ab6ae6bd605d18df.png

参天引擎包含五大核心组件,分别是 CMS,负责集群管理服务,维护集群一致性;DRC,分布式资源目录,管理资源在集群中的分布;DCS,分布式缓存服务;DLS,分布式锁服务;MES,集群间通信服务。

68315de1c5c6cac90f436272474f1bf5.png

通过有限的资料,可以看到,参天读写的Cache Fusion行为和Oracle基本保持一致。在下图展示的流程中(数据页位于内存中),如果在双实例中,实际上产生了一次 GC CR Block 2-way 的Cache Fusion读请求。

8a10d1ebbec21a7efd97f7adbe62fb64.png

被数据库吞噬的,还可以再独立出来。今天参天的尝试,通过开源,将成果行业共享,这样能够实现社会价值最大化,更能够助力中国数据库集体向前跃迁一大步。

参天引擎已经在 openEuler 社区开源,从个人角度,我期待看到更多的中国数据库和参天适配,重新探索“共享存储集群”在中国数据库产业中应有的地位,更好的支撑企业级用户对数据库的多样化架构需求

云和恩墨已经投身其中,也期待对此有兴趣的客户,和我们一起探讨 MogDB 和 openGauss 的共享存储集群解决方案


云和恩墨大讲堂 | 一个分享交流的地方 | MogDB

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看” 

你的喜欢会被看到❤

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录:网盘文件永久链接 SDN网络助力企业数字化转型 1_传统网络有什么局限性 2.1_SDN是什么 2.2_SDN是什么 3_SDN有什么价值 4_SDN标准组织 5_SDN的应用场景 6.1_华为SDN解决方案及成功案例 6.2_华为SDN解决方案及成功案例 融以致远-带你走进大数据 1.1_大数据的产生与发展 1.2_大数据基本概念 1.3_Hadoop生态系统简介 1.4_大数据的价值与应用 1.5_大数据发展趋势 2.1_华为大数据解决方案简介 2.2_华为大数据平台架构 2.3_华为大数据商业咨询服务总体方案 2.4_大数据开发团队与社区贡献 2.5_华为大数据功能组件介绍 3.1_移动运营商应用分享 3.2_金融机构应用分享 3.3_政府机构应用分享 4.1_大数据技术学习认证指南 4.2_课程总结 数据中心-全面云化的新一代互联网基础 1_企业的“数据银行”-- 数据中心基础知识 2_数据中心的“前世今生”-- 数据中心发展简史 3.1_风中有朵“数据的云”-- 数据中心发展趋势 3.2_风中有朵“数据的云”-- 数据中心发展趋势 4.1_拨开”云雾“见天日 -- 云数据中心基本架构 4.2_拨开”云雾“见天日 -- 云数据中心基本架构 5.1_ “拥抱云,融入云”-- 华为云数据中心解决方案 6_课程总结 下一代网络安全那些事 1_什么是网络安全 2_如何保障网络边界安全 3_如何保障应用安全 4_ 安全管控及趋势分析 5_课程总结 云服务的前世今生 1_初窥云计算 2.1_且听华为解读云服务-云的来龙去脉 2.2_且听华为解读云服务-云的技术特性 2.3_且听华为解读云服务-云的价值及华为云 3.1_徐徐展开的画卷-华为公有云服务架构 3.2_徐徐展开的画卷-华为云的典型产品 3.3_徐徐展开的画卷-华为云的典型产品 3.4_徐徐展开的画卷-华为云的典型产品 4_Study是技术的升华 专家带您玩转物联网世界 1_物联网发展历程及定义 2_物联网系统架构 3_物联网通信技术 4_物联网在智慧城市中的应用 5_物联网在消费电子中的应用 6_物联网在绿色能源中的应用 7_物联网在车联网领域的应用 8_物联网在公共安全中的应用
国产服务器和处理器架构 服务器是一种为客户机提供服务的高性能计算机。关于服务器最全分析材料请参考 文章"终极版:服务器基础知识全解"。 CPU作为服务器的运算和控制核心,其指令集架构有CISC和RISC两种。从性能角度来 说,CISC与RISC并无绝对的孰优孰劣之分。目前看来,CISC与RISC已逐步走向融合,两 方处理器互相借鉴互相优化。目前X86架构CPU占整体服务器市场约 96%,处于绝对领先的地位。 以ARM为代表的国产架构服务器有望异军突起。ARM早期专注低功耗领域,在移动端 处于领先位置,生态体系十分完善,但在服务器等计算市场,多年来推进缓慢。随着多 核异构计算时代和场景多样化计算时代到来,带来对计算架构多样性的需求,考虑中国 市场政府、金融、能源等行业端生态逐步完善以及华为鲲鹏的入局,以ARM为代表的国产 架构服务器有望获得一席之地。而ARM公司本身也推出了Neoverse新架构,以期大幅提升 性能,增强在服务器领域的竞争力。 国产架构服务器群雄逐鹿。目前,国产CPU包括鲲鹏、飞腾、海光、龙芯、兆芯、宏 芯、申威等。在党政军领域,龙芯、飞腾、兆芯等目前占据主流,华为鲲鹏未来有望在 商用市场占据主导,海光凭借其出色的单核性能和X86完善生态也有望获得一定市场份额 华为鲲鹏,壮志凌云打造计算产业生态。2019年9月,华为首次发布"一云两翼双引 擎"的计算战略,构筑开放的鲲鹏产业生态。华为将聚焦芯片、开源操作系统、存储、数 据库、云等底层产品,其余上层产品和服务开放给鲲鹏凌云合作伙伴,实现生态链互利 共赢。 神州数码:华为长期战略伙伴,深度参与鲲鹏生态建设。神州数码与华为合作已久 ,是华为的全面战略合作伙伴。公司18年3月正式启动大华为战略,成立华为业务群,形 成内部协作。公司是首家宣布拟投资基于"鲲鹏"的国产自主品牌服务器、PC产线的公司 ,将深度参与鲲鹏生态建设。 东华软件:与华为共同发布鲲鹏服务器"鹏霄"。20年1月,公司与华为联合推出首批 基于鲲鹏处理器的"鹏霄"服务器,在宁波市政务云上首次应用,并提出"鹏霄"服务器将 在公司所覆盖的多个行业领域进行大规模商业推广及应用。 中国长城:兼具芯片及主机能力。2019年8月,中国长城与华大半导体、中国振华签 署协议,拟定收购天津飞腾35%股权,天津飞腾是国内领先的国产场景CPU。包括长城在 内的国内20多家OEM、ODM厂商已推出基于飞腾芯片的服务器整机产品。 中科曙光:制裁阴影逐渐消失,拐点初现。16年,中科曙光子公司天津海光与AMD合 作,获得AMD Zen架构授权,18年7月,海光禅定国产芯片量产,中科曙光也推出基于禅定的国产服务 器产品。19年6月,公司进入美国实体名单,目前各环节替代方案逐步完善,制裁影响逐 步消除。 一、服务器行业发展简史 1.1 服务器:一种为客户机提供服务的高性能计算机 服务器是指网络环境中的高性能计算机,包括应用程序服务器、文档服务器、邮件 服务器、Web服务器及代理服务器等。整个互联网的结构几乎都基于客户机- 服务器模型。客户机- 服务器模型的本质是客户机请求、服务器响应,即服务器的功能是为客户机提供数据服 务。服务器由处理器(CPU)、内存、磁盘、网卡、监视器、电源、机箱等组成,和通用 的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠 性、安全性、可扩展性、可管理性等方面的要求比普通的个人电脑高。 服务器的最大特点就是其强大的运算能力,即使是一部简单的服务器系统,通常也至少 要有两颗处理器以构成对称多处理架构,使其能在短时间内完成大量工作,并为大量用 户提供服务。 服务器常见的外型有四种:塔式服务器(Tower Server)、机架服务器(Rack Server)、刀片服务器(Blade Server)、机柜式服务器。其中机柜是指为服务器正常工作提供相适应的环境和安全防 护的安装箱,通过机柜可以保证服务器设备稳定可靠地工作。 服务器行业已经发展了近60年。服务器的发展最早可以追溯到1964年,IBM引入Sys tem/360。System/360是由5种功能越来越强大的计算机所组成的系列,这些计算机运行 同一操作系统并能够使用相同的44个外围设备。 1.2 CPU:服务器的运算和控制核心 中央处理器(Central Processing Unit,简称CPU)是服务器的核心构成之一,其功能主要是解释计算机指令以及处理服务 器中的数据。CPU的主要运作原理是执行储存"程序"里的一系列指令。程序以一系列数字 的形式存储在存储器中。 指令集架构(Instruction Set Architecture),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部 分,包含了基本数据类型,指令集,寄存器,寻址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值