如何看待蚂蚁金服OceanBase拿下世界第一,性能超老牌数据库Oracle 100%?

论坛 期权论坛 工作     
爱用户   2019-10-9 09:07   3519   5
10月2日,据权威机构国际事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,中国蚂蚁金服自主研发的金融级分布式关系数据库OceanBase,在被誉为“数据库领域世界杯”的TPC-C基准测试中,打破了由美国公司Oracle(甲骨文)保持了9年之久的世界记录,成为首个登顶该榜单的中国数据库产品。

分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心回应  16级独孤 | 2019-10-9 09:07:47 发帖IP地址来自
跑TPC-C benchmark是不限制硬件的,只要你能通过其中的事务ACID测试和其他的一些测试,无论你用什么硬件,跑出好成绩就是英雄(反过来呢?恐怕只能是狗熊了)。自从2010年Oracle以3000万tpmC登顶至今,9年时间新跑出了十几个TPC-C benchmark,但没有一个打破这个记录。难道其他数据库厂商不想打破这个记录?肯定有在想的。9年时间难道硬件性能没有提升吗?假如摩尔定律依然适用,处理器的性能应该提升了2^^6=64倍,就算摩尔定律已经失效,9年时间硬件性能的提升也小不了,怎么区区一个3000万tpmC还干不掉?就像博尔特2009年创造的100米短跑9秒58世界记录,10年都过去了,全世界最优秀的短跑选手想不想打破这个记录?做梦都想啊,可就是破不了啊。
为什么呢?因为第一,研制OLTP数据库太难了,第二,通过TPC-C的测试也很难。比如ACID测试,全世界的分布式数据库,能够通过这个测试的,我知道的只有Google的Spanner和阿里巴巴/蚂蚁金服的OceanBase,也许还有一些我不知道的,但肯定不会多,否则Oracle的3000万tpmC早就被干翻了。国内除了OceanBase之外没有任何一个数据库通过测试,多少也说明一些问题。所以,TPC-C benchmark是不限制硬件的,你用多好的硬件都可以。当然为了一定程度的公平性,TPC-C还要求测试者必须报告成本(被测系统3年的total cost of ownership)以便计算性价比。所以总体来看,TPC-C是首先鼓励你通过测试,其次才是披露性价比。
为了便于感兴趣的朋友进一步了解TPC-C测试,我们把OceanBase做TPC-C benchmark测试过程中的感受和体验写了出来,供大家参考。
数据库OceanBase创始人阳振坤:通关TPC-C到底有多难?
3#
热心回应  16级独孤 | 2019-10-9 09:07:48 发帖IP地址来自
OceanBase参加tpc测试,获得tpc-c分项总分第一,在舆论届收获大量冷嘲热捧。


由于谦虚内敛的民族特质,人们总是喜欢看到低调的扫地僧,数据库性能测试这个事情,恰恰中国的学术界和产业界都是追赶者,没有扫地僧那样无人能望其项背的实力,商业公关上,却有正常宣传甚至适当美化的需求。


于是,各路不懂行的,以为是上海交大陈进打磨汉芯般的造假,懂行的,则以【堆机器谁不会】【乘着摩尔定律的东风躺赢】嗤之以鼻。


我做的软硬件产品,在一些细分的领域里,超过国外最好的也有好几次,其实也不必跪久了站起来不习惯。你们问我怎么看这个事,我要说,能拿到这个第一,含金量非常高,很多貌似理客中的IT从业人员大大低估了拿这个第一的难度,批评不在点子上,对数据的解读也存在明显的纰漏。同时,阿里这个软件技术能力和Oracle相比还有差距,远远谈不上第一,也更谈不上两倍的碾压,有些行外人也是自信过头过度吹捧了。


常见的几种观点和问题,释疑如下:
1.用2019年的成绩和2010年Oracle的成绩对比,公平吗?
目前也没啥更公平更权威的性能测试了。当然,如果有组织能搞个数据库奥运会,跟百米短跑一样,大家用同样的硬件,同样的时间来比赛,那就更公平啦。这里要澄清几个误区:Oracle公司也并不是2010年之后就没兴趣搞tpc测试了,2013年还搞了一次的,图中第四名就是,那次硬件规模要小很多,且没有rac。


2.阿里用更好的硬件跑了个高分,胜之不武吗?
这个就和超级计算机排名一样,美国最新的summit没出来之前,中国神威之光排第一,summit出来后神威之光降到第三。神威之光和summit的硬件架构、处理器类型、处理器数量完全不一样,但榜单本来就是排的计算能力,这是超级计算机的综合实力体现。同理,tpc-c考察的是单位时间内处理事务的能力,不是每个CPU每赫兹主频的处理能力。


3.只要Oracle愿意,随时能夺回第一吗?
Oracle的单机性能非常强悍(这个看每tpmc的价格可以大概看出来),在数百个节点的集群下,Oracle夺回第一是大概率事件。但,Oracle的rac目前是依赖共享存储的,节点数扩展是有尽头的,受制于盘柜,ocean base是分布式数据库,不依赖共享存储,水平扩展的潜力更大。


4.这个tpc-c测试已经没落了,大厂都不屑于玩了?
确实不热闹,20年来,软件商也就Oracle,微软,ibm,sybase,sap几个在玩。Oracle也有六年没有提交了,最近三年只有一个韩国公司在提交测试报告。因为数据库市场寡头垄断,排名评测的热度和频次确实远远不如手机等消费品。但要说Oracle ibm不屑于玩,排名毫无价值也是非常不客观的。


5.搞一次测试要4个亿,所以小创业公司玩不起?
这是没认真看报告瞎胡闹。tpc要求厂商提供3年综合拥有成本(包括软件,硬件,维护服务)。以第一名和第二名为例,阿里的3年硬件成本是6700万人民币,Oracle的终身硬件成本是1000万美元(再次敲黑板,可以看出Oracle的实际硬件成本是多么低,性能是多么强悍)。超过80%都是软件成本,对厂商自己搞测试来说,软件是没有成本的。而且阿里用的是云服务器,3年6700万,测一个月不到200万,哪有四个亿那么夸张。


6.硬件上到底是多大的差距?
有人说根据摩尔定律,阿里用32倍的CPU做出了2倍的性能。这也是民科,随着集成电路工艺水平提升,摩尔定律早就失效了。阿里这次用的CPU主频更高,核心数量更多,线程数量相当,但是有两个不确定的点,一是,阿里云的vCPU跟实体intel CPU可能并非一比一的映射,二是,sparc CPU可能强于同主频的x86 CPU。


还有一个容易被忽视的地方,阿里的测试方案,数据盘用了丧心病狂的nvme SSD,而Oracle用的机械硬盘。数据库应用属于IO密集型,这个可能也是阿里得高分的重要因素。我们可以再次看出Oracle的性能多么强悍。


7.阿里是分布式,Oracle是单机的吗?
不是。表中写了,排名第二的Oracle方案用了RAC集群和分区。排名第四的没有用rac。
4#
热心回应  16级独孤 | 2019-10-9 09:07:49 发帖IP地址来自
强答一波,最高赞已经说了这是拿19年提交的数据库和10年提交的在比,略显尴尬。不过好歹是赢了也是进步。
我想吐槽的是我之前调研这个数据库的遭遇:
看了朋友圈文章介绍ob的文章去翻了一下,号称开源的oceanbase在github开源地址上release了0次,最后一次提交是5年多以前,某个子目录的readme给了最新版本0.4.2的下载和文档链接,我点了几个文档地址发现都是打不开的外链。
在网上继续搜资料的时候,看到某开发者的吐槽(地址):0.4.2的问题太多,在14年的时候发邮件问项目组,说0.5在内测了马上开源,过了几个月说专利申请中,再过了几个月说公司上市中暂停开源项目。emmm,然后暂停到现在19年了。。。。原文截图如下:


5#
热心回应  16级独孤 | 2019-10-9 09:07:50 发帖IP地址来自
看着评论拿靠着摩尔定律来说事的真是笑了。
这些人是不是觉得软件开发出来,靠着摩尔定律,跟着硬件18个月性能就可以翻一翻了?连摩尔定律是什么都没搞清楚,就急着拿出来当自己下跪的理由。


以下是对于那些拿摩尔定律来跪的人的反驳理由,以及简单解释数据库的难点在哪,篇幅比较长,不想看可直接拉到最后看结论。


摩尔定律不过是对硬件发展趋势的一个预测,他不是什么自然定律!
在计算机刚出来的前几十年也确实符合这个规律在不断发展的。但随着集成密度越来越接近当前材料的物理极限,摩尔定律早在十年前已经开始放缓。以桌面cpu为例子,11年上市的第一代i7-980单核主频便可睿频到3.6GHz。如今最强的i9-9900k,单核主频最高也仅能达到5.0GHz。CPU的单核处理能力可以简单的理解为ipc*主频,而第九代的酷睿相对第一代的ipc大概也只有不到两倍提升。综合下来单核处理能力大概是3倍的提升,怎么就有32倍了?
硬件我不是专业人士,以上只是简单的举例,反驳哪些那摩尔定律来冷嘲热讽的可笑言论。上面没有说多核和超线程,是因为这里针对摩尔定律说的单位面积可容纳的晶体管数目这点。单核频率之所以增长缓慢,一个原因是晶体管密度接近当前使用材料的物理极限。增加主频,会导致发热太高散不出去。
日常使用软件的很多场景下,靠的还是单核性能,很多玩游戏的人应该理解这点。单核频率发展到一定程度之后,开始另辟蹊径,发展多核处理器。而一个应用能不能在多线程、多核、多CPU甚至多机器集群下发挥他们的性能,这就是软件的功劳了。特别像数据库这种有强事务要求的软件。在成千上万的分布式机器集群下,既要处理速度也要保证事务正确。


再来说说软件是不是能随着硬件性能增长,处理能力也能等比提升?
在一定数据量范围内,是可以的。基本也仅限于单机的场景下,基本上机器的性能越好,软件的处理能力也越强。这里说的单机,就是一台完整的计算机,包含了CPU、内存、存储、网卡等等。这些,除了CPU前几十年符合摩尔定律发展,其他硬件都没有CPU发展的这么快。单机的硬件性能也是有上限的。
我们以数据库为例,他要处理数据,中间经过哪些硬件。这里只是作为例子,简化了处理过程。首先业务应用是通过网络将数据处理请求发给数据库服务器,要经过网卡。然后数据库收到消息后,查找对应需要处理的数据,可能缓存在内存中,如果缓存里没有,可能要在硬盘里找。找到数据后,交由CPU处理。CPU处理完成,先暂存到内存,再要持久化到硬盘。这才是一个数据库处理事务的完结。最后再将处理完成的消息经过网卡返回到业务应用机器上。这里根据木桶效应,任何一个硬件达到瓶颈,就达到了整台机器的瓶颈。
早期数据库软件也一直是在单机上发展,软件上通过缓存策略、多线程、更优的存储策略、更优的算法等等来提升。硬件层面不断的提升单机性能,还有更快更可靠的存储能力。可能一台数据库服务器的价格,需要上千万,甚至整个集群价格要上亿。而这些大型软件和大型服务器,基本都被ORACLE和IMB垄断。不管软件还是硬件出问题,都只能这些公司的人来给处理。而且人家工程师来一趟,是从出门开始按小时计费,每小时价格,可能顶得上很多很多人的月薪了。所以阿里当年最早提出去IOE(IBM,ORACLE,EMC)的理念。


那么单机达到瓶颈,是否可以通过更多的机器来并行实现呢?是可以,但有很多难题需要解决。
比如不通数据存在不同机器的硬盘上,那一笔数据处理请求,如何找到他对应的机器?
如果我做一个统计类的查询,而这些数据都在不通机器上,要怎么计算?
要保证数据的安全,数据不止存一份。数据会同一个机房两台机器各存一份,同城两个机房各存一份,异地两个机房相互备份,这样一笔交易处理涉及的网络延迟怎么解决?
比如支付这种动作,涉及了付款人和收款人两个人的数据。他们两个人数据可能在不同机器,甚至不同机房不同城市。每次支付交易,都涉及从全量数据里面找到相关的两个人,那这个处理的复杂度,就是数据量的两倍复杂度。
实际场景中,有更多更复杂的计算,处理复杂度甚至是和数据量是指数级的关系。当处数据量达到一定程度后,再往上增长100%、甚至50%都可能都是很难的事。


写在最后,对这事怎么看
Oracle可能今天能拿出更好的成绩,他们能9年不再去上这个榜单刷新自己的记录,因为没有对手啊。这是人家作为曾经数据库领域垄断者的体面,我没有任何否认ORACLE的水平。但今天保持了9年的记录被OceanBase打败了,如果ORACLE再上去打出更好的成绩我也很高兴。至少在数据库这个市场里我们中国能有一家企业的产品可以让ORACLE感到威胁。据我所知,现在蚂蚁金服也在向银行输出OceanBase的方案。当有银行使用OceanBase来替代Oracle的时候,不管这个榜单成绩如何,ORACLE未来降价是必然的。就像很多传统领域一样,当中国打破西方垄断后,整个市场的价格就是断崖式下跌。OceanBase能有今天能成绩,我觉得对国内所有人来说都是件好事。不知道楼上各位酸什么?
另外就算Oracle再次刷新记录到榜首,我相信OceanBase也会跟进。或者其他国内数据库也会跟进,很多互联网公司都在去IOE,都在自研数据库。有竞争才会变得更好。性能要多强,最终还是要落到实际场景中。中国的互联网人数规模摆在这,实际的需求摆在这,总会有公司来突破。
这个榜单就像手机或电脑跑分,他不能完全代表实际使用体验。而OceanBase他是实实在在支撑双十一这种每秒近50万笔的交易处理,实际涉及到数据库的事务处理,每秒是上千万。请楼上几位跪Oracle的,说说Oracle提供解决方案的哪家公司,有这样数据并发量的实际场景?
最后的最后
用社区好多年,很少发言,因为很多领域自己并不清楚,只能做好一位读者。今天碰到和自己从事行业相关的话题下,发现原来会有这么多人并不懂,却能这么无脑黑国产的当一个慕洋犬。甚至有自我介绍写着是程序员、开发者的人,不知道这些人是蠢还是坏。忍不住来答,社区首答,文章可能写的不够好,各位多多包涵。
6#
热心回应  16级独孤 | 2019-10-9 09:07:51 发帖IP地址来自
内行人看门道,外行人看热闹。
用如今的硬件和软件性能去与9年前的Oracle 的性能作对比,似乎有点占对方便宜的味道。
不过从这件事来看,国产数据库有了非常大的进步,有了和美帝扳手腕的能力,非常鼓舞人心。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:31799
帖子:6375
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP