如何理性看待蚂蚁金服OceanBase刷新TPC-C纪录

OceanBase这两天霸屏朋友圈!

一派是浮夸的宣传,超越Oracle,世界第一,过度解读,全面否定对手,引起了技术圈内人士的反感,因为刷新TPC-C纪录并不能说明OceanBase现在就超越了Oracle。

另一派则是并不客观的质疑,不仅武断的认为OceanBase性能测试结果是靠硬件堆出来的,还臆测再测一次,Oracle拿第一不是难事,而且数字应该远不止两倍;其结论不仅缺乏证据,而且对分布式数据库和TPC-C标准缺乏基本了解,略有误导之嫌;

在以前的文章中,我就曾经说过,虽然,我们不能盲目崇信跑分,但跑分的确是一种比较直观反映软硬件性能的方式,尤其是数据库这种性能测试非常复杂的产品。

我们应该如何理性看待OceanBase刷新TPC-C纪录?我认为搞技术还是要讲究事实,要理性看待还原事实。

刷新TPC-C纪录NB吗?

每个数据库厂商都试图向客户证明自己的系统性能最好、处理能力最强,但数据库厂商各自的性能测试数据没有足够的说服力。

而TPC-C作为一个OLTP联机交易处理系统的benchmark是世界最权威的测试基准,这点相信数据库圈内人士没有异议,实际上,要想通过TPC-C并且拿到高分非常难,这是事实。

作为一个广泛接受的标准,TPC-C是严谨的并极大地杜绝了作弊。

TPC-C要求被测数据库必须满足数据库事务的ACID,即原子性、一致性、隔离性和持久性,其中隔离性为可串行化隔离级别,持久性要求能够抵御任何单点故障等。

其次,TPC-C规定被测数据库的性能(tpmC)与数据量成正比。

第三,TPC-C要求被测数据库能够以平稳的性能长期地运行。去掉启动预热(ramp up)和结束降速(ramp down)时间后,被测数据库至少要性能平稳地(steady state)运行8小时,其中性能采集时段(不少于2小时)内的性能累积波动不得超过2%。

第四,TPC-C要求被测数据库的写事务的结果必须在一定时间内数据落盘,对于具备checkpoint功能的数据库,checkpoint的间隔不得超过30分钟,checkpoint数据持久化的时间不得超过checkpoint间隔。

在国内,金融,电信,政府等行业POC都以TPC-C为性能测试基准,通过TPC-C,意味着拿到了这些企业的准入证明,刷新纪录则意味着商业化之路上竞争优势的提升。

因此,随着这些年在数据库技术上不断取得突破,越来越多的国内数据库厂商开始打榜TPC,在我看来是一种好事,凸显的是一种自信,同时也说明国产数据库与国外数据库之间的差距在缩小。

当然,要想全面超越Oracle,无论是OceanBase还是其它国产数据库,还有很长的路要走,超越不能靠YY,不要过分解读,但也不需要刻意低调。

2013年后为何打榜的数据库公司变少?

我认为有三个原因:

第一,这个时间点Oracle在市场上已经全面领先对手DB2;

第二,Oracle和DB2性能太强,导致其他玩家没机会进入前几名,直白的说,进不了前几名就得不到关注,测了也是白测;

第三,测试成本太高,要在完整的TPC-C测试中获得一个高分结果,需要高昂的硬件成本,这也是榜单大部分测试主导方是硬件厂商的原因;

TPC-C测试模型过时了吗?

TPC-C标准是1992年发布的,因此,成为一些人质疑的焦点。但TPC-C能成为数据库OLTP测试领域事实上的最权威标准,恰恰是因为它还原了企业需求真实的应用场景,极具代表性。

简单的说,TPC-C模拟了一个大型的在线商超业务模型,它有一个WEB站和分布在多个地域的仓库,每个仓库服务临近的10个区域的客户,每个客户通过一个收银点下单购买商品,有10%的可能这单订单里本地仓库无货需要远程调货,同时所有订单有后台异步的物流交付。结合当前,这个模型恰好就是现在的大型B2C电商网站。

所以,经典的测试模型并不过时,只是换了一种形式映射到现实生活。

另外TPC-C标准也并不是墨守陈规,从92年提出以来一直在不断修订,最新一版v5.11.0是2010年发布的。

堆硬件就可以跑出6000多万tpmC?

仔细研究TPC-C测试标准,就能很清楚的知道,TPC-C测试标准制定者已经提前预见到了这点,强制的分布式事务、数据访问应用透明要求等诸多限制,让通过简单的堆砌硬件就想提升性能的可能趋近于零。 

另外,数据库作为基础软件,目的就是要充分榨取底层硬件的性能并提供给上层应用,尤其对于分布式数据库来说,能够通过堆硬件带来线性性能提升更是理想的目标,分布式架构的精髓就是基于廉价的PC Server来做Scale Out。而这是TPC-C榜单中Oracle RAC这种架构无法解决的。

TPC-C测试结果应该怎么看?

TPC-C测试最终评价的标准其实就两个:整体性能tpmC以及性价比price/tpmC。

错误的质疑,源于并不清楚这2个核心指标,而是片面的关注总成本。

OceanBase总成本:380,452,842人民币,性能60,880,800 tpmC,性价比是每tpmC 6.25人民币。

Oracle总成本:30,528,863美元≈213,702,041人民币,性能30,249,688 tpmC,性价比是每tpmC 1.01美元≈7.07人民币

其实,总成本分为软件部分和硬件部分,我在向蚂蚁金服研究员、OceanBase主架构师杨传辉(日照)核实后确认,OceanBase的价格中,硬件部分占比约18%,Oracle的价格中硬件部分占比约68%。

OceanBase价格高是因为软件定价,其定价策略是,比Oracle低一点。

OceanBase真就完美吗?

企业级数据库的关键技术点在于可靠性和扩展性,TPC-C测试的前提是RPO为0确保不丢数据。

目前有三种实现方案:

第一种是IBM DB2,通过提升单机能力扩展,小型机不行就大型机,这种方案的问题在于价格和处理能力不是线性的;

第二种方案是共享存储,Oracle测试使用的RAC方案就是这种架构,这个架构的问题在于扩展能力有限,最大扩展到几十台机器;

第三种方案是分布式数据库,代表作是OceanBase和Spanner,这种方式基本做到了线性扩展,但需要存储多个副本。通过PAXOS协议强同步,存储成本翻倍,CPU使用也要往上翻。

这里凸显的是TPC-C科学的一面,不限制软件架构和硬件架构。

Oracle不支持PAXOS三机强同步,因此,无法采用和OceanBase一样的架构实现rpo为0,一定需要依赖共享存储来实现不丢数据。因此,在rpo为0的约束下,本质上OceanBase和Oracle只能使用不同的架构。

Oracle共享存储成本高,但硬件很可靠,只需要一个副本;OceanBase使用普通PC Server,单机成本低,但必须存储多个副本并打开在线压缩,这会大幅增加CPU和存储空间。

因此,如何选择,相信用户会有自己的判断力。

Image placeholder
佩亚诺余项
未设置
  94人点赞

没有讨论,发表一下自己的看法吧

推荐文章
从网络接入层到 Service Mesh,蚂蚁金服网络代理的演进之路

本文作者:肖涵(涵畅)上篇文章《 诗和远方:蚂蚁金服ServiceMesh深度实践|QCon实录》中, 介绍了ServiceMesh在蚂蚁金服的落地情况和即将来临的双十一大考,帮助大家了解Servic

从鲜有交集到坚定牵手,蚂蚁金服和e签宝何以相互吸引?

最近,电子签名赛道出现了一起颇有看点的融资事件。一边是在电子签名行业打拼17年的元老级别选手——e签宝,另一边是国际化的金融科技巨头——蚂蚁金服,此次融资中,蚂蚁金服作为领投方,与戈壁创投、老股东靖亚

蚂蚁金服研究员玉伯回顾阿里十一年成长之路

注:这是在阿里内部前端大学的一个分享,整理了一份对外的版本,希望分享内容能对你有所帮助。 编者按:本文通过玉伯授权后发布今天跟大家分享下个人成长和带团队的一些感悟。我可能更偏向于写作型或阅读型,很少

当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在2019杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的

让AI无处不在:滴滴与蚂蚁金服开源共建SQLFlow

2018年1月,Oracle的官方博客上发表了一篇文章,标题是“It’sPervasive:AIIsEverywhere”。作为全球最著名的商业数据库系统提供商,Oracle在这篇文章里历数了AI在企

从艺术到数学再到编程,这个蚂蚁金服技术人的奇异人生

2020年已经到来,第一批90后互联网大军也步入了而立之年,回首他们的来时路,那些熬夜奋战的日夜,失败后的坚守,不断的创新与突破都成为他们送给自己最值得回味的礼物。第三次AI浪潮下,AI技术大军应用而

TPC-C解析系列02_OceanBase如何做TPC-C测试

导语:蚂蚁金服自研数据库OceanBase登顶TPC-C引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请OceanBase核心研发人员对本次测试进行技术解读,共包括五篇:1)TPC-C基

双11、TPC-C?OceanBase的征程在哪里?

蚂蚁金服自研的分布式关系数据库OceanBase登顶TPC-C一个月后,便迎来了2019年双11大考,团队相信“TPC-C只是双11的虚拟预演,双11才是一次真实场景的TPC-C。”OceanBase

OceanBase数据库创始人阳振坤分享征战6088万tpmC的艰辛之路

前言:中国人民大学常被誉为是“中国人文社会科学的最高学府”,其实人民大学也是“中国数据库的发源地”。由中国人民大学教授萨师煊与王珊合作编写的《数据库系统概论》是国内第一部系统阐明数据库原理、技术和理论

TPC-C解析系列03_TPC-C基准测试之SQL优化

TPC-C是一个非常严苛的基准测试模型,考验的是一个完备的关系数据库系统全链路的能力。这也是为什么在TPC-C的榜单前列,出现的永远只是大家熟知的那几家在业界有着几十年积累、从关系数据库理论开始发展就

TPC-C解析系列05_TPC-C基准测试之存储优化

TPC-C规范要求被测数据库的性能(tpmC)与数据量成正比。TPC-C的基本数据单元是仓库(warehouse),每个仓库的数据量通常在70MB左右(与具体实现有关)。TPC-C规定每个仓库所获得的

TPC-C解析系列01_TPC-C benchmark测试介绍

作者:阳振坤2019.10导语:自从蚂蚁金服自研数据库OceanBase获得TPC-C测试第一名后,引起了行业内外大量关注,我们衷心的感谢大家对OceanBase的支持与厚爱,也虚心听取外界的意见和建

TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战

OceanBase这次TPC-C测试与榜单上Oracle和DB2等其他数据库在硬件使用上有非常大的不同,OceanBase的数据库服务器使用的是204+3台型号是ecs.i2.16xlarge阿里云E

对话OceanBase资深总监韩鸿源:数据库是技术能力,云是使用方式,两者不应是竞争关系

5月10日,在第十届中国数据库技术大会(DTCC2019)上,蚂蚁金服的金融级分布式关系数据库OceanBase2.0,在经过200名数据库领域三年以上的从业者投票和专业评委的评选下,高分荣获了“年度

分布式存储时代,横空出世的OceanBase

数据,被誉为新时代的石油。几乎任何一个企业的IT管理者,都会在演讲、采访或其他形式的交流分享中强调数据的重要性。获取洞察、行为预测、市场分析、业务转型升级……数据能够为企业带来巨大的商业价值。但与此同

如何看待优秀国产开源项目作者月薪却不到5k?

今天朋友圈被下边这张图刷爆了,讲的似乎是一个优秀国产开源项目作者的才能没有得到很好的回报:事件中的项目是BiliBili三年前开源的flv.js,它是一个使用纯JavaScript编写的FLV(HTM

软件定义IT基础架构,如何看待深信服的产品战略布局?

在很多人的潜意识里,深信服是一家令人尊敬的企业,技术支撑能力强,产品种类多,功能全面,后劲足,是少数能和华为、新华三同台竞技的企业之一。但有时候,深信服也会被这些优势所累,比如经常会被问道:你们和华为

如何看待2019年多家开源公司修改软件许可?

从Web服务器到信息站,再到挖掘Facebook信息的大数据算法,几乎所有与您交互的计算机系统都至少有一部分在开源软件上运行。在科技行业,开源软件催生了一大批初创公司,促成了世界历史上最大的软件收购。

如何看待阿里云发布POLARDB Box数据库一体机

9月26日,2019杭州云栖大会上,阿里云宣布正式推出高性能数据库一体机POLARDBBox,这是业内首次推出基于云原生数据库的一体机。“POLARDBBox是一款跨时代的产品,打破了云数据库的服务边

如何看待阿里云推出云端数据库测试平台

继OceanBase刷新TPC-C纪录之后,近日,阿里云一篇《不服OceanBase跑分?今天起可到阿里云上一战》的文章,再度引发关注。文章标题很直接,不服来战,凸显对OceanBase的自信,强调不

如何看待SaaS明星Slack高调上市?

又一个明星SaaS公司上市了,当地时间6月20日Slack在纽交所以无承销商、无路演、无新股发行的直接挂牌方式在纽交所上市,交易代码为“WORK”,成为继Spotify之后第二家在纽交所直接上市的公司

ASC19最新战况:北航打破HPL基准测试赛会纪录!

  今天(4月23日)是全球瞩目的ASC19全球总决赛第三天,经过前两天的系统搭建与调试工作后,20支队伍进入了正式竞赛阶段,向总冠军宝座发起最后冲刺。  根据赛程,今天所有参赛队伍需要完成的项目包括

阿里系统软件迎战“双11”超高流量峰值全纪录

刚刚过去的2018年天猫“双11”,创下了全天2135亿GMV的数字奇迹,零点交易峰值比往年提升50%,各项指标均创下历史新高。2018年是“双11”的第十年,也是阿里系统软件事业部参与的第二个“双1

如何理解腾讯云数据库战略升级?

近日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家DBbrain、云数据库T

如何理解react响应式

如何理解react响应式React中响应式原理1、开发者只需关注状态转移(数据),当状态发生变化,React框架会自动根据新的状态重新构建UI。2、React框架在接收到用户状态改变通知后,会根据当前