语言
<< 返回文章列表

数据库一体机简史:集中式还是分布式,这是一个问题?

2026年6月29日
,
,
R
A
C
,
Y
a
s
h
a
n
D
B
,
盖国强
6

在之前的几篇文章里我们已经讨论过,Oracle的Exadata和HP的Neoview瞄准的对手都是Teradata,这说明Teradata的市场利润太丰厚,所以惹来群雄觊觎。Oracle更是在广告上直接针对Teradata开火。这场竞争不仅是一场商业战争,更是一场技术路线的较量,其背后的深意值得细细品味。

01

集中式与分布式的路线之争

图1 Oracle Exadata的广告

拉里·埃里森(Larry Ellison)曾在公开场合多次嘲讽Teradata 的系统又贵又慢,而Teradata则通过广告回击Oracle的系统是不稳定的“科学实验”。图1是Oracle的一则广告,展示了Exadata替换Teradata的案例,最下面的一行小字是赤裸裸的嘲讽——“Save the planet,dump your Teradata”。

为了应对Exadata,Teradata编写了一本竞争力分析手册,其主题是《Exadata依然是Oracle》。这份报告的核心观点是:Oracle对其共享磁盘架构的依赖限制了其克服大规模数据仓库主要缺陷的能力。Teradata认为,Exadata声称的查询智能并不比Teradata或其他竞争性系统更靠近存储,并且由于Oracle并未采用Shared-Nothing架构,因此它将继续与共享资源的可扩展性问题作斗争。当然,Exadata事实上也并不便宜。

Exadata与Teradata之争,其实就是Shared-Storage(共性存储)和Shared-Nothing(无共享)架构之争(如图2所示)。在面对大规模数据计算的能力扩展上,只有Oracle选择了共享存储模式,其它厂商基本上都选择了无共享架构。所以从这一点来说,在很长时间内大家都不把Oracle作为大规模数据处理的对手。

但是Exadata改变了竞争格局。图2展示了共享存储架构和无共享架构的基本差异。两者各有优劣——在共享存储架构中,后端存储容易成为瓶颈,前端计算节点之间的共享锁机制也较为复杂;在无共享架构中,数据拆分到各个节点,访问被分散,较易实现线性扩展,但是对于前端应用来说较为复杂,在跨库访问时成本高。

图2 共享存储架构和无共享架构示意图

Oracle的共享存储集群(RAC)技术在OLTP场景下取得了巨大成功。在OLAP场景,Exadata解决了关键的网络带宽问题。如图3所示,左边展示了传统RAC模式在大数据量交互下可能产生的网络瓶颈,而右边则展示了网络带宽拓展后的高速响应。当然,Oracle还在数据库软件层面进行了增强。

图3 Exadata解决的核心挑战

02

迎难而上:中国数据库的共享存储集群突破

图4 崖山数据库logo

在中国数据库市场上,共享存储集群也一直被视为数据库这颗明珠上的天顶。率先实现国产数据库共享存储集群技术的领先厂商是达梦和崖山(如图4所示)等。崖山的共享存储集群技术被称为YAC。

zData X数据库一体机已经与YAC实现了联合解决方案创新,取得了卓越的竞争力成果。衡量YAC产品能力的核心指标有两点:第一是单机能力;第二是多节点线性比。

存算分离架构的zData X for YashanDB一体机在“2计算节点+3存储节点”经典配置下(如图5所示),崖山数据库2节点YAC集群单实例性能达231万tpmC,双实例同时测试达345万tpmC,性能线性比75%;3个存储节点8KB随机I/O最高可达800万IOPS,I/O延迟低于0.3ms。云和恩墨与崖山科技联合推出的“崖山数据库一体机”,可以承载大型交易系统、大型报表系统、数据仓库等高性能需求场景。

图5 zData X for YashanDB一体机经典架构

03

RAC之父:罗杰·班福德的技术传奇

比较而言,Shared-Storage架构本质上是把复杂留给了数据库,把简单留给了应用。Shared-Nothing架构则是把简单留给了数据库,把复杂留给了应用。在共享存储模式下,由于多节点可以同时读写数据,并发控制就非常复杂;另外,跨节点之间传递数据块和锁定权也极其复杂。在心跳交换数据难以解决的时代,Oracle曾经通过磁盘交换数据,那性能简直是无法忍受的。

图6 罗杰·班福德

到20世纪90年代中期,Oracle公司内部出现了激烈的争论:是否应该放弃共享磁盘集群技术,转而采用无共享数据库集群技术。争论的转折点是罗杰•班福德(Roger Bamford,见图6)提出了一个突破性的设计方案——“高速缓存融合”(Cache Fusion)技术。最后,埃里森亲自拍板走共享存储集群技术路线。这个决策体现了埃里森作为CEO的战略眼光。他相信,共享存储架构虽然在实现上更加复杂,但对于用户而言更加友好——应用不需要关心数据是如何分布的,数据库会自动处理一切。这种对用户体验的关注,正是Oracle产品成功的关键因素之一。

这一时期,共享存储集群技术是无人跟随的。NonStop SQL、Teradata等都在Shared-Nothing架构上走出了成功之路。Shared-Nothing的好处是,数据可以打散分布到不同节点上,用户负载分散,可以更容易地做到线性性能扩展,但是坏处是应用要做适配改造,架构复杂。

直到今天,Shared-Storage和Shared-Nothing的架构冲突仍然随着时代变迁而不断浮现。然而不容否认的是,在RDBMS的黄金时代,Oracle的RAC集群以压倒性优势在竞争中胜出了。

Oracle RAC技术公认的奠基者是罗杰·班福德,行业报道中经常称其为“RAC之父”。他在Oracle工作了30年,于2014年7月从Oracle离职。

罗杰·班福德的技术生涯堪称数据库领域的一个传奇。他曾经在IBM和Esvel工作,后来决定去Oracle试一下。班福德说:“我跟Bob Miner和Larry Ellison面试了一番,感觉Larry这个人魅力十足、精力充沛,有强烈的成功欲望;Bob Miner则是个非常好的人,也很聪明。于是我就去了Oracle。”

班福德的加入很大程度上改变了Oracle数据库的走向。他深度参与了Oracle RAC的架构设计与开发,使Oracle成为在OLTP领域具有统治地位的数据库系统。他的技术创新,特别是高速缓存融合技术,对整个数据库行业产生了深远影响。

班福德自1984年加入Oracle,直至2014年离开。他在Oracle的30年见证了数据库行业从单机到集群、从本地到云端的完整演进过程。他不仅是一位杰出的技术专家,也是一位优秀的技术领导者。在Oracle内部,他培养了一大批技术人才,为Oracle的技术创新奠定了基础。

图7 罗杰·班福德的工作和教育经历

离开Oracle后,班福德仍然活跃在技术一线。2014年,他以杰出架构师的头衔加入MongoDB的高级工程团队。这是一家以NoSQL数据库闻名的公司。这个选择本身就有意思——从关系型数据库到非关系型数据库,从传统的企业数据库到新兴的云原生数据库,班福德的技术生涯跨越了数据库技术的多个时代(如图7所示)。2019年,班福德加入Xcalar,担任杰出院士。Xcalar是一家专注于数据分析的公司,其产品能够在云端处理大规模数据,提供交互式的分析体验。这与班福德的技术背景非常契合,都是关于如何高效处理并分析海量数据。

04

崖山的突破:共享存储集群技术的本土创新

图8 陈志标

在中国数据库市场上,崖山是共享存储集群技术的代表性企业之一。崖山科技CEO陈志标(见图8)认为,共享存储集群是最能考验研发团队内核掌控力的关键技术。

陈志标的表达一针见血。他说:“Oracle RAC架构之所以好用,第一是它大大降低了上层用户的负担,第二是它是一个集大成者,对数据库内核的各项功能实现百分百掌控。崖山数据库从一开始在整个架构和底层设计之初就把做共享集群的内容考虑进去了。在事务处理、缓存协同、数据块一致性、分布式锁机制等内核最基础的设计中,就已具备支撑共享集群的基因。

陈志标的这番话道出了共享存储集群技术的本质。共享存储集群不是数据库的一个附加功能,而是需要贯穿数据库内核设计的基础能力。从架构设计之初就考虑集群需求,才能真正实现高性能、高可用的集群系统。

事务处理是数据库的核心功能之一,它确保了多个操作的原子性和一致性。在集群环境中,事务处理的复杂性大幅增加。当多个节点同时处理事务时,如何保证事务的隔离性和一致性是一个巨大的挑战。崖山数据库在架构设计之初就考虑了这个问题,设计了分布式事务处理机制,确保在集群环境下事务的ACID特性。

缓存协同是另一个关键的技术难题。在共享存储集群中,每个节点都有自己的缓存,如何保证多个节点缓存的数据一致是性能的关键。传统的方式是通过加锁和定期刷新,但这种方式会带来较大的性能开销。崖山数据库借鉴了Oracle的高速缓存融合技术,设计了高效的缓存协同机制,实现了节点之间的快速数据同步。

正是因为这些内核级别的设计,崖山数据库才能在第一个单机版本发布后,仅用一年时间就推出成熟可用的共享集群版本。这不是简单的功能叠加,而是架构原生能力的自然延展。如果数据库没有从架构层面考虑集群需求,后期再想加入集群功能,将会面临巨大的技术困难和性能挑战。

05

技术路线之争的启示

Exadata与Teradata之争,实际上是Shared-Storage和Shared-Nothing架构之争。两种架构各有优劣,适用于不同的场景。

Shared-Storage架构的优势是对应用的透明性,应用不需要关心数据的存储与分布。这种架构特别适合OLTP场景,能够提供高性能的事务处理能力。Shared-Nothing架构的优势是扩展性好,性能可以随着节点的增加线性提升。这种架构特别适合OLAP场景,能够处理大规模数据,执行复杂的数据分析。

Oracle选择了Shared-Storage路线,通过高速缓存融合等技术,解决了共享存储架构的性能和扩展性问题,并且借助Exadata成功地将Oracle数据库扩展到了OLAP场景。

云和恩墨的zData X数据库一体机继承了Oracle Exadata最初的开放理念,并将其进一步发扬。zData X支持多种数据库,可以适配多种硬件,真正实现了“硬件开放、数据库开放”的理念。这种开放性在国产数据库时代展现出了巨大的优势。崖山数据库选择了与Oracle数据库相同的技术路线——共享存储集群。这个选择需要极大的勇气和实力,因为共享存储集群是数据库技术中最难的部分。但崖山成功了,证明了国产数据库厂商已经掌握了数据库的核心技术。

Exadata和zData X、Oracle与崖山数据库,这些产品的竞争背后是技术路线的竞争,是商业模式的竞争,更是创新理念的竞争。数据库一体机的发展史即是一部技术创新的历史,也是一部企业竞争的历史。在这个过程中,有成功、有失败、有坚持、有放弃,但无论如何,这些探索与实践都推动了数据库技术不断向前。